Kaito643/indiScanner

GitHub: Kaito643/indiScanner

一款 Rust 编写的网络威胁情报聚合器,从多个 OSINT 来源查询、规范化、去重并评分入侵指标(IOC),支持 STIX 2.1 和 MISP 导出。

Stars: 1 | Forks: 0

# ThreatHarvester 一个用 Rust 编写的高性能网络威胁情报 (CTI) 聚合器。它查询广泛的 OSINT / 威胁情报源,对入侵指标 (IOC) 进行规范化和去重,通过跨源共识对它们进行评分,并导出可操作的数据。 ## 设计 分为三层,因此该工具可以扩展到许多来源,而无需查询无法提供答案的来源: 1. **IOC 类型模块** (`src/modules/`) — 每个类别(`network`:IP/域名/URL,`file`:哈希/样本,`email` 等)对应一个。每个模块负责验证、规范化、解除武装,并知道哪些来源与其类型相关。这是路由大脑。 2. **来源连接器** (`src/sources/`) — 每个都声明一种**能力**(支持哪些 IOC 类型和操作)。引擎仅调用与请求匹配的来源。 3. **编排引擎** (`src/engine/`) — 将请求路由到正确的模块,并发地分发到有能力的来源,并聚合结果。 两个动词共用一个引擎: - **Enrich** — 查找单个 IOC(自动检测类型)并收集信誉/上下文。 - **Collect** — 收获与威胁实体(攻击者 / 恶意软件家族 / 攻击活动)相关的 IOC。 领域模型将 **`Observation`**(单个来源的原始声明,带有来源信息)与 **`Indicator`**(合并后、去重后、**共识评分**的结果)区分开来,从而实现真正的置信度评分和干净的 STIX 2.1 / MISP 导出。 ## 来源 | 来源 | 类型 | 操作 | 状态 | | --- | --- | --- | --- | | ThreatFox (abuse.ch) | IOC | 查找 + 搜索 | ✅ | | URLhaus (abuse.ch) | 恶意 URL | 查找 + 搜索 | ✅ | | MalwareBazaar (abuse.ch) | 恶意软件样本 | 查找 + 搜索 | ✅ | | AlienVault OTX | 开放威胁交换 | 查找 | ✅ | | AbuseIPDB | IP 信誉 | 查找 | ✅ | | VirusTotal | 多引擎判定 | 查找 | ✅ | | GreyNoise | 互联网扫描器上下文 | 查找 | ✅ | | Shodan | 暴露 / CVE 上下文 | 查找 | ✅ | | Ransomwhere | 勒索软件 BTC 地址 | 查找 + 搜索 | ✅ | | MISP, Pulsedive | 混合 | — | 计划中 | ## 路线图 - [x] **阶段 0** — 归档 v1,搭建新的 `lib + bin` crate。 - [x] **阶段 1** — 核心模型 + `ThreatSource`/`Capability` 和 `IocModule` 特征 + `network` 模块。 - [x] **阶段 2** — 路由器、聚合器、共识评分;移植 ThreatFox/URLhaus/OTX。 - [x] **阶段 3** — 端到端丰富路径 + AbuseIPDB。 - [x] **阶段 4** — 每个来源的缓存 + 速率限制 + 配置文件。 - [x] **阶段 5** — STIX 2.1 / MISP 导出。 - [x] **阶段 6** — `file` 模块(哈希摘要 + ssdeep)+ MalwareBazaar。 - [x] **阶段 7** — VirusTotal v3 + 每个来源的速率限制。 - [x] **阶段 8** — GreyNoise + Shodan(网络丰富上下文)。 - [x] **阶段 9** — `email` + `crypto` 模块(BTC/ETH/XMR,校验和已验证)+ Ransomwhere。 - [ ] **未来** — 攻击指标 (IOA):关系图谱 + MITRE ATT&CK 映射。 ## 构建与运行 需要 [Rust 工具链](https://rustup.rs/) (`cargo`)。 ``` cargo build --release # 丰富单个 IOC(类型自动检测;支持 defanged 输入) cargo run -- enrich 1.2.3.4 cargo run -- enrich "1[.]2[.]3[.]4" # 丰富文件 hash(MD5/SHA-1/SHA-256/SHA-512/ssdeep 自动检测) cargo run -- enrich 803385cf25070740f5b09e685d2f531c # 丰富电子邮件地址或 crypto wallet(BTC/ETH/XMR) cargo run -- enrich "user[at]evil[.]com" cargo run -- enrich 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa # 收集威胁实体的 IOC(别名自动展开) cargo run -- collect LockBit --kind actor # 输出格式:json(默认) | csv | stix | misp cargo run -- enrich 1.2.3.4 --output stix # 列出活跃的 sources 及其能力 cargo run -- sources ``` 将 `.env.example` 复制到 `.env` 并添加 API 密钥: - `ABUSE_CH_AUTH_KEY` — ThreatFox + URLhaus + MalwareBazaar 必需(从 免费获取) - `OTX_API_KEY` — 启用 AlienVault OTX - `ABUSEIPDB_API_KEY` — 启用 AbuseIPDB IP 信誉 - `VT_API_KEY` — 启用 VirusTotal(免费层级为 4 请求/分钟;自动调速) - `GREYNOISE_API_KEY` — 启用 GreyNoise 扫描器上下文(免费社区密钥) - `SHODAN_API_KEY` — 启用 Shodan 暴露/CVE 上下文 ## 配置 可选的 `threatharvester.toml`(或 `$TH_CONFIG`,或 `--config )调整来源开关、别名、缓存、速率限制以及每个来源的可靠性权重 — 请参阅 [`threatharvester.toml.example`](threatharvester.toml.example)。在没有配置文件的情况下, 将应用合理的默认设置。响应被缓存在 `.th-cache/` 下;暂时性的 HTTP 故障(5xx,超时)将退避并重试两次。 ## 免责声明 仅供**教育和研究目的**。任何下载的工件都可能是活体恶意软件,必须仅在安全、隔离的分析环境中处理。作者对滥用不承担任何责任。 ## 许可证 MIT — 请参阅 [LICENSE](LICENSE)。
标签:ESC4, IOC聚合, OSINT, Rust, 可视化界面, 威胁情报, 开发者工具, 网络流量审计, 网络调试, 自动化, 通知系统