DuyPhuc-hust/LLM-Based-Threat-Intelligence-Gathering
GitHub: DuyPhuc-hust/LLM-Based-Threat-Intelligence-Gathering
一个基于LLM的开源网络威胁情报平台,通过聚合多源公开OSINT数据实现威胁指标的自动收集、丰富、分析及可视化。
Stars: 0 | Forks: 0
# 基于 LLM 的威胁情报收集
这是一个教育性的网络威胁情报(CTI)平台,用于从公开的 OSINT 来源收集、丰富、分析和可视化威胁情报。该系统支持自动化威胁监控、情报优先级排序、基于证据的报告以及面向分析师的仪表板。
## 概述
本项目是作为网络安全和渗透测试的毕业设计项目开发的。该平台演示了如何收集、规范化、丰富公开可用的威胁情报,并将其转化为可用于防御性安全运营的可操作情报。
该系统集成了多种威胁情报来源,提取安全相关实体,关联分析结果,并提供用于监控新兴威胁的分析师仪表板。
## 主要功能
### 数据收集
该平台从以下公开来源收集威胁情报:
* RSS 安全新闻源
* CISA 已知被利用漏洞(KEV)
* Reddit 网络安全社区
* X (Twitter) 公共搜索 API
* PhishTank 钓鱼源
* AlienVault OTX 威胁情报源
* URLhaus 恶意 URL 源
* ThreatFox IOC 源
* GitHub 安全公告
* FIRST EPSS 丰富服务
当实时 API 不可用时,提供了备选数据集用于教育演示。
### 威胁情报处理
该平台执行:
* 数据清洗和规范化
* 重复检测和移除
* 实体提取
* IOC 提取
* 威胁丰富
* 趋势分析
* 威胁优先级排序
* 基于证据的报告
支持提取的实体包括:
* CVE
* IP 地址
* 域名
* URL
* 文件哈希
* MITRE ATT&CK 技术 ID
### 存储与分析
该系统支持:
* SQLite 情报存储
* 关系追踪
* OSINT 覆盖率评分
* 可靠性评估
* 威胁优先级排序
### 分析师界面
#### React 指挥中心
功能包括:
* 任务控制仪表板
* 优先队列
* 威胁趋势可视化
* OSINT 覆盖率指标
* 情报报告审查
#### Streamlit 仪表板
用于演示和开发目的的轻量级备用仪表板。
## 项目架构
```
Public Sources
│
▼
Collection Layer
│
▼
Normalization Layer
│
▼
Entity Extraction
│
▼
Threat Enrichment
│
▼
Analysis & Prioritization
│
▼
SQLite Storage
│
▼
Analyst Dashboard & Reports
```
## 项目结构
```
cti_pipeline/
├── collectors/ Public-source collectors
├── extractors/ Entity extraction and normalization
├── analysis/ Prioritization and OSINT coverage scoring
├── storage/ SQLite storage adapters
├── reports/ Intelligence reporting
├── api/ FastAPI backend
frontend/ React analyst dashboard
dashboard/ Streamlit dashboard
config/ Source configuration
docs/ Documentation
scripts/ Automation scripts
tests/ Unit tests
```
## 系统要求
* Python ≥ 3.10(推荐:Python 3.10 或 Python 3.11)
* Node.js ≥ 18.x
* npm ≥ 9.x
## 安装
### 克隆仓库
```
git clone https://github.com/DuyPhuc-hust/LLM-Based-Threat-Intelligence-Gathering.git
cd LLM-Based-Threat-Intelligence-Gathering
```
### 创建虚拟环境
```
python3 -m venv .venv
source .venv/bin/activate
```
### 安装依赖
```
pip install -r requirements.txt
```
## 配置
在项目根目录下创建一个 `.env` 文件:
```
X_BEARER_TOKEN=
OTX_API_KEY=
GITHUB_TOKEN=
ABUSECH_AUTH_KEY=
PHISHTANK_APP_KEY=
REDDIT_CLIENT_ID=
REDDIT_CLIENT_SECRET=
REDDIT_USER_AGENT="pentest-capstone-cti-pipeline/0.1 by your_username"
LLM_PROVIDER=
LLM_MODEL=
LLM_BASE_URL=
LLM_API_KEY=
```
## 运行平台
### 启动后端
```
python3 -m uvicorn cti_pipeline.api.main:app --host 127.0.0.1 --port 8000 --reload
```
后端 API:
```
http://127.0.0.1:8000
```
### 启动前端
打开第二个终端:
```
cd frontend
npm install
npm run dev -- --host 127.0.0.1 --port 5173
```
### 访问仪表板
打开:
```
http://127.0.0.1:5173
```
### 启动实时收集
要开始收集实时威胁情报:
1. 打开仪表板。
2. 确认后端服务正在运行。
3. 点击 **Run Live Update**。
4. 系统将从配置的 OSINT 和威胁情报源收集数据。
5. 收集到的数据将通过提取、丰富、优先级排序和报告模块进行处理。
6. 更新后的结果将自动显示在仪表板上。
## 实时流水线执行
也可以直接从命令行执行完整的实时收集工作流:
```
python -m cti_pipeline.cli run-pipeline \
--source all \
--days 3650 \
--fresh \
--live-only \
--enrich-limit 8
```
此命令会:
* 从配置的实时来源收集数据
* 禁用教育性备选数据集
* 丰富收集到的威胁指标
* 重新生成情报报告
* 更新仪表板数据
## LLM 辅助报告
该平台支持通过兼容 OpenAI 的 API 进行可选的基于 LLM 的情报报告。
Gemini 配置示例:
```
export LLM_PROVIDER=openai_compatible
export LLM_MODEL=gemini-2.5-flash
export LLM_BASE_URL=https://generativelanguage.googleapis.com/v1beta/openai/chat/completions
export LLM_API_KEY=
```
生成情报报告:
```
python -m cti_pipeline.cli llm-report --days 3650
```
生成的报告需要:
* 证据参考
* 来源归属
* 防御建议
* 置信度说明
## 安全范围
本项目严格限于教育和防御目的。
该平台:
* 仅从公开来源收集信息
* 使用官方 API、RSS 源和已记录的数据集
* 不执行私有抓取
* 不下载或执行恶意软件
* 不执行自动化利用
* 保留来源归属和证据参考
* 仅支持防御性网络安全研究
本项目不适用于攻击性安全操作或未经授权的活动。
## 许可证
本项目旨在用于教育和研究目的。
标签:C2, ESC4, HTTP/HTTPS抓包, Kubernetes, OSINT, 威胁情报, 开发者工具, 态势感知, 数据分析可视化, 网络安全, 逆向工具, 隐私保护