ShindePankaj26/threat-intelligence-cti-analysis

GitHub: ShindePankaj26/Threat-Intelligence-and-CTI-Analysis-Pipeline-with-NLP-LLMs

一个基于NLP和LLM技术的网络安全威胁情报分析管线,能够从非结构化CTI报告中自动提取妥协指标、映射MITRE ATT&CK技术并构建威胁知识图谱。

Stars: 2 | Forks: 0

# 基于 NLP/LLM 的威胁情报与 CTI 分析 Pipeline [![Python](https://img.shields.io/badge/python-3.8%2B-blue)](https://www.python.org/) [![License](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![Platform](https://img.shields.io/badge/platform-windows%20%7C%20macos%20%7C%20linux-lightgrey)]() 本项目实现了一个综合性的 pipeline,利用自然语言处理 (NLP) 和大型语言模型 (LLM) 来分析网络安全威胁情报 (CTI) 报告。该 pipeline 可以自动提取妥协指标 (IOC),标记 MITRE ATT&CK 技术,从非结构化的 CTI 报告中构建知识图谱,并提供用于与安全工具集成的 API。 **开发者:Shinde Pankaj** ## 🚀 功能 - **自动 IOC 提取**:提取 IP、域名、电子邮件地址、文件哈希 (MD5/SHA1/SHA256)、CVE、恶意软件名称和威胁行为者 - **MITRE ATT&CK 映射**:使用模式匹配和语义分析自动为报告标记 ATT&CK 战术和技术 - **关系提取**:识别威胁实体之间的关系(例如,“APT29 使用 Backdoor.X”) - **知识图谱构建**:构建带有置信度评分的可查询威胁情报图谱表示 - **RESTful API**:提供用于处理 CTI 报告和查询威胁情报的 endpoint - **跨平台兼容性**:可在 Windows、macOS 和 Linux 上运行 - **可扩展架构**:模块化设计,便于轻松定制和扩展 ## 📁 项目结构 ``` . ├── src/ # Source code │ ├── models/ # NLP models for entity and relation extraction │ ├── kg/ # Knowledge graph construction and management │ ├── pipelines/ # Main analysis pipeline │ ├── api/ # REST API interface │ ├── llm/ # LLM integration framework │ ├── utils/ # Utility functions │ └── tests/ # Unit tests ├── data/ # Sample data and datasets ├── requirements.txt # Python dependencies ├── Dockerfile # Docker configuration ├── run_pipeline.py # Cross-platform launcher ├── run_pipeline.sh # Unix shell script ├── run_pipeline.bat # Windows batch script └── README.md # This file ``` ## 🛠️ 安装说明 ### 前置条件 - Python 3.8 或更高版本 - pip 包管理器 ### 快速设置 1. **克隆代码库**: ``` git clone cd threat-intelligence-cti-analysis ``` 2. **安装所需的包**: ``` pip install -r requirements.txt ``` 3. **安装核心依赖项**: ``` python install_core_deps.py ``` 4. **下载 spaCy 语言模型**(可选,用于增强 NLP): ``` python -m spacy download en_core_web_sm ``` ### Docker 安装(替代方案) 使用 Docker 构建并运行: ``` docker build -t cti-pipeline . docker run -p 5000:5000 cti-pipeline ``` ## 🚀 用法 ### 跨平台启动器 本项目包含跨平台启动脚本: - `run_pipeline.py` - 通用 Python 启动器 - `run_pipeline.sh` - Unix shell 脚本 (macOS/Linux) - `run_pipeline.bat` - Windows 批处理脚本 ### 命令行界面 **运行演示**: ``` python run_pipeline.py demo # 或 python src/main.py --mode demo ``` **启动 API 服务器**: ``` python run_pipeline.py api # 或 python src/main.py --mode api ``` **处理 CTI 报告文件**: ``` python run_pipeline.py process path/to/report.txt # 或 python src/main.py --mode process --input path/to/report.txt --output results.json ``` **运行单元测试**: ``` python run_pipeline.py test # 或 python -m unittest src/tests/test_pipeline.py ``` ### API Endpoint 启动 API 服务器并访问以下 endpoint: - `GET /health` - 健康检查 endpoint - `POST /analyze` - 分析单个 CTI 报告 - `POST /analyze_batch` - 分析多个 CTI 报告 - `GET /threat_actor/` - 获取关于特定威胁行为者的信息 - `POST /knowledge_graph/query` - 查询知识图谱 - `GET /knowledge_graph/statistics` - 获取知识图谱统计信息 - `GET /knowledge_graph/brief` - 获取威胁情报简报 - `POST /knowledge_graph/save` - 将知识图谱保存到文件 **API 请求示例**: ``` # 分析 CTI report curl -X POST http://localhost:5000/analyze \ -H "Content-Type: application/json" \ -d '{ "report_text": "APT29 uses Backdoor.X to target the energy sector", "report_id": "report_001" }' # 查询 threat actor 信息 curl http://localhost:5000/threat_actor/APT29 # 获取 knowledge graph 统计信息 curl http://localhost:5000/knowledge_graph/statistics ``` ## 🔧 核心组件 ### 命名实体识别 (NER) 使用正则表达式提取网络威胁实体: - **IP 地址**:IPv4 和 IPv6 地址 - **域名**:域名和 URL - **电子邮件**:电子邮件地址 - **文件哈希**:MD5、SHA1 和 SHA256 哈希 - **CVE 标识符**:通用漏洞披露 - **恶意软件名称**:恶意软件和后门名称 - **威胁行为者**:APT 组织和威胁行为者名称 - **文件路径**:系统文件路径 - **注册表项**:Windows 注册表项 ### MITRE ATT&CK 标记器 将文本映射到 MITRE ATT&CK 框架: - **技术**:超过 100 种 ATT&CK 技术(T1059、T1566 等) - **战术**:所有 ATT&CK 战术(TA0001、TA0002 等) - **模式匹配**:匹配技术/战术 ID 和名称 - **可扩展**:轻松添加新的技术和战术 ### 关系提取器 识别威胁实体之间的关系: - **行为者-恶意软件**:“APT29 使用 Backdoor.X” - **行为者-目标**:“APT29 针对能源部门” - **恶意软件-C2**:“Backdoor.X 与 192.168.1.100 通信” - **恶意软件-技术**:“Backdoor.X 实现了 T1059” - **漏洞-利用**:“利用 CVE-2023-12345” ### 知识图谱 构建结构化的威胁情报表示: - **节点**:带有元数据的威胁实体 - **边**:带有置信度分数的关系 - **查询**:邻居发现、实体类型过滤、路径查找 - **持久化**:用于存储的 JSON 序列化 - **统计**:图谱分析和指标 ### LLM 集成 与大型语言模型接口对接以进行高级分析: - **总结**:自动生成报告摘要 - **问答**:关于威胁的互动问答 - **情报简报**:自动生成简报 - **验证**:信息验证以减少误报 ## 📊 支持的数据集 该 pipeline 适用于各种 CTI 数据源: - **CTI-HAL**:带有 ATT&CK 注释的真实 CTI 事件报告 - **MISP 订阅源**:IP/URL/哈希黑名单和威胁情报 - **安全博客**:非结构化的威胁报告和分析 - **MITRE ATT&CK**:官方 ATT&CK 框架数据 - **自定义格式**:JSON、CSV 和纯文本报告 ## 🎯 用例 - **安全运营中心 (SOC)**:自动化威胁报告分析 - **威胁情报平台**:用结构化数据丰富 CTI - **事件响应**:快速从事件报告中提取 IOC - **威胁狩猎**:识别跨多个报告的模式 - **研究**:分析威胁行为者的行为和 TTP ## 🔒 安全注意事项 - **数据隐私**:在本地处理 CTI,不将数据发送到外部服务 - **验证**:内置验证以减少误报 - **审计**:跟踪提取的情报的来源报告 - **置信度评分**:对提取的关系进行置信度评级 ### 开发环境设置 ``` # 安装开发 dependencies pip install -r requirements.txt # 运行测试 python -m unittest discover src/tests/ ``` ## 📄 许可证 本项目基于 MIT 许可证授权 - 详见 [LICENSE](LICENSE) 文件。 ## 🙏 鸣谢 - MITRE ATT&CK 框架用于威胁情报标准化 - spaCy 提供的 NLP 功能 - NetworkX 提供的图分析 - Flask 提供的 API 框架 - OpenAI 提供的 LLM 集成框架 ## 🔄 未来增强 - **机器学习集成**:用于 NER 和分类的微调 transformer 模型 - **高级图分析**:链接预测和社区发现 - **实时处理**:流式 CTI 订阅源摄取 - **可视化**:交互式图可视化仪表板 - **多语言支持**:针对非英语 CTI 报告的 NLP 支持 - **STIX/TAXII 集成**:标准化的威胁情报共享# threat-intelligence-cti-analysis
标签:特权检测, 请求拦截, 逆向工具