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, 威胁情报, 开发者工具, 态势感知, 数据分析可视化, 网络安全, 逆向工具, 隐私保护