Fadouse/clash-threat-intel

GitHub: Fadouse/clash-threat-intel

自动化威胁情报聚合器,为 Clash/Mihomo 代理客户端生成多源 IOC 黑名单、YARA 规则和 MalwareBazaar 哈希列表,支持细粒度威胁分类与持续更新。

Stars: 0 | Forks: 0

# Clash 威胁情报 ***重要提示:本仓库完全由氛围编程 完成。*** 自动化的威胁情报源聚合器,用于生成 Clash / Mihomo 规则集、YARA 规则和 MalwareBazaar SHA-256 黑名单 —— 通过 GitHub Actions 每两小时自动更新。 ## 功能特性 - 位于 `clash/generated/` 的 Clash / Mihomo **域名和 IP 黑名单** - 位于 `yara/` 的网络 IOC **YARA 规则** - 位于 `intel/` 的 **MalwareBazaar SHA-256 哈希值** - 位于 `meta/stats.json` 的构建统计数据 - IOC 保留窗口(默认 360 天),防止短期源缺失导致活跃指标被立即移除 - 通过 `inputs/allowlist_domains.txt` 和 `inputs/allowlist_ips.txt` 进行自动白名单处理 - 通过 `inputs/pua.manual.txt` 进行可选的手动 PUA(潜在不受欢迎软件)条目添加 - 可选的 VirusTotal 富化以进行额外的置信度评分 ## 规则类别 ### 默认类别(始终启用) | 类别 | 文件 | 描述 | |----------|------|-------------| | `malware` | `clash/generated/malware.txt` | 通用恶意软件域名与 IP (URLhaus + ThreatFox) | | `pua` | `clash/generated/pua.txt` | 潜在不受欢迎的应用程序 | | `privacy` | `clash/generated/privacy.txt` | 跟踪与遥测域名 | | `ads` | `clash/generated/ads.txt` | 广告域名 | ### 细粒度威胁类别(可选,默认禁用) 通过在 `clash/merge-ti.js` 中设置 `ENABLE_ALL_CATEGORIES = true` 来启用。 | 类别 | 文件 | 示例 | |----------|------|---------| | `stealer` | `stealer.txt` | RedLine, Lumma, Vidar, StealC, Raccoon | | `ransomware` | `ransomware.txt` | LockBit, BlackCat, Clop, Ryuk, STOP/Djvu | | `c2` | `c2.txt` | CobaltStrike, Sliver, BruteRatel, Havoc | | `rat` | `rat.txt` | AsyncRAT, Remcos, njRAT, QuasarRAT, XWorm | | `botnet` | `botnet.txt` | Emotet, QakBot, BumbleBee, PikaBot | | `backdoor` | `backdoor.txt` | ShadowPad, BPFDoor, Winnti | | `miner` | `miner.txt` | XMRig, CoinMiner | | `loader` | `loader.txt` | GuLoader, GootLoader, Latrodectus, FakeBat | | `banker` | `banker.txt` | ZLoader, DanaBot, Grandoreiro, SharkBot | | `keylogger` | `keylogger.txt` | AgentTesla, FormBook, SnakeKeylogger | | `rootkit` | `rootkit.txt` | Rootkit 和 Bootkit | | `worm` | `worm.txt` | RaspberryRobin | | `exploit` | `exploit.txt` | 漏洞利用套件 | | `phishing` | `phishing.txt` | 钓鱼与凭据 harvesting | ## 使用方法 ### 选项 1 — Mihomo Party / Clash Meta (合并脚本) 将 [`clash/merge-ti.js`](clash/merge-ti.js) 的内容复制到 [Mihomo Party](https://github.com/mihomo-party-org/mihomo-party) 或任何支持合并脚本的 Clash Meta 前端的 **Merge** 脚本字段中。 该脚本将: 1. 为每个启用的类别注册一个 `rule-provider`(每 15 分钟自动更新)。 2. 为每个类别创建一个 `proxy-group`,以便您选择如何处理被阻止的流量(`REJECT` 或 `DIRECT`)。 3. 在 `MATCH` 全能规则之前插入相应的 `RULE-SET` 规则。 要启用所有 14 个细粒度威胁类别,请打开 `clash/merge-ti.js` 并更改: ``` const ENABLE_ALL_CATEGORIES = false; // → change to: const ENABLE_ALL_CATEGORIES = true; ``` ### 选项 2 — 直接使用 rule-provider URL 在您的 Clash / Mihomo 配置中直接引用原始规则文件: ``` rule-providers: ti-malware: type: http behavior: classical format: text url: "https://raw.githubusercontent.com/Fadouse/clash-threat-intel/main/clash/generated/malware.txt" path: ./ruleset/ti-malware.txt interval: 900 ti-ads: type: http behavior: classical format: text url: "https://raw.githubusercontent.com/Fadouse/clash-threat-intel/main/clash/generated/ads.txt" path: ./ruleset/ti-ads.txt interval: 900 rules: - RULE-SET,ti-malware,REJECT - RULE-SET,ti-ads,REJECT - MATCH,DIRECT ``` ## 数据来源 | 来源 | 源类型 | 类别 | |--------|------|-----------| | [URLhaus](https://urlhaus.abuse.ch/) | Host-file & text feed | malware | | [ThreatFox](https://threatfox.abuse.ch/) | IOC API (最近 3 天, 置信度 ≥ 90) | malware + 所有细粒度类型 | | [MalwareBazaar](https://bazaar.abuse.ch/) | 近期 SHA-256 导出 | SHA-256 情报 | | [Blocklistproject](https://github.com/blocklistproject/Lists) | `ads.txt`, `tracking.txt` | ads, privacy | | [PUP filter](https://gitlab.com/curben/pup-filter) | DNSCrypt blocked-names list (可选) | pua | | [VirusTotal](https://www.virustotal.com/) | Domain/IP enrichment (可选) | malware + 细粒度类型 | ## 配置 构建管道由环境变量控制(在 GitHub Actions 工作流中或本地设置): | 变量 | 默认值 | 描述 | |----------|---------|-------------| | `THREATFOX_AUTH_KEY` | *(空)* | ThreatFox API 密钥(IOC 查询必需) | | `THREATFOX_DAYS` | `3` | 获取多少天内的 ThreatFox IOC | | `THREATFOX_CONFIDENCE` | `90` | 包含 ThreatFox IOC 的最低置信度评分 (0–100) | | `VT_API_KEY` | *(空)* | VirusTotal API 密钥(可选富化) | | `VT_ENRICH_LIMIT` | `20` | 每次运行富化 IOC 的最大数量 | | `VT_MIN_SCORE` | `5` | 包含 IOC 的最低 VirusTotal 检测计数 | | `PUP_FILTER_URL` | *(空)* | 用于 `pua` 类别的 PUP/广告软件 DNSCrypt 黑名单 URL | | `IOC_RETENTION_DAYS` | `360` | 保留在此天数内出现过的 IOC;更早的条目将被清除 | ## 手动输入 `inputs/` 中的文件被提交到仓库,允许您在不更改代码的情况下微调管道: | 文件 | 用途 | |------|---------| | `inputs/allowlist_domains.txt` | **永远**不会被阻止的域名(每行一个) | | `inputs/allowlist_ips.txt` | **永远**不会被阻止的 IP 地址(每行一个) | | `inputs/pua.manual.txt` | 添加到 `pua` 类别的额外 PUA 域名(每行一个) | 以 `#` 开头的行被视为注释并被忽略。 ## 本地运行 ``` # 无需外部依赖 —— 纯 Python stdlib THREATFOX_AUTH_KEY= \ THREATFOX_DAYS=3 \ THREATFOX_CONFIDENCE=90 \ python scripts/build_ti.py ``` 生成的文件被写入: - `clash/generated/` — Clash 规则集文本文件 - `yara/network_iocs_auto.yar` — YARA 规则文件 - `intel/malwarebazaar_recent_sha256.txt` — MalwareBazaar SHA-256 哈希值 - `meta/stats.json` — 构建统计数据 - `meta/ioc_history.json` — 用于保留 / 防抖动行为的 IOC 最后出现缓存 保留行为: - 如果再次观察到 IOC,它会保留并且其 `last_seen` 时间戳会被刷新。 - 如果 IOC 暂时从上游源中消失,只要未被发现的时间不超过 `IOC_RETENTION_DAYS`,它就会被保留。 - 重复条目通过基于集合的聚合自动去重。 ## 工作原理 ``` ┌─────────────────────────────────────────────────────────────────────┐ │ build_ti.py │ │ │ │ URLhaus hostfile ──┐ │ │ URLhaus text ──┤ │ │ ThreatFox API ──┼──► categorise ──► deduplicate │ │ BlocklistProject ──┤ ──► allowlist filter │ │ PUP filter ──┘ ──► write rule-set files │ │ │ │ MalwareBazaar SHA-256 ──► intel/ │ │ (VT enrichment optional) │ │ Network IOCs ──► YARA rules ──► yara/ │ └─────────────────────────────────────────────────────────────────────┘ │ ▼ (GitHub Actions: every 2 hours) clash/generated/*.txt meta/stats.json │ ▼ (merge-ti.js in Clash client) rule-providers + proxy-groups injected into running config ``` ## 许可证 本项目采用 [GNU General Public License v3.0](LICENSE) 许可。 情报数据由第三方源根据其各自的服务条款提供。详情请参阅每个来源的网站。
标签:Ask搜索, C2 通信, Clash 规则, GitHub Actions, IOC 聚合, IP 封锁, MalwareBazaar, Mihomo, ThreatFox, Threat Intelligence, URLhaus, VirusTotal, YARA 规则, 僵尸网络, 勒索软件, 域名黑名单, 威胁情报, 广告拦截, 开发者工具, 恶意软件, 挖矿防护, 数据可视化, 网络安全, 网络安全, 自动化更新, 自动笔记, 远程控制木马, 逆向工具, 隐私保护, 隐私保护