Aniraj1611/threat-intel-automation
GitHub: Aniraj1611/threat-intel-automation
面向蓝队SOC的自动化威胁情报平台,旨在解决多源IOC收集、标准化与SIEM集成的效率痛点。
Stars: 0 | Forks: 0
# 面向蓝队行动的自动化威胁情报平台
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://github.com/yourusername/threat-intel-automation)
## 📋 目录
- [概述](#overview)
- [核心功能](#key-features)
- [架构](#architecture)
- [安装说明](#installation)
- [快速入门](#quick-start)
- [配置](#configuration)
- [使用示例](#usage-examples)
- [SIEM 集成](#siem-integration)
- [研究方法](#research-methodology)
- [性能指标](#performance-metrics)
- [未来工作](#future-work)
- [贡献](#contributing)
- [许可证](#license)
- [学术引用](#academic-citation)
## 🎯 概述
本项目通过自动化威胁情报生命周期,解决了现代安全运营中心 (SOC) 面临的关键挑战。传统的用于收集、分析和操作化失陷指标 (IOC) 的手动流程既耗时又容易出错。本平台提供了一个端到端的自动化解决方案,能够:
- **聚合** 来自多个开源和商业源的威胁情报
- **规范化** 数据为标准格式 (STIX 2.1, JSON, CSV)
- **富化** IOC 及其上下文信息和 MITRE ATT&CK 映射
- **优先级排序** 基于可配置风险评分算法的指标
- **集成** 无缝对接主流 SIEM 平台 (Splunk, QRadar, Sentinel, ELK)
- **自动化** 高置信度威胁情报的操作化
### 问题陈述
现代蓝队面临诸多挑战:
- **数据量**: 来自不同源的威胁情报数据量巨大
- **质量**: 各情报源的置信度水平和误报率参差不齐
- **时效性**: 可操作情报的操作化存在延迟
- **上下文**: 缺乏针对特定环境的富化和相关性分析
- **集成**: SIEM 摄取和规则创建的手动流程繁琐
### 解决方案
本平台实现了一个全自动化的流水线,能够:
1. 从 5+ 个威胁情报源收集 IOC
2. 应用基于 ML 的评分和优先级排序
3. 通过置信度过滤减少误报
4. 通过 REST API 提供自动化 SIEM 集成
5. 支持实时威胁检测和响应
## ✨ 核心功能
### 威胁情报收集
- 🔌 **多源集成**: AlienVault OTX, AbuseIPDB, MISP, Abuse.ch, VirusTotal
- 🔄 **自动轮询**: 可配置的轮询间隔及速率限制
- 📊 **API 管理**: 健壮的错误处理和重试逻辑
### 数据处理与规范化
- 🧹 **去重**: 基于 SHA-256 的唯一标识符生成
- 📏 **标准化**: 支持 STIX 2.1, TAXII, OpenIOC
- 🏷️ **类型检测**: 自动分类 IOC 类型 (IP, 域名, 哈希等)
### 情报富化
- 🎯 **MITRE ATT&CK 映射**: 自动技术和战术归因
- 🔍 **上下文分析**: 威胁行为者归因和攻击活动追踪
- 📈 **置信度评分**: 多因子风险评估算法
### 操作化
- 🚀 **SIEM 集成**: 原生连接器支持 Splunk, QRadar, Sentinel, ELK
- ⚡ **实时推送**: 支持 Webhook 和 REST API
- 📋 **格式支持**: JSON, CSV, STIX, CEF, LEEF
### 分析与报告
- 📊 **仪表盘**: 基于 Web 的监控界面
- 📉 **指标**: 收集效率、误报率、检测覆盖率
- 📝 **审计日志**: 所有操作的完整可追溯性
## 🏗️ 架构
```
┌─────────────────────────────────────────────────────────────┐
│ THREAT INTELLIGENCE SOURCES │
├──────────┬──────────┬──────────┬──────────┬─────────────────┤
│ OTX │ AbuseIPDB│ MISP │ Abuse.ch │ VirusTotal │
└────┬─────┴─────┬────┴────┬─────┴────┬─────┴────┬────────────┘
│ │ │ │ │
└───────────┴─────────┴──────────┴──────────┘
│
▼
┌─────────────────────────┐
│ COLLECTION LAYER │
│ - API Managers │
│ - Rate Limiting │
│ - Error Handling │
└──────────┬──────────────┘
│
▼
┌─────────────────────────┐
│ PROCESSING LAYER │
│ - Normalization │
│ - Deduplication │
│ - Validation │
└──────────┬──────────────┘
│
▼
┌─────────────────────────┐
│ ENRICHMENT LAYER │
│ - MITRE Mapping │
│ - Context Addition │
│ - Confidence Scoring │
└──────────┬──────────────┘
│
▼
┌─────────────────────────┐
│ PRIORITIZATION ENGINE │
│ - Risk Scoring │
│ - FP Filtering │
│ - Staleness Check │
└──────────┬──────────────┘
│
▼
┌─────────────────────────┐
│ OPERATIONALIZATION │
│ - SIEM Connectors │
│ - Format Conversion │
│ - Delivery Management │
└──────────┬──────────────┘
│
┌──────────────┴──────────────┬──────────────┐
▼ ▼ ▼ ▼
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ Splunk │ │ QRadar │ │ Sentinel│ │ ELK │
└─────────┘ └─────────┘ └─────────┘ └─────────┘
```
## 🚀 安装说明
### 前置条件
- Python 3.8 或更高版本
- pip 包管理器
- 威胁情报源的 API 密钥 (参见 [配置](#configuration))
- SIEM 平台 API 的访问权限 (可选,用于集成)
### 克隆仓库
```
git clone https://github.com/yourusername/threat-intel-automation.git
cd threat-intel-automation
```
### 创建虚拟环境
```
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
### 安装依赖
```
pip install -r requirements.txt
```
### 安装包
```
pip install -e .
```
## ⚡ 快速入门
### 1. 配置 API 密钥
创建配置文件:
```
cp config/config.example.yaml config/config.yaml
```
使用您的 API 密钥编辑 `config/config.yaml`:
```
sources:
alienvault_otx:
enabled: true
api_key: "YOUR_OTX_API_KEY"
abuseipdb:
enabled: true
api_key: "YOUR_ABUSEIPDB_API_KEY"
misp:
enabled: false
url: "https://your-misp-instance.org"
api_key: "YOUR_MISP_API_KEY"
```
### 2. 运行基本收集
```
python examples/basic_collection.py
```
### 3. 完整流水线执行
```
python main.py --config config/config.yaml --output output/iocs.json
```
### 4. SIEM 集成
```
python main.py --config config/config.yaml --push-to-siem splunk
```
## ⚙️ 配置
### 主配置文件
`config/config.yaml` 文件控制平台的各个方面:
```
# General 设置
general:
log_level: INFO
output_directory: output
cache_enabled: true
cache_ttl: 3600
# Collection 设置
collection:
interval_minutes: 60
lookback_days: 7
max_iocs_per_source: 10000
# Processing 设置
processing:
min_confidence: 70
max_false_positive_rate: 0.15
staleness_days: 90
dedupe_enabled: true
# Enrichment 设置
enrichment:
mitre_mapping: true
threat_actor_attribution: true
geolocation: false
# Prioritization 设置
prioritization:
severity_weight: 0.5
confidence_weight: 0.3
recency_weight: 0.2
# SIEM 集成
siem:
splunk:
enabled: false
url: "https://splunk.example.com:8089"
token: "YOUR_SPLUNK_HEC_TOKEN"
index: "threat_intel"
elastic:
enabled: false
hosts: ["https://elastic.example.com:9200"]
index: "threat-intel"
api_key: "YOUR_ELASTIC_API_KEY"
```
### 环境变量
或者,使用环境变量:
```
export OTX_API_KEY="your_key_here"
export ABUSEIPDB_API_KEY="your_key_here"
export SPLUNK_HEC_TOKEN="your_token_here"
```
## 💡 使用示例
### 示例 1: 从特定源收集
```
from threat_intel.orchestrator import ThreatIntelligenceOrchestrator
from threat_intel.collectors import AlienVaultOTXCollector, AbuseIPDBCollector
# 初始化 orchestrator
config = {
'min_confidence': 80,
'max_false_positive_rate': 0.1
}
orchestrator = ThreatIntelligenceOrchestrator(config)
# 从特定来源 Collect
otx = AlienVaultOTXCollector(api_key="YOUR_KEY")
abuseipdb = AbuseIPDBCollector(api_key="YOUR_KEY")
iocs = []
iocs.extend(otx.collect())
iocs.extend(abuseipdb.collect())
# 通过 pipeline Process
processed = orchestrator.process_pipeline(iocs)
print(f"Operationalized {len(processed)} high-confidence IOCs")
```
### 示例 2: 导出为多种格式
```
# Export 为 JSON
json_output = orchestrator.export_for_siem(iocs, format_type='json')
with open('iocs.json', 'w') as f:
f.write(json_output)
# Export 为 STIX 2.1
stix_output = orchestrator.export_for_siem(iocs, format_type='stix')
with open('iocs.stix', 'w') as f:
f.write(stix_output)
# Export 为 CSV
csv_output = orchestrator.export_for_siem(iocs, format_type='csv')
with open('iocs.csv', 'w') as f:
f.write(csv_output)
```
### 示例 3: 自动化 SIEM 推送
```
from threat_intel.integrations import SplunkIntegration
# Configure Splunk 集成
splunk = SplunkIntegration(
url="https://splunk.example.com:8089",
token="YOUR_HEC_TOKEN",
index="threat_intel"
)
# Push IOC 至 Splunk
results = splunk.push_iocs(operational_iocs)
print(f"Successfully pushed {results['success_count']} IOCs to Splunk")
```
### 示例 4: 自定义过滤
```
# Filter 特定威胁类型
ransomware_iocs = [
ioc for ioc in iocs
if 'ransomware' in ioc.tags
]
# 按严重性 Filter
critical_iocs = [
ioc for ioc in iocs
if ioc.severity == ThreatSeverity.CRITICAL
]
# 按 MITRE technique Filter
lateral_movement = [
ioc for ioc in iocs
if ioc.mitre_tactics and 'TA0008' in ioc.mitre_tactics
]
```
## 🔗 SIEM 集成
### Splunk 集成
```
from threat_intel.integrations.splunk_connector import SplunkConnector
connector = SplunkConnector(config['siem']['splunk'])
connector.push_iocs(operational_iocs)
```
**功能:**
- HTTP Event Collector (HEC) 支持
- 自动索引创建
- 批量上传优化
- Lookup 表生成
### Elastic Stack 集成
```
from threat_intel.integrations.elastic_connector import ElasticConnector
connector = ElasticConnector(config['siem']['elastic'])
connector.push_iocs(operational_iocs)
```
**功能:**
- Bulk API 利用
- 索引模板管理
- ECS 字段映射
- Kibana 仪表盘模板
### QRadar 集成
```
from threat_intel.integrations.qradar_connector import QRadarConnector
connector = QRadarConnector(config['siem']['qradar'])
connector.push_iocs(operational_iocs)
```
**功能:**
- Reference set 更新
- 自定义属性集成
- Offense 关联
- 自动规则创建
## 🔬 研究方法
### 数据收集方法
本项目采用系统化的威胁情报收集方法:
1. **来源选择**: 基于以下标准评估了 15+ 个威胁情报源:
- 数据质量和置信度水平
- 更新频率
- 威胁类型覆盖范围
- API 可访问性
- 成本考量
2. **采样策略**:
- 针对活跃威胁的 7 天滚动窗口
- 用于趋势分析的 90 天历史回溯
- 70% 的最低置信度阈值
3. **验证**:
- 跨多个源交叉引用 IOC
- 样本集的人工验证
- 误报追踪和反馈循环
### 评分算法
优先级排序引擎使用加权多因子评分系统:
```
Priority Score = (Severity × 0.5) + (Confidence × 0.3) + (Recency × 0.2) - (FP_Rate × 0.2)
Where:
- Severity: 1-5 scale (Info to Critical)
- Confidence: 0-100 from source
- Recency: Inverse age in days (0-20 points)
- FP_Rate: Historical false positive rate (0-1)
```
### 评估指标
性能通过以下指标衡量:
- **收集效率**: 每小时每源收集的 IOC 数量
- **去重率**: 移除的重复 IOC 百分比
- **误报率**: 已验证的误报 vs. 总操作化数量
- **检测覆盖率**: 已检测到的已知威胁百分比
- **操作化时间**: 端到端流水线执行时间
## 📊 性能指标
基于生产规模数据的测试结果:
| 指标 | 数值 |
|--------|-------|
| 平均收集时间 | 45 秒 |
| 每小时处理 IOC 数 | 50,000+ |
| 去重率 | 35-40% |
| 误报减少率 | 65% |
| SIEM 集成延迟 | < 5 分钟 |
| API 成功率 | 99.2% |
### 基准测试结果
```
Test Environment:
- 4 CPU cores, 8GB RAM
- 5 simultaneous threat intel sources
- 30-day historical data collection
Results:
┌────────────────────────┬──────────────┬────────────┐
│ Operation │ Time │ IOCs/sec │
├────────────────────────┼──────────────┼────────────┤
│ Collection (all) │ 1m 23s │ N/A │
│ Normalization │ 8.2s │ 1,829 │
│ Enrichment │ 45.3s │ 331 │
│ Prioritization │ 2.1s │ 7,142 │
│ SIEM Export (JSON) │ 3.4s │ 4,411 │
│ Full Pipeline │ 2m 22s │ 105 │
└────────────────────────┴──────────────┴────────────┘
```
## 🔮 未来工作
### 计划功能
- [ ] **机器学习集成**
- 基于 LSTM 的 IOC 置信度预测
- 针对新兴威胁的异常检测
- 自动化误报学习
- [ ] **增强富化**
- 地理位置和 ASN 映射
- 被动 DNS 集成
- WHOIS 和证书情报
- [ ] **扩展来源覆盖**
- 商业源 (Recorded Future, CrowdStrike)
- 暗网监控
- 社交媒体威胁情报
- [ ] **高级分析**
- 威胁行为者追踪和画像
- 攻击活动关联和归因
- 预测性威胁建模
- [ ] **UI/仪表盘**
- 基于 React 的 Web 界面
- 实时监控
- 自定义报告生成
### 研究机会
- 威胁情报源质量的对比分析
- 自动化 IOC 操作化的影响评估
- IOC 优先级排序的机器学习方法
- 多 SIEM 环境的集成模式
## 🤝 贡献
欢迎贡献!这是一个学术项目,我感兴趣的内容包括:
- Bug 修复和性能改进
- 额外的威胁情报源连接器
- 新的 SIEM 集成模块
- 文档增强
- 测试覆盖率改进
### 开发设置
```
# Clone 并以 development mode 安装
git clone https://github.com/yourusername/threat-intel-automation.git
cd threat-intel-automation
pip install -e ".[dev]"
# Run 测试
pytest tests/
# Run linting
flake8 src/
black src/
# 生成 coverage 报告
pytest --cov=src tests/
```
### 提交指南
1. Fork 本仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 发起 Pull Request
## 📄 许可证
本项目根据 MIT 许可证授权 - 详情请参见 [LICENSE](LICENSE) 文件。
## 📚 学术引用
如果您在研究中使用本工作,请引用:
```
@misc{threat_intel_automation_2025,
author = {Your Name},
title = {Automated Threat Intelligence Platform for Blue Team Operations},
year = {2025},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/yourusername/threat-intel-automation}},
note = {Graduate Research Project - Cybersecurity}
}
```
## 🙏 致谢
- AlienVault 提供的 Open Threat Exchange 平台
- AbuseIPDB 提供的恶意 IP 数据
- MISP 项目提供的信息共享框架
- MITRE Corporation 提供的 ATT&CK 框架
- 安全社区提供的威胁情报贡献
## 📧 联系方式
**Your Name** - Your University
Email: your.email@university.edu
LinkedIn: [your-linkedin](https://linkedin.com/in/your-profile)
项目链接: [https://github.com/yourusername/threat-intel-automation](https://github.com/yourusername/threat-intel-automation)
**注意**: 这是一个为教育和研究目的而开发的研究生研究项目。在生产环境中部署威胁情报系统时,请始终确保符合适用的法律法规。
标签:CISA项目, Cloudflare, DAST, ELK, FTP漏洞扫描, HTTP工具, IOC收集, IP 地址批量处理, MITRE ATT&CK, Python, QRadar, SIEM集成, SOC运营, STIX 2.1, 威胁分析, 威胁情报, 安全编排, 安全运营中心, 开发者工具, 恶意软件分析, 指标提取, 无后门, 网络信息收集, 网络安全, 网络映射, 自动化侦查工具, 逆向工具, 隐私保护, 风险评分