ipanalytics/BlackRoute

GitHub: ipanalytics/BlackRoute

BlackRoute 是一个从公共威胁源聚合IP信誉数据并构建本地查找数据库的安全智能管道,用于实时威胁评估和风险控制。

Stars: 1 | Forks: 0

# 黑路由 Blackroute 从公共滥用、恶意软件、僵尸网络 C2、垃圾邮件、网络钓鱼、暴力破解、bogon 和网络犯罪前缀源构建本地 IP 信誉数据库。主要制品是 `blackroute.mmdb`,一个兼容 MaxMind 的数据库,可用于网关、代理、欺诈检查、SIEM 管道和内部数据充实任务。

Blackroute builds a local IP reputation database from public abuse, malware, botnet C2, spam, phishing, brute-force, bogon, and cybercrime-prefix feeds.

Blackroute 不解析主机名、查询 PTR 记录、爬取 DNS、指纹识别网络或扫描任何内容。它只下载配置的源,提取公共 IP 地址和 CIDR 前缀,附加标签,合并重复项,并写入确定性输出文件。 默认目录目前包含 52 个已启用的 IP/CIDR 源。它不包括 VPN、代理、Tor 或通用匿名器列表作为威胁证据。 ## 数据集覆盖 源目录围绕观察到的滥用行为而非网络类型进行分组。发布制品包含清理后记录、单个 IP、CIDR 前缀、源、威胁标签、基础设施标签和分类标签的精确计数。 | 领域 | 已启用的源标签 | 贡献内容 | | --- | ---: | --- | | 近期攻击与滥用 | 24 | SSH、邮件、Web、SIP、FTP、僵尸、扫描器和短时间窗口攻击者信号 | | 已入侵或敌对主机 | 10 | 已确认的被入侵 IP、僵尸网络基础设施和敌对信誉源 | | 活跃恶意软件和 C2 | 11 | abuse.ch、ThreatFox、C2IntelFeeds、Threatview、MalSilo、RomainMarcoux、Bitwire 和相关 C2 指标 | | 社区和多传感器风险 | 15 | 来自 CINSscore、IPsum、GreenSnow、AlienVault、DShield、AbuseIPDB 镜像、Bitwire 和每小时聚合的相关信誉 | | 暴力破解和垃圾邮件 | 7 | SSH、POP3、邮件、表单垃圾邮件和滥用源 | | 网络犯罪和 bogon 基础设施 | 4 | Spamhaus DROP/DROPv6 和 Team Cymru 全量 bogon 前缀 | 信任组合: | 信任级别 | 已启用源 | | --- | ---: | | `aggregator` | 29 | | `curated` | 9 | | `community` | 13 | | `authoritative` | 1 | ## 为何选择 Blackroute - 透明的源映射:每条记录保留源名称、源 URL、置信度、威胁标签和基础设施标签。 - 适用于 cron:单个二进制文件,单个 YAML 文件,稳定输出,无需管理面板。 - 低运行时成本:编译一次,然后在您自己的技术栈中执行快速 MMDB 查找。 - 当您需要本地控制、可审计性和可重复构建时,是付费信誉数据库的实用替代品或补充。 - 保守解析:私有、本地、多播、未指定和过于宽泛的范围在输出前被忽略。 ## 输出 | 文件 | 用途 | | --- | --- | | `release/blackroute.mmdb` | 用于运行时 IP 和前缀查找的 MaxMind 数据库 | | `release/blackroute.csv` | 用于审查、差异比较和导入作业的扁平表格 | | `release/blackroute.jsonl` | 用于管道的按行分隔记录 | | `release/run_stats.json` | 构建摘要、IP/CIDR 计数和标签计数 | MMDB 记录使用此结构: ``` { "matched_prefix": "203.0.113.10/32", "threat": ["recent_attack_any", "recent_attack_ssh"], "infrastructure": ["bogon"], "classification": ["national_cert_malicious"], "sources": ["blocklist_de_ssh"], "confidence": 70, "score": 55, "level": "medium", "observed_at": "2026-05-20T12:00:00Z", "database_built_at": "2026-05-20T12:05:00Z" } ``` ## 快速开始 ``` bash scripts/setup-server.sh ./run.sh ``` 当您只需要 CSV 和 JSONL 时,无需构建 MMDB: ``` ./run.sh --skip-mmdb ``` 仅运行选定的源: ``` ./run.sh --only=blocklist_de_ssh,emergingthreats_compromised ``` 使用自定义源文件或输出目录: ``` ./run.sh --feeds=configs/feeds.yaml --output=release ``` 直接构建二进制文件: ``` go build -o ./bin/blackroute ./cmd/collector ./bin/blackroute --feeds=configs/feeds.yaml --output=release ``` 运行测试: ``` go test ./... ``` ## 发布 发布工作流每天 UTC 时间 03:17 运行,也可以从 GitHub Actions 手动启动。发布使用 `YYYY.MM.DD` 格式的日期标签,并发布生成的数据库制品: - `blackroute_.mmdb` - `blackroute__exports.tar.gz`,包含 CSV、JSONL 和运行统计 - `blackroute__run_stats.json` - `blackroute__cleanup_stats.json` - `blackroute__release_summary.md` - `checksums.txt` 发布制品在发布前使用 [BogonForge](https://github.com/ipanalytics/BogonForge) 兼容的公共 IP 过滤进行清理。发布摘要报告配置的源数量、清理后的源数量、清理前的记录数、单个 IP 和 CIDR 计数、因 bogon/保留/无效而移除的记录数,以及保留在已发布数据库中的记录数。 直接从公共的 abuse.ch 导出构建本地 ThreatFox IP 源: ``` scripts/build-threatfox-feed.sh ./run.sh --only=threatfox_ioc_ips ``` 检查已配置的 HTTP 源是否可用以及 `Last-Modified` 头是否过时: ``` scripts/check-feeds.sh MAX_FEED_AGE_HOURS=72 scripts/check-feeds.sh configs/feeds.yaml ``` ## 计划任务 从 cron 运行时使用包装器。它会根据需要构建二进制文件,防止重叠运行,并默认将 Go 构建缓存保存在仓库之外。 ``` 17 * * * * cd /opt/blackroute && APP_DIR=/opt/blackroute scripts/run-cron.sh >> var/log/cron.log 2>&1 ``` 手动计划任务式运行: ``` APP_DIR=/opt/blackroute /opt/blackroute/scripts/run-cron.sh ``` 可选的缓存覆盖: ``` BLACKROUTE_CACHE_DIR=/var/cache/blackroute/go ./run.sh ``` ## 源配置 源位于 `configs/feeds.yaml`。 经过审查的上游映射记录在 `docs/source-audit.md`。 ``` feeds: - kind: textlist name: blocklist_de_ssh display_name: blocklist.de SSH trust: community threat: [recent_attack_any, recent_attack_ssh] urls: - https://lists.blocklist.de/lists/ssh.txt ``` 支持的字段: | 字段 | 含义 | | --- | --- | | `kind` | 目前为 `textlist`;从文本、CSV、类 JSON 和 netset 风格的行中提取公共 IP 和 CIDR | | `name` | 写入输出记录的稳定源标识符 | | `display_name` | 供操作人员使用的人类可读源名称 | | `disabled` | 设置为 `true` 以保持源已配置但不激活 | | `trust` | `aggregator`、`community`、`curated` 或 `authoritative`;控制默认置信度 | | `threat` | 用于敌对行为或活跃信誉的标签 | | `infrastructure` | 用于网络上下文的标签,如 bogon、托管、网络犯罪前缀或高风险 ASN | | `classification` | 用于源特定类别上下文的标签,如诈骗、策略、C2、DNSBL 或国家 CERT 信号 | | `urls` | 一个或多个源 URL | ## 包含的源 默认配置包括: - blocklist.de:SSH、邮件、Web、IMAP、FTP、SIP、僵尸和强 IP 列表。 - Emerging Threats:已入侵和敌对主机。 - CINSscore:多传感器高风险地址。 - FireHOL:保守的攻击者和 1 天滥用者聚合。 - Spamhaus:DROP 和 DROPv6 网络犯罪前缀。 - Team Cymru:IPv4 和 IPv6 全量 bogon 前缀。 - abuse.ch Feodo Tracker:活跃的僵尸网络 C2 IP。 - SANS ISC DShield、GreenSnow 和 IPsum 用于社区风险信号。 - Binary Defense 带名单、ThreatFox IOC IP、C2IntelFeeds、USOM 恶意 IP、Inversion Cloud IP、Inversion DNSBL IPv4、乌克兰 EMA 欺诈 IP、Global Anti Scam IP、AlienVault 信誉、Dataplane 攻击源、ZiyadNZ 每小时聚合 IP、StopForumSpam、Blocklist.net.ua、Threatview、MalSilo、Rutgers、BruteForceBlocker、POP3 Gropers、Phishing.Database IP、AbuseIPDB 高置信度镜像、RomainMarcoux 40K 入站/出站、ShadowWhisperer 扫描器、IP BlockList v4 Level 3+ 以及 Bitwire 入站/出站。 商业源和 API 密钥源故意不捆绑。当您的许可证允许本地再分发或内部使用时,请将它们作为私有条目添加到 `configs/feeds.yaml`。 Blackroute 优先使用直接上游源,如果它们是公开且解析器兼容的。仅在上游访问基于 API 密钥、基于浏览器会话、不稳定或域名密集时才保留镜像源。默认的 ThreatFox 条目首先检查 `local/feeds/threatfox_ips.txt`,然后直接读取官方的 abuse.ch ZIP/CSV 导出。 ## 标签 威胁标签描述行为: ``` [ "recent_attack_any", "recent_attack_ssh", "recent_attack_mail", "recent_attack_web", "recent_attack_imap", "recent_attack_ftp", "recent_attack_sip", "recent_badbot_or_regbot", "persistent_attacker", "malware_host_active", "compromised_or_hostile_host", "community_high_risk", "multi_sensor_high_risk", "aggregate_abuser_1d", "c2_ioc", "bruteforce", "spam", "abuse", "phishing_or_scam", "network_scan_or_abuse" ] ``` 基础设施标签描述网络上下文: ``` [ "hosting", "bogon", "prefix_cybercrime", "asn_high_risk" ] ``` 分类标签描述源类别,而不强制将所有内容归入 `threat`: ``` [ "c2_ioc", "national_cert_malicious", "malicious_url_or_ip", "cloud_hosting_abuse_derived", "dnsbl_malicious", "safe_browsing_malicious", "phishing_or_scam", "financial_fraud", "policy_illegal_gambling", "scam_or_fraud", "alienvault_otx_reputation", "network_scan_or_abuse", "aggregate_threat_intel_hourly", "cobalt_strike_c2", "command_and_control", "malware_distribution", "ssh_bruteforce", "mail_bruteforce", "phishing_ip", "spam_source", "aggregate_abuseipdb_confidence_100", "aggregate_blacklist_scored", "aggregate_inbound_threat", "aggregate_outbound_threat", "internet_scanner", "reconnaissance" ] ``` ## 项目布局 ``` cmd/collector/ CLI entrypoint configs/ Feed configuration internal/config/ YAML loader internal/domainx/ IP and CIDR normalization internal/downloader/ HTTP fetch client internal/source/textlist/ Feed parser internal/pipeline/ Fetch, merge, and write flow internal/output/ CSV, JSONL, stats, and MMDB writers internal/record/ Shared record model scripts/ Setup and cron wrappers site/ Static GitHub Pages site ``` ## 注意事项 Blackroute 是一个信誉编译器,而非判定引擎。将标签视为信号,将它们与您自己的允许列表和策略结合,并在全局执行高影响阻止决策前进行审查。
标签:Bogon检测, EVTX分析, IP信誉, MaxMind兼容, MMDB数据库, SIEM集成, 代理安全, 僵尸网络检测, 公共数据源, 分类标签, 垃圾邮件过滤, 基础设施标签, 威胁情报, 威胁标签, 安全情报, 开发者工具, 恶意IP检测, 攻击遥测, 数据聚合, 日志审计, 暴力破解防护, 欺诈检测, 滥用源, 管道处理, 网关安全, 网络安全, 网络犯罪防范, 运行时数据库, 钓鱼检测, 隐私保护