machphy/malicious-domains
GitHub: machphy/malicious-domains
聚合多个公开OSINT恶意域名情报源,经标准化去重后生成可直接用于SOC、SIEM及DNS拦截的统一域名黑名单。
Stars: 2 | Forks: 0
# 恶意域名 – 开放威胁情报 Feed 聚合器
本仓库将多个**公开威胁情报 (TI) 数据源**聚合为一个单一的、标准化的、去重后的恶意、钓鱼、C2 及可疑域名列表。
其目标是为以下场景提供一个**干净、开箱即用的 IOC 数据集**:
- SOC 与 DFIR 团队
- 蓝队威胁狩猎
- SIEM 查询丰富
- DNS/防火墙拦截
- OSINT/CTI 研究
# 核心特性
✔ 聚合 19+ 个原始 feed
✔ 使用严格的正则表达式提取域名
✔ 自动去重
✔ 确定性排序输出(稳定的 Git diffs)
✔ 适配 CI/CD 的 feed pipeline
✔ 专为 SOC 生产环境设计
# 仓库结构
```
malicious-domains/
├── sources/ # Raw upstream threat intel feeds
├── scripts/ # TI ingestion + normalization pipeline
│ ├── update_feeds.sh
│ └── combine_feeds.py
├── output/ # Final unified domain lists
│ ├── domains.txt
│ └── domains.csv
├── docs/ # Engineering documentation
│ ├── ARCHITECTURE.md
│ ├── DATA_MODEL.md
│ └── FEED_SOURCES.md
└── CONTRIBUTING.md
```
# 架构概述
该 pipeline 遵循清晰的分层隔离原则:
```
[Raw OSINT Feeds] --> sources/
(untouched)
sources/ --> combine_feeds.py
(parse + extract + dedupe)
combine_feeds.py --> output/
(normalized artifacts)
```
核心原则:
* **无损接入**(在 `sources/` 中保留原始数据)
* **仅在 scripts 中进行标准化**
* **幂等运行**
* **确定性排序**
更多图示:请参阅 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)
# 运行 Pipeline
## 更新 feed(可选)
```
./scripts/update_feeds.sh
```
这会刷新 `sources/` 中的原始 `.txt` feed 文件。
## 合并与标准化
```
python3 scripts/combine_feeds.py
```
在 `output/` 目录下生成的文件:
| 文件 | 用途 |
| ------------- | ------------------------------------------------------------ |
| `domains.txt` | 每行一个域名的列表(可直接用于 DNS/防火墙) |
| `domains.csv` | 带有表头的 CSV 格式文件(用于 SIEM 查询表、SOAR 丰富) |
# 指标数据模型
* 指标类型:**Domain**
* 基于正则的严格提取
* 规范格式:仅包含小写的域名
* 不包含 URL、IP、路径或协议
未来计划加入的元数据:
* 来源 feed
* 威胁类型(钓鱼/恶意软件/C2)
* first_seen / last_seen 时间戳
* 置信度得分
更多详情:[`docs/DATA_MODEL.md`](docs/DATA_MODEL.md)
# Feed 源
所有提供 OSINT 数据的文件均位于 `sources/` 目录下。
映射详情:[`docs/FEED_SOURCES.md`](docs/FEED_SOURCES.md)
# 实战集成示例
## SOC / SIEM 威胁情报丰富
将 `output/domains.csv` 上传为:
* 查询表
* 动态黑名单
* 丰富数据集
应用场景:
* 当 DNS/Proxy/Firewall 日志中包含某域名时:
* 检查其是否在此列表中
* 将其标记为可疑
* 映射到对应的威胁情报源
## DNS 拦截(Pi-hole、Bind、Unbound)
将域名转换为 hosts 文件格式:
```
0.0.0.0 bad-domain.example
```
示例:
```
sed 's/^/0.0.0.0 /' output/domains.txt > output/hosts.txt
```
将 `hosts.txt` 作为拦截列表使用。
## 防火墙(Fortigate / Palo Alto)
转换为批量黑名单导入格式。
示例 URL 模式:
```
*.malicious-domain.com
```
## SOAR 自动化
将 `domains.csv` 导入至:
* Cortex XSOAR playbooks
* Shuffle 自动化流程
* 任何 SOC 自定义的情报丰富微服务
# 研究与 OSINT 应用场景
✔ 恶意基础设施趋势分析
✔ 域名年龄分析
✔ 恶意软件活动关联
✔ TI 评分模型
✔ WhoIs 情报透视
✔ APT/C2 基础设施聚类
# 🛠 路线图
* 通过 GitHub Actions 添加自动化 feed 接入
* 导出制品:
* STIX
* MISP JSON
* hosts 文件
* 添加元数据标注:
* threat_type
* first_seen
* confidence
* 构建用于实时域名信誉查询的 lookup API:
GET /lookup?domain=xyz.com
# 免责声明
收集的所有数据仅用于:
* 学术研究
* 蓝队防御安全
* 仅限 SOC/威胁情报使用
❗ 请勿将此数据集用于任何攻击性或非法目的。
❗ 维护者对任何不当使用不承担任何责任。
标签:ESC4, IP 地址批量处理, OSINT, 域名黑名单, 威胁情报, 安全运营, 应用安全, 开发者工具, 扫描框架, 逆向工具