ghelaw01/threat-intelligence-pipeline

GitHub: ghelaw01/threat-intelligence-pipeline

一套面向SOC分析师的实时威胁情报平台,整合NLP分析与MITRE ATT&CK映射,实现从情报采集到研判告警的全流程自动化。

Stars: 0 | Forks: 0

# 实时威胁情报流水线 (NLP + MITRE ATT&CK) 为网络安全 SOC 运营打造的生产级威胁情报收集、NLP 分析和实时监控平台。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/) [![React](https://img.shields.io/badge/React-18.0+-61DAFB.svg)](https://reactjs.org/) [![Flask](https://img.shields.io/badge/Flask-3.1+-000000.svg)](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
标签:Apex, Cloudflare, Flask, IOC提取, IP 地址批量处理, MITRE ATT&CK, NLP分析, Python, React, Syscalls, 交互式仪表板, 威胁分类, 威胁情报, 安全告警, 安全运营中心, 实体识别, 开发者工具, 恶意软件识别, 情感分析, 情报收集, 插件系统, 无后门, 无线安全, 机器学习, 漏洞研究, 网络安全, 网络安全审计, 网络安全监控, 网络映射, 置信度评分, 自定义脚本, 请求拦截, 逆向工具, 隐私保护, 驱动开发