威胁感知爬虫工具 - 一个用于采集和同步各种威胁情报数据的自动化工具
- 🔄 多源数据采集: 支持从 NVD、GitHub、OSV、CNVD 等多个数据源采集威胁情报
- 📊 结构化存储: 将非结构化数据转换为标准化的JSON格式
- 🔒 安全配置: 支持本地配置文件和环境变量,防止敏感信息泄露
- 📁 智能存储: 按年份和数据源自动分类存储数据文件
- 🔍 增量同步: 支持基于时间戳的增量数据同步
- 🧪 完整测试: 包含模拟数据测试和实际网络测试
git clone https://github.com/XJTUOSS/ThreatSync.git
cd ThreatSyncpip install -r requirements.txt方法A: 使用本地配置文件(推荐)
# 复制配置模板
cp config/config.example.yaml config/config.local.yaml
# 编辑本地配置文件,填入真实的API密钥
# 注意:config.local.yaml 不会被提交到git方法B: 使用环境变量
# Windows PowerShell
$env:GITHUB_TOKEN = "your_github_token_here"
$env:NVD_API_KEY = "your_nvd_api_key_here"
# Linux/Mac
export GITHUB_TOKEN="your_github_token_here"
export NVD_API_KEY="your_nvd_api_key_here"python tests/test_security.py# 运行模拟数据测试(不需要网络)
python tests/test_cnvd_json_mock.py
# 运行实际网络测试
python tests/test_cnvd_collector.pyThreatSync/
├── config/ # 配置文件
│ ├── config.yaml # 主配置文件(可提交)
│ ├── config.local.yaml # 本地配置(不提交,包含密钥)
│ └── config.example.yaml # 配置示例(可提交)
├── data/ # 数据文件(不提交)
│ ├── structured/ # 结构化数据
│ │ ├── nvd/ # NVD数据
│ │ ├── github/ # GitHub数据
│ │ └── osv/ # OSV数据
│ └── unstructured/ # 非结构化数据
│ └── cnvd/ # CNVD数据(按年份分类)
├── logs/ # 日志文件(不提交)
├── src/ # 源代码
│ ├── collectors/ # 数据采集器
│ ├── models/ # 数据模型
│ └── utils/ # 工具模块
├── tests/ # 测试文件
└── docs/ # 文档
本项目采用了多层安全措施:
- 🔐 配置分离: 敏感配置与公共配置分离
- 🚫 Git忽略: 自动排除敏感文件和数据文件
- 🔑 环境变量: 支持使用环境变量管理密钥
- ✅ 安全测试: 包含配置安全性验证
详细说明请参考 SECURITY.md
from src.main import ThreatSyncEngine
# 初始化引擎
engine = ThreatSyncEngine()
# 采集CNVD数据(保存为JSON文件)
engine.collectors['cnvd'].collect(
days_back=7,
max_pages=5,
save_raw_json=True
)