TIEESUN/Hokage-Intel

GitHub: TIEESUN/Hokage-Intel

一个轻量级、本地优先的开源网络威胁情报平台,以单一 FastAPI 进程和 SQLite 替代复杂的 Docker 技术栈,为安全分析师提供开箱即用的情报聚合与 IOC 调查能力。

Stars: 5 | Forks: 1

# Hokage Intel [![License: AGPL v3](https://img.shields.io/badge/License-AGPL_v3-orange.svg)](https://www.gnu.org/licenses/agpl-3.0) [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org/downloads/) [![Local-first](https://img.shields.io/badge/architecture-local--first-success.svg)](#) [![Database](https://img.shields.io/badge/database-SQLite-lightgrey.svg)](#) [![Tests](https://img.shields.io/badge/smoke_checks-137-brightgreen.svg)](scripts/smoke.py) 1 2 3 ## 为什么选择 Hokage Intel? 商业威胁情报平台的起价通常在 3 万美元/年以上,并且需要专门的运维团队。像 MISP 和 OpenCTI 这样的开源 TIP 虽然可用,但需要依赖 Docker 技术栈、Elasticsearch、消息队列和专用的数据库。Hokage Intel 采取了截然相反的方法:**所有功能都在一个以 SQLite 为后端的单一 FastAPI 进程中运行,采用粗野主义风格的红/黑/白 UI,只需一个批处理文件即可启动**。 您只需提供网络连接。平台将为您提供: - 30+ 个预置的威胁情报源,支持幂等摄取 - 实时勒索软件受害者地理地图(按国家/地区显示受损组织的热力图) - 涵盖 24 个基础家族的 Infostealer 百科全书,可通过 Malpedia/ThreatFox 进行扩展 - 基于完整的 MITRE ATT&CK 组织目录 + Malpedia + Maltrail + OTX 构建的威胁行为者百科全书 - 包含 CISA KEV + NVD 2.0 富化数据的 CVE 百科全书,并在有证据时自动关联到攻击者 - 统一的 C2 清单,聚合了 ThreatFox(海量数据流)、Feodo Tracker、窃密木马 IOC 和攻击者 IOC - AI 驱动的行动生成器,按攻击者或国家/地区提出命名行动建议,并附上您的本地 IOC 作为证据 - 15 个富化后端,其中大多数无需 API 密钥即可使用 - Diamond 模型视图、Pivot 矩阵、Pivots 标签页,以及针对每个 IOC 的 Admiralty 代码评级 - 无需电话号码、API 密钥或会话字符串即可进行 Telegram 频道监控 ## 快速开始 ### Windows ``` git clone https://github.com/yourname/hokage-intel.git cd hokage-intel scripts\start.bat ``` 批处理脚本将创建虚拟环境,安装依赖项,运行数据库迁移,并在 `http://localhost:8000` 上启动服务器。 ### Linux / macOS ``` git clone https://github.com/yourname/hokage-intel.git cd hokage-intel python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt python -m hokage_intel ``` 首次启动将摄取 RSS 源,初始化 24 个 Infostealer 家族,在 `data/platform.db` 下设置 SQLite 数据库,并启动调度程序。随后的启动将从您上次中断的地方继续。 ## 开箱即用的功能 ### 页面(共 17 个) | 路径 | 功能 | |---|---| | `/` | Dashboard — 源计数、IOC 计数、C2 计数、活跃源、勒索软件受害者、行动、IOC 严重性分布、ATT&CK 热力图 | | `/feeds` | RSS + Telegram 源浏览器,可按严重性/来源/日期/IOC 是否存在进行筛选 | | `/iocs` | 提取的 IOC 表,带有类型/严重性过滤器和 Admiralty 评级 | | `/enrich` | 通过 15 个富化后端运行 IOC,提供针对各后端格式化的结果 + Pivot 矩阵 + Pivots 标签页 | | `/cert` | 证书透明度实时流 (CertStream),带有关键词高亮显示 | | `/recon` | OSINT 工具包 — WHOIS、DNS、GitHub 泄露模板等 | | `/actors` | 威胁行为者百科全书 — MITRE + Malpedia + Maltrail + OTX 导入器 | | `/actors/{id}` | 单个攻击者画像:Diamond 模型、IOC、别名、行业、参考链接、**关联 CVE 面板** | | `/stealers` | Infostealer 百科全书 — 包含 24 个家族,支持 ThreatFox/Maltrail IOC 摄取 | | `/stealers/{id}` | 单个家族详情及 IOC 表 | | `/c2` | 跨越 ThreatFox 数据流、Feodo、actor_iocs、stealer_iocs 的聚合 C2 清单 | | `/campaigns` | 行动浏览器 + **AI 行动生成器**(按 APT 或按国家/地区) | | `/campaigns/{id}` | 单个行动详情及关联的 IOC | | `/cves` | **CVE 百科全书** — CISA KEV + NVD 富化 + 自动攻击者映射 | | `/extras` | Defang/Refang、IOC 提取、哈希生成器 | | `/sources` | 管理源:添加、停用、标记为活跃 | | `/settings` | API 密钥、AI 提供商配置、abuse.ch Auth-Key、OTX 密钥、VT 密钥等 | ### 威胁行为者百科全书 (`/actors`) 四个互相叠加的摄取路径: 1. **MITRE ATT&CK** — 完整的 Groups 目录(约 150 个攻击者),包含别名、描述、动机、目标行业、TTPs、使用的软件、外部参考 2. **Malpedia** — 使用供应商描述 + 恶意软件家族归属 + 参考链接来丰富现有的攻击者;将不在 MITRE 中的新攻击者添加进来 3. **Maltrail** — 遍历 [stamparm/maltrail](https://github.com/stamparm/maltrail) 仓库中的每个 `apt_*.txt` 文件。通过名称/别名将每个 trail 文件匹配到现有的攻击者。如果不存在匹配项,则**自动创建一个骨架攻击者画像**,以便 IOC 总是有归宿。稍后重新运行 MITRE/Malpedia 会丰富这些骨架内容。 4. **OTX (AlienVault)** — 通过 SSE 流式传输提取每个攻击者的 pulse IOC,并显示每个攻击者的进度。公平队列轮换(现有 OTX IOC 最少的攻击者优先),每个攻击者超时时间为 60 秒,10 个攻击者为一批。“为所有攻击者拉取”会在客户端循环分批,直到覆盖所有人。 每个攻击者页面都会将 **Diamond 模型**(对手 / 能力 / 基础设施 / 受害者)显示为带有中心事件标记的真正的二维菱形。 ### CVE 百科全书 (`/cves`) 三个摄取来源 + 自动攻击者映射: | 来源 | 覆盖范围 | API 密钥 | |---|---|---| | **CISA KEV** | 约 1300 个已知被利用的漏洞 | 无 | | **NVD 2.0** | 任何 CVE 的描述 / CVSS / CPE | 可选(有密钥速度快 10 倍) | | **Feed 正则表达式** | 扫描您的源历史记录以查找 `CVE-YYYY-NNNN` ID | 无 | **自动链接到威胁行为者**通过四个信号发生,每个信号都有自己的置信度得分: - `source='feed'` — 源条目同时提到了已知的攻击者和 CVE-ID(置信度 35) - `source='cisa_kev'` — CISA 的 `shortDescription` 或 `notes` 提到了某个攻击者(置信度 60) - `source='nvd'` — NVD 描述指名了某个攻击者(置信度 65) - `source='otx'` — OTX pulse 同时标记了敌手和 CVE-ID(置信度 70) UI 中会对针对同一 (CVE, actor) 对的多行证据进行去重 — 您会看到一个包含聚合来源(`feed,otx,cisa_kev`)和证据计数的条目。统计面板按来源细分链接计数,以便您一眼就能诊断出是哪个导入路径产生了什么结果。 ### C2 清单 (`/c2`) 将**四个来源**聚合到一个统一的、可筛选的主机列表中: - **ThreatFox 海量数据流** — 通过 `get_iocs?days=N` 拉取所有恶意软件家族(不仅仅是初始化的 24 个)的最新 C2 IOC。持久化到 `c2_inventory` 表中。 - **Feodo Tracker** — 完整的活跃 C2 黑名单(约 200-500 个银行木马 C2),持久化到 `c2_inventory`。 - **stealer_iocs** — 每个窃密木马家族通过 Maltrail/ThreatFox 导入的任何内容 - **actor_iocs** — 每个 APT 通过 MITRE/Malpedia/Maltrail/OTX 导入的任何内容 跨来源的相同主机:端口会折叠成一行,并显示所有的源标签。可按恶意软件家族、国家/地区、来源、托管公司进行筛选。每个主机都链接到一键富化功能。 ### 行动生成器(AI 驱动) 在 `/campaigns` 页面点击 **⚡ Generate**: - **按 APT 名称** — 输入 "Lazarus",LLM 会提出命名的行动建议(如 Contagious Interview、AppleJeus、Operation Dream Job 等) - **按国家/地区** — 输入 "United States",LLM 会提出跨越不同攻击者针对美国的行动建议 每个建议都包含归属、行业、国家/地区、日期窗口、置信度评级和引用 URL。平台会附加本地证据:攻击者 IOC、家族 IOC、源提及。您可以审查这些卡片,取消勾选不需要的内容并接受 — 提交的建议将变成链接了 IOC 的真实行动。 通过 litellm 实现与提供商无关的配置。在 `/settings → AI providers` 中进行配置: - Anthropic (Claude Haiku 4.5) - OpenAI (GPT-4o-mini) - Google Gemini (2.5 Flash — 最佳的免费层级) - Groq (Llama 3.3 70B) - xAI (Grok 4) - OpenRouter(任何模型) - Ollama(本地) - Custom(任何兼容 OpenAI 的端点) ### 富化 (`/enrich`) 由 IOC 类型自动选择的 15 个后端。具有缓存感知能力(不会对过去 24 小时内已富化过的 IOC 重新请求 API)。针对各后端格式化的输出 — 不再有原始 JSON 转储: | 后端 | 覆盖范围 | API 密钥 | |---|---|---| | VirusTotal | IP / domain / URL / hash | 必需 | | AbuseIPDB | IP | 必需 | | AlienVault OTX | IP / domain / URL / hash / CVE | 可选 | | Shodan InternetDB | IP | 无 | | IPinfo Lite | IP | 可选 | | IP Detective | IP | 无 | | crt.sh | Domain | 无 | | URLhaus | URL / domain / IP / hash | 可选 | | URLscan | URL / domain / IP | 可选 | | Malware Bazaar | Hash | 可选 | | ThreatFox | 所有类型 | 可选(共享 abuse.ch 密钥) | | YARAify | Hash | 可选 | | Feodo Tracker | IP(自动批量) | 无 | | Ransomware.live | Domain / org | 无 | | SSL Labs | Domain | 无 | 每个后端的结果卡片都会展示真正有用的字段(带有红绿灯颜色的 VT 检出率、AbuseIPDB 置信度 + 报告、Shodan 端口 + CVE、OTX pulses + 敌手等)。只需点击一下即可展开查看原始 JSON。 ### Pivot 矩阵 + Pivots 标签页 每次富化后都会出现两个互补的面板: - **Pivot 矩阵** — “我下一步该做什么?” 根据发现的内容以及您的平台已知的信息,提供个性化的调查步骤。操作按钮可以运行新的 pivot 或打开相关页面。 - **Pivots 标签页** — “我们提取了哪些指纹和相关工件?” 每一行都是一个可 pivot 的工件:来自 crt.sh 的 SAN 主机名、来自 URLscan 的相关域名、来自 Malware Bazaar 的伴随哈希、来自 VirusTotal 的 ASN。“→ Pivot” 在平台内打开一个新的富化窗口;“↗ Open” 在外部进行跟进。 对功能范围保持诚实:没有 JARM/JA4(因为我们不运行互联网扫描器),没有“100 万个主机共享此指纹”的计数(因为我们没有 Censys 级别的数据)。没有包含的内容会在“此处未包含的内容”展开框中进行解释。 ### NATO Admiralty 代码评级 每个 IOC 都按照 [NATO Admiralty System](https://en.wikipedia.org/wiki/Admiralty_code) 的 6×6 可靠性 × 可信度量表进行评级。来源类型是上限(MITRE = A,abuse.ch = B,OSINT = C,社交 = D),工件类型是基线(CVE/SHA256 = 最高,IP = 上限为 D,因为 IP 会轮换)。显示的评级是这两者中的较小值 — 因此来自 MITRE 的 IP 显示为 D4(因为 IP 轮换很快,上限设为 D),而不是 A1。 ### Telegram 监控 通过网络抓取订阅公开的 Telegram 频道(不需要 Bot API 密钥,不需要电话,也不需要 MTProto 会话字符串)。内置 5 个默认频道。可以通过 `/sources` 添加/删除。 ## 架构 ``` Single FastAPI process ├── SQLite DB (data/platform.db, ~600 KB after bootstrap) ├── APScheduler — runs ingestion jobs every N minutes ├── CertStream WebSocket — live cert log monitoring ├── 15 enrichment backends (lazy-loaded) └── 17 server-rendered Jinja2 pages ``` 没有 Docker。没有 Redis。没有 Postgres。没有 Elasticsearch。没有微服务。没有消息队列。 ### 关键设计决策 - **所有摄取都是幂等的。** 每次插入都是带有 SHA-256 组合主键的 `INSERT OR IGNORE`。重新运行导入器会合并新数据,而不是产生重复。 - **获取前先缓存。** 富化结果缓存 24 小时,GitHub 目录列表缓存 7 天,NVD 记录一旦富化就永远缓存。 - **缓慢导入使用 SSE。** OTX、Maltrail 和 CVE 富化都通过 Server-Sent Events 流式传输每条记录的进度。在长达数分钟的任务中不会发生浏览器超时。 - **公平的队列轮换。** OTX 导入按 `(从未尝试, 现有 IOC 最少, 尝试时间戳最早)` 排序,这样处于停滞状态的攻击者就不会让新的攻击者处于等待状态。 - **自动创建优于静默失败。** 当 Maltrail 包含我们没有的 APT 的 trail 文件时,我们会创建一个带有 `source_dataset='maltrail'` 的骨架攻击者,以便 IOC 有归宿。稍后运行 MITRE/Malpedia 会丰富该骨架。 - **脆弱 API 的后备阶梯。** Maltrail 文件发现:GitHub Contents API → Trees API → 磁盘缓存 → 陈旧的缓存 → 硬编码的初始化列表。每个层级的成功都会报告给用户,以便他们知道是哪条路径胜出。 ## API 密钥管理 所有密钥都存储在本地 `api_keys` 表中(SQLite,而不是环境变量)。在 `/settings` → Enrichment keys 中保存它们。不需要重启。 | 设置 | 解锁内容 | |---|---| | `virustotal` | VT 富化 | | `abuseipdb` | AbuseIPDB 富化 | | `shodan` | Shodan 主机查询(Shodan InternetDB 保持免费,无需密钥) | | `urlscan` | URLscan 提交 + 私有扫描 | | `alienvault_otx` | OTX pulse 富化 + 每个攻击者的 IOC 导入 | | `ipinfo` | IPinfo Lite ASN/国家/地区 | | `abusech` | ThreatFox + URLhaus + MalwareBazaar + YARAify 共享的 Auth-Key | | `nvd` | 10 倍快的 NVD 富化(每 30 秒从 5 个请求增加到 50 个) | | (AI 提供商) | 在 `/settings` 的 AI 标签页中选择提供商 + 模型 + 粘贴密钥 | 大多数功能在没有密钥的情况下也能工作 — Hokage Intel 会优雅地回退到无需密钥的来源(Shodan InternetDB、IP Detective、Feodo、crt.sh、ransomware.live、ssl_labs、CISA KEV、NVD 免费层级)。 ## 数据源(30+ 个摄取流水线) **RSS 源**(每 30 分钟自动获取):The Hacker News、Bleeping Computer、Krebs on Security、SANS ISC、Securelist、CrowdStrike Adversary Universe、Mandiant 博客、Microsoft Threat Intelligence、Google Threat Intelligence、Recorded Future Insikt、Unit 42、Proofpoint、Trustwave SpiderLabs、Cisco Talos、Trend Micro、ESET WeLiveSecurity、Symantec、Sophos、Check Point、FortiGuard、Lookout、ReversingLabs、Intezer、nao_sec、HACKMAGEDDON、abuse.ch 博客、GreyNoise、CISA Alerts、政府 CERT 警报。 **Telegram 频道**(网络抓取):与 BreachForums 相邻的频道、勒索软件追踪、泄露监控。 **威胁行为者数据**:MITRE ATT&CK、Malpedia、Maltrail(75+ 个 APT 文件)、AlienVault OTX。 **恶意软件/C2/IOC 数据**:ThreatFox(按家族 + 海量数据流)、Feodo Tracker、URLhaus、Malware Bazaar、YARAify、Maltrail(窃密木马 + APT)。 **漏洞数据**:NVD 2.0、CISA 已知被利用的漏洞 (KEV)。 **勒索软件**:ransomware.live(受害者数据流 + 地理地图)。 **证书透明度**:CertStream WebSocket(实时)。 ## 冒烟测试 ``` python -m scripts.smoke ``` 擦除数据库,全新引导,然后测试每个页面、每个 API 端点、每个摄取路径以及每个去重/聚合行为。截稿前共有 **137 项检查**,涵盖: - 全部 17 个页面均可渲染 - `/ai` 和 `/alerts` 正确返回 404(在此构建中已移除) - 所有 API 端点均返回正确的数据结构 - C2 聚合去重(跨来源的主机:端口) - Maltrail 自动创建 + source_dataset 标记 - Maltrail 强制刷新 kwarg 线程 - Maltrail SSE 流式传输端点 - OTX SSE 流式传输 + 无密钥错误路径 - Pivots 标签页指纹提取(证书 SAN、相关主机、ASN、伴随哈希) - 使用模拟 LLM 的 AI 行动生成器(如果未安装 litellm 则跳过) - 容错 JSON 解析器恢复被截断的 LLM 响应(已在记录中途截断的情况下测试) - Admiralty 评级(IP 基线上限设为 D,哈希基线为 B,CVE 为 A,来源类型上限) - CVE 百科全书:从源初始化可发现攻击者-CVE 对 - CVE 详情针对不同的证据来源对攻击者进行去重 - `actor_id` 过滤器针对不同的证据来源对 CVE 进行去重 - 统计报告显示唯一对数与原始证据行数的对比 + 按来源细分 - 跨越所有 8 个提供商的 AI 配置 CRUD 成功时返回退出代码 0,任何失败则返回 1。用作打包发布前的最后关卡。 ## 项目结构 ``` hokage_intel/ ├── app.py FastAPI app + routes + middleware ├── c2.py C2 listing aggregator ├── c2_ingest.py ThreatFox bulk + Feodo persist ├── campaigns_generator.py LLM-driven campaign proposals ├── cves.py NVD + CISA KEV + CVE-actor linking ├── config.py Defaults ├── actors/ │ ├── mitre.py MITRE ATT&CK importer │ ├── malpedia.py Malpedia enrichment │ ├── maltrail.py Maltrail apt_*.txt walker w/ auto-create │ ├── otx.py AlienVault OTX SSE importer │ └── browse.py Actor list/detail queries ├── ai/ │ └── providers.py Provider-agnostic config (8 providers) ├── api/ All FastAPI routers ├── cert/ │ └── certstream.py CertStream WebSocket ├── db/ │ ├── schema.py All CREATE TABLE statements │ ├── connection.py Singleton conn + migrations │ └── bootstrap.py First-boot seeders ├── enrichment/ 15 backends, all subclass EnrichmentBackend ├── feeds/ RSS + Telegram fetchers ├── ransomware/ ransomware.live ingester ├── stealers/ │ ├── seed.py 24 baseline families │ ├── threatfox.py Per-family ThreatFox queries │ ├── maltrail.py Per-family Maltrail trail walker │ └── browse.py ├── utils/ │ ├── admiralty.py NATO grading │ ├── dynamic_pivots.py Pivot Matrix │ ├── pivots_tab.py Pivots Tab fingerprint extractor │ ├── iocs.py IOC regex + extraction + defang │ ├── http.py httpx wrapper w/ rate limiting + caching │ ├── keys.py api_keys table helpers │ └── timing.py ISO timestamps + sha256_id helper templates/ Jinja2 templates (17 pages + base + macros) static/ CSS, JS helpers (H namespace), SVG icons data/ SQLite DB + cached files (gitignored) scripts/ ├── start.bat Windows launcher ├── start.sh Unix launcher ├── smoke.py 137-check test suite └── ... ``` ## 路线图(比较宽松,未完全承诺) - 更多的攻击者导入器(Mandiant APT 报告 PDF、Recorded Future 分类法) - STIX 2.1 导出,用于向上游共享 IOC - Sigma + YARA 规则库,可选择从 Git 仓库同步 - 通过 SQLCipher 实现加密的 SQLite(将 `data/platform.db` 替换为 `.db.enc`) ## 许可证 AGPL-3.0。详见 `LICENSE`。如果您将修改后的版本作为网络服务运行,您必须根据 AGPL 发布修改后的源代码。 ## 鸣谢 如果没有以下各方的努力,这一切都将不复存在: - MITRE ATT&CK 团队,提供了攻击者 + 技术目录 - [Malpedia](https://malpedia.caad.fkie.fraunhofer.de/) (Fraunhofer FKIE) 提供了恶意软件家族归属 - [Maltrail](https://github.com/stamparm/maltrail) (Miroslav Stampar) 提供了精心整理的 APT IOC trail 文件 - [abuse.ch](https://abuse.ch/) 提供了 ThreatFox、URLhaus、Feodo Tracker、Malware Bazaar、YARAify — 整个 abuse.ch 家族是社区 CTI 的脊梁 - AlienVault OTX 提供了基于 pulse 的 IOC 共享 - [ransomware.live](https://www.ransomware.live/) 提供了受害者数据流 - CISA 提供了已知被利用的漏洞目录 - NIST NVD 提供了 CVE 注册表 - Calidog Security 提供了 CertStream 中继 如果您觉得 Hokage Intel 有用,请先支持这些上游项目 — 它们才是这一切的源泉。
标签:AV绕过, FastAPI, IP 地址批量处理, Python, SQLite, XSS, 域名收集, 威胁情报, 开发者工具, 插件系统, 攻防知识库, 无后门, 漏洞情报, 网络信息收集, 逆向工具