cristi4nhdz/osint-threat-intel-pipeline

GitHub: cristi4nhdz/osint-threat-intel-pipeline

一个基于 Python 和 spaCy 的多源威胁情报收集与 NLP 富化流水线,将安全新闻自动转化为结构化的威胁知识。

Stars: 0 | Forks: 0

# OSINT 威胁情报流水线 该流水线从 NewsAPI 拉取网络安全和威胁情报新闻,将原始事件推送到 Kafka,并使用 spaCy 的 transformer 模型运行 NLP 富化处理以提取实体和信号。富化后的输出将输送到仪表板进行审查。目前尚未完成,但核心摄取和富化阶段正在进行中。 ## 目录 - [概述](#overview) - [技术栈](#tech-stack) - [功能特性](#features) - [入门指南](#getting-started) - [前置条件](#prerequisites) - [环境设置](#environment-setup) - [运行流水线](#running-the-pipeline) - [项目结构](#project-structure) ## 概述 从 NewsAPI 拉取网络安全和威胁情报新闻,将原始事件推送到 Kafka,并通过 spaCy transformer 模型运行 NLP 富化处理以提取实体和信号。富化后的输出将输送到仪表板进行审查。核心摄取和富化功能已可用,仪表板仍在构建中。 ## 技术栈 | 层级 | 技术 | | --- | --- | | 语言 | Python 3.x | | NLP | spaCy (`en_core_web_trf`) | | 消息传递 | Apache Kafka | | 存储 | Snowflake | | 编排 | Docker Compose | | 环境 | Conda | | 代码检查 | flake8, pylint, black, mypy, yamllint | ## 功能特性 - **新闻摄取** — 从 NewsAPI 获取可配置主题的文章,并将其发布到 Kafka 主题 - **NLP 富化** — 使用 spaCy 的 `en_core_web_trf` transformer 模型进行实体提取和威胁信号分类,并结合基于关键字的匹配来识别威胁行为者、恶意软件和攻击技术 - **相关性评分** — 文章在发布到富化主题之前会进行评分和过滤 - **Snowflake 存储** — 从 Kafka 消费富化后的文章并加载到 Snowflake,同时进行 URL 去重 - **Kafka 支持的事件总线** — 解耦的生产者/消费者架构,具备弹性和重放能力 - **配置驱动** — 基于 YAML 的配置,用于管理来源、主题和流水线行为 - **容器化** — 完整的 Docker Compose 设置,用于本地开发 ## 入门指南 ### 前置条件 - [Docker](https://www.docker.com/) & Docker Compose - [Miniconda](https://docs.conda.io/en/latest/miniconda.html) 或 Anaconda - 一个 [NewsAPI](https://newsapi.org/) API 密钥 ### 环境设置 **1. 克隆仓库:** ``` git clone https://github.com/cristi4nhdz/osint-threat-intel-pipeline.git cd osint-threat-intel-pipeline ``` **2. 创建并激活 Conda 环境:** ``` conda env create -f environment.yaml conda activate osint ``` **3. 下载 spaCy transformer 模型:** ``` python -m spacy download en_core_web_trf ``` **4. 配置您的环境:** 复制或编辑设置文件,填入您的 API 密钥和主题偏好: ``` cp config/settings.example.yaml config/settings.yaml # 使用你的 keys 编辑 settings.yaml ``` ### 运行流水线 **启动基础设施:** ``` docker compose up ``` **运行 Snowflake 设置:** ``` python -m storage.snowflake_setup ``` **运行新闻摄取生产者:** ``` python -m ingestion.run_news ``` **运行富化流水线:** ``` python -m processing.run_enrichment ``` **运行 Snowflake 加载器:** ``` python -m storage.run_loader ``` **关闭:** ``` docker compose down ``` ## 项目结构 ``` osint-threat-intel-pipeline/ |-- config/ # YAML configuration files |-- dashboard/ # Dashboard consumer and visualization |-- ingestion/ # News fetching and Kafka producer |-- processing/ # NLP enrichment, entity extraction, Kafka consumer |-- storage/ # Snowflake setup and loader |-- docker-compose.yml # Container orchestration |-- environment.yaml # Conda environment spec |-- README.md ```
标签:Docker, ESC4, HTTP/HTTPS抓包, Kafka, NLP, OSINT, Python, SecOps, Snowflake, SonarQube插件, spaCy, 云安全架构, 仪表盘, 威胁情报, 威胁源监控, 安全运营, 安全防御评估, 实体提取, 开发者工具, 态势感知, 扫描框架, 数据清洗, 数据管道, 无后门, 流式处理, 版权保护, 网络安全, 舆情监控, 软件工程, 软件成分分析, 逆向工具, 隐私保护