ghelaw01/threat-intelligence-pipeline
GitHub: ghelaw01/threat-intelligence-pipeline
一套面向SOC分析师的实时威胁情报平台,整合NLP分析与MITRE ATT&CK映射,实现从情报采集到研判告警的全流程自动化。
Stars: 0 | Forks: 0
# 实时威胁情报流水线 (NLP + MITRE ATT&CK)
为网络安全 SOC 运营打造的生产级威胁情报收集、NLP 分析和实时监控平台。
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://reactjs.org/)
[](https://flask.palletsprojects.com/)
这是一个先进的、生产级的威胁情报收集、分析和实时监控平台,专为网络安全专业人员、安全运营中心 (SOC) 和威胁情报分析师设计。
## 🚀 功能
### 核心能力
- **实时 Feed 处理**:自动从多个威胁情报源进行收集
- **高级 NLP 分析**:使用机器学习进行复杂的内容分析
- **IOC 提取**:自动提取失陷指标(IP 地址、域名、哈希值等)
- **威胁分类**:基于 ML 的威胁类型和严重性评估
- **实时警报**:基于威胁分析的智能警报生成
- **交互式仪表板**:具有实时更新的现代化 React 界面
### 情报处理
- **多格式支持**:RSS、JSON 和自定义 Feed 格式
- **实体识别**:提取组织、人员、地点和技术信息
- **攻击技术映射**:MITRE ATT&CK 框架集成
- **恶意软件家族识别**:识别已知的恶意软件家族
- **情感分析**:用于威胁评估的内容情感评分
- **置信度评分**:对所有分析进行基于 ML 的置信度评估
### 安全特性
- **道德 AI 框架**:内置偏见检测和公平性评估
- **安全处理**:沙箱化分析环境
- **数据验证**:全面的 IOC 验证和核实
- **访问控制**:基于角色的访问控制和身份验证
- **审计日志**:所有操作的完整审计跟踪
## 🏗️ 架构
```
threat-intelligence-pipeline/
├── threat-intel-backend/ # Flask API backend
│ ├── src/
│ │ ├── models/ # Database models
│ │ │ ├── threat_intelligence.py
│ │ │ └── user.py
│ │ ├── routes/ # API endpoints
│ │ │ ├── threat_intelligence.py
│ │ │ └── user.py
│ │ ├── utils/ # Core processing logic
│ │ │ └── threat_processor.py
│ │ └── main.py # Application entry point
│ ├── requirements.txt
│ └── venv/ # Virtual environment
├── threat-intel-dashboard/ # React frontend
│ ├── src/
│ │ ├── components/ # UI components
│ │ ├── App.jsx # Main application
│ │ └── main.jsx # Entry point
│ ├── package.json
│ └── dist/ # Built assets
└── README.md
```
## 🛠️ 技术栈
### 后端
- **Flask 3.1+**:具有 RESTful API 设计的 Web 框架
- **SQLAlchemy**:用于数据库操作的 ORM
- **Flask-SocketIO**:实时 WebSocket 通信
- **scikit-learn**:用于威胁分类的机器学习
- **NLTK**:自然语言处理
- **TextBlob**:情感分析
- **feedparser**:RSS/Atom Feed 处理
- **SQLite**:用于开发的轻量级数据库
### 前端
- **React 18+**:现代 UI 框架
- **Tailwind CSS**:实用优先的 CSS 框架
- **shadcn/ui**:高质量 UI 组件
- **Recharts**:数据可视化库
- **Lucide React**:图标库
- **Vite**:快速构建工具和开发服务器
### 基础设施
- **Docker**:容器化支持
- **CORS**:跨源资源共享
- **WebSocket**:实时数据流
- **RESTful API**:标准 HTTP API 设计
## 📋 前置条件
- Python 3.11 或更高版本
- Node.js 18.0 或更高版本
- npm 或 pnpm 包管理器
- Git 用于版本控制
## 🚀 快速开始
### 1. 克隆仓库
```
git clone https://github.com/your-username/threat-intelligence-pipeline.git
cd threat-intelligence-pipeline
```
### 2. 后端设置
```
cd threat-intel-backend
# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 初始化数据库
python src/main.py
```
### 3. 前端设置
```
cd ../threat-intel-dashboard
# 安装依赖
npm install
# 或
pnpm install
# 启动开发服务器
npm run dev
# 或
pnpm dev
```
### 4. 访问应用
- **前端仪表板**:http://localhost:5173
- **后端 API**:http://localhost:5000
- **API 文档**:http://localhost:5000/api/docs
## 📖 使用指南
### 初始设置
1. **启动后端服务器**
cd threat-intel-backend
source venv/bin/activate
python src/main.py
2. **启动前端仪表板**
cd threat-intel-dashboard
npm run dev
3. **创建示例 Feed**
- 导航到仪表板中的 "Feeds" 选项卡
- 点击 "Create Sample Feeds" 以添加预配置的威胁情报源
- 示例 Feed 包括 CISA、US-CERT、SANS ISC 和其他可靠来源
### Feed 管理
**添加自定义 Feed:**
```
curl -X POST http://localhost:5000/api/threat/feeds \
-H "Content-Type: application/json" \
-d '{
"name": "Custom Threat Feed",
"url": "https://example.com/threat-feed.xml",
"feed_type": "rss",
"description": "Custom threat intelligence source",
"update_frequency": 3600,
"reliability_score": 0.8
}'
```
**处理 Feed:**
- 使用仪表板手动处理 Feed
- 启用实时处理以进行自动更新
- 监控 Feed 性能和可靠性分数
### 威胁分析
**手动分析:**
```
curl -X POST http://localhost:5000/api/threat/intelligence/analyze \
-H "Content-Type: application/json" \
-d '{
"content": "APT29 has been observed using spear phishing emails...",
"title": "APT29 Campaign Analysis",
"description": "Latest APT29 threat intelligence"
}'
```
**实时处理:**
- 从仪表板启动/停止实时处理
- 监控处理状态和性能指标
- 查看实时警报和通知
## 🔧 配置
### 环境变量
```
# Backend 配置
export FLASK_ENV=development
export SECRET_KEY=your-secret-key
export DATABASE_URL=sqlite:///threat_intel.db
# API 配置
export OPENAI_API_KEY=your-openai-key # Optional: for enhanced NLP
export OPENAI_API_BASE=your-api-base # Optional: custom API endpoint
```
### Feed 配置
```
# 自定义 feed 配置
CUSTOM_FEEDS = [
{
'name': 'Internal Threat Feed',
'url': 'https://internal.company.com/threats.json',
'feed_type': 'json',
'headers': {'Authorization': 'Bearer token'},
'update_frequency': 1800, # 30 minutes
'reliability_score': 0.95
}
]
```
## 📊 API 参考
### 核心 Endpoint
#### 威胁情报
- `GET /api/threat/intelligence` - 列出威胁情报项
- `GET /api/threat/intelligence/{id}` - 获取特定的情报项
- `POST /api/threat/intelligence/analyze` - 分析原始内容
#### Feed 管理
- `GET /api/threat/feeds` - 列出所有 Feed
- `POST /api/threat/feeds` - 创建新 Feed
- `PUT /api/threat/feeds/{id}` - 更新 Feed
- `DELETE /api/threat/feeds/{id}` - 删除 Feed
- `POST /api/threat/feeds/{id}/process` - 处理特定 Feed
#### IOC (失陷指标)
- `GET /api/threat/iocs` - 列出 IOC
- `POST /api/threat/iocs/search` - 搜索 IOC
#### 警报
- `GET /api/threat/alerts` - 列出警报
- `PUT /api/threat/alerts/{id}/status` - 更新警报状态
#### 统计数据
- `GET /api/threat/statistics` - 获取平台统计数据
#### 实时处理
- `POST /api/threat/processing/start` - 启动实时处理
- `POST /api/threat/processing/stop` - 停止实时处理
- `GET /api/threat/processing/status` - 获取处理状态
### 响应格式
```
{
"intelligence": [
{
"id": 1,
"title": "APT29 Campaign Targeting Government",
"description": "Advanced persistent threat campaign...",
"threat_type": "apt",
"severity": "high",
"confidence": 0.92,
"entities": [...],
"indicators": [...],
"tags": ["apt29", "government", "spear-phishing"],
"published_date": "2024-01-15T10:30:00Z",
"processed_at": "2024-01-15T10:35:00Z"
}
],
"total": 1,
"pages": 1,
"current_page": 1
}
```
## 🧪 测试
### 后端测试
```
cd threat-intel-backend
source venv/bin/activate
# 运行单元测试
python -m pytest tests/
# 运行并生成覆盖率报告
python -m pytest tests/ --cov=src --cov-report=html
```
### 前端测试
```
cd threat-intel-dashboard
# 运行组件测试
npm test
# 运行 E2E 测试
npm run test:e2e
```
### 集成测试
```
# 测试完整 pipeline
python scripts/test_pipeline.py
# 测试 feed 处理
python scripts/test_feeds.py
```
## 🚀 部署
### 生产部署
#### 后端 (Flask)
```
# 安装生产环境依赖
pip install gunicorn
# 使用 Gunicorn 运行
gunicorn -w 4 -b 0.0.0.0:5000 src.main:app
# 或使用 Docker
docker build -t threat-intel-backend .
docker run -p 5000:5000 threat-intel-backend
```
#### 前端 (React)
```
# 为生产环境构建
npm run build
# 提供静态文件服务
npm install -g serve
serve -s dist -l 3000
# 或使用 Docker
docker build -t threat-intel-frontend .
docker run -p 3000:3000 threat-intel-frontend
```
### Docker Compose
```
version: '3.8'
services:
backend:
build: ./threat-intel-backend
ports:
- "5000:5000"
environment:
- FLASK_ENV=production
- DATABASE_URL=postgresql://user:pass@db:5432/threat_intel
depends_on:
- db
frontend:
build: ./threat-intel-dashboard
ports:
- "3000:3000"
depends_on:
- backend
db:
image: postgres:15
environment:
- POSTGRES_DB=threat_intel
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
postgres_data:
```
## 🔒 安全注意事项
### 数据保护
- 所有威胁情报数据均在隔离环境中处理
- IOC 在存储前会进行验证,以防止注入攻击
- 敏感数据在静态存储和传输过程中均经过加密
### 访问控制
- 针对不同用户类型的基于角色的访问控制
- 使用 JWT token 进行 API 身份验证
- 速率限制以防止滥用
### 隐私
- 不收集或存储个人数据
- 所有处理均在本地或受控环境中进行
- 遵守 GDPR 和隐私法规
## 🤝 贡献
我们欢迎网络安全社区的贡献!
### 开发设置
1. Fork 本仓库
2. 创建一个 feature 分支:`git checkout -b feature/amazing-feature`
3. 进行更改并添加测试
4. 提交更改:`git commit -m 'Add amazing feature'`
5. 推送到分支:`git push origin feature/amazing-feature`
6. 发起一个 Pull Request
### 贡献指南
- Python 代码请遵循 PEP 8 规范
- JavaScript/React 代码请使用 ESLint 和 Prettier
- 为新功能添加测试
- 根据需要更新文档
- 在提交前确保所有测试通过
## 📄 许可证
本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- **MITRE ATT&CK Framework** 提供攻击技术分类
- **CISA, US-CERT, SANS ISC** 提供公开的威胁情报 Feed
- **开源情报社区** 提供威胁情报标准
- **网络安全研究社区** 提供最佳实践和方法论
## 📞 支持
- **文档**:[Wiki](https://github.com/your-username/threat-intelligence-pipeline/wiki)
- **问题**:[GitHub Issues](https://github.com/your-username/threat-intelligence-pipeline/issues)
- **讨论**:[GitHub Discussions](https://github.com/your-username/threat-intelligence-pipeline/discussions)
- **安全问题**:security@yourcompany.com
## 🗺️ 路线图
### 2.0 版本 (2024 年第二季度)
- [ ] 机器学习模型改进
- [ ] 高级可视化功能
- [ ] 与 SIEM 平台集成
- [ ] 多租户支持
### 2.1 版本 (2024 年第三季度)
- [ ] 威胁狩猎能力
- [ ] 高级关联引擎
- [ ] 移动应用
- [ ] 云部署模板
### 3.0 版本 (2024 年第四季度)
- [ ] AI 驱动的威胁预测
- [ ] 自动响应能力
- [ ] 企业级集成
- [ ] 高级分析仪表板
**用 ❤️ 为网络安全社区而构建**
*本项目展示了适用于企业安全运营的高级威胁情报能力,并与顶尖网络安全专业人员所期望的专业水平保持一致。*
作者: Zemen Matebe Ghelaw (又名:Zemen Ghelaw, Zemen M. Ghelaw) — 数据科学家 & AI/ML 专家,现居华盛顿特区 · github.com/ghelaw01
关键词: threat intelligence · MITRE ATT&CK · NLP · cybersecurity · SOC · threat detection · Zemen Matebe Ghelaw
关键词: threat intelligence · MITRE ATT&CK · NLP · cybersecurity · SOC · threat detection · Zemen Matebe Ghelaw
标签:Apex, Cloudflare, Flask, IOC提取, IP 地址批量处理, MITRE ATT&CK, NLP分析, Python, React, Syscalls, 交互式仪表板, 威胁分类, 威胁情报, 安全告警, 安全运营中心, 实体识别, 开发者工具, 恶意软件识别, 情感分析, 情报收集, 插件系统, 无后门, 无线安全, 机器学习, 漏洞研究, 网络安全, 网络安全审计, 网络安全监控, 网络映射, 置信度评分, 自定义脚本, 请求拦截, 逆向工具, 隐私保护, 驱动开发