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
[](https://www.python.org/)
[](LICENSE)
[]()
本项目实现了一个综合性的 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
标签:特权检测, 请求拦截, 逆向工具