Z3X-1337/ioc-sanitizer
GitHub: Z3X-1337/ioc-sanitizer
一款纯本地运行的 Python CLI 工具,用于从文本中提取、验证、标准化常见安全妥协指标,并支持 defang 与 refang 格式转换。
Stars: 0 | Forks: 0
# IOC Sanitizer
[](https://github.com/Z3X-1337/ioc-sanitizer/actions/workflows/tests.yml)



IOC Sanitizer 是一款确定性的本地 Python 命令行工具,用于从分析师的笔记和已脱敏的报告中提取、验证、标准化、消除危害(defanging)以及恢复危害(refanging)妥协指标(Indicators of Compromise)。
## 支持的指标
- URL,包括常见的已消除危害的 `hxxp` 和 `hxxps` 形式。
- 域名,包括 `[.]` 表示法。
- IPv4 地址。
- IPv6 地址。
- 电子邮件地址,包括 `[@]` 表示法。
- MD5、SHA-1 和 SHA-256 哈希值。
## 功能特性
- 提取标准和常见的已消除危害的指标。
- 在去重之前对指标进行标准化。
- 使用 Python 的 `ipaddress` 模块验证 IP 地址。
- 在报告 URL 主机名和域名标签之前对其进行验证。
- 当域名已经存在于 URL 或电子邮件中时,避免产生重复的域名发现。
- 生成扁平化的 JSON、分组的 JSON 以及兼容 RFC 的 CSV 输出。
- 在 `source_form` 中保留原始匹配形式,以便分析师进行溯源。
- 仅使用 Python 标准库。
## 安装说明
从本地克隆的代码库安装:
```
python -m pip install .
```
进行隔离的 CLI 安装:
```
pipx install .
```
安装后的命令为:
```
ioc-sanitizer --help
```
## 用法
```
ioc-sanitizer extract sample.txt
ioc-sanitizer extract sample.txt --grouped
ioc-sanitizer extract sample.txt --format csv
ioc-sanitizer defang "https://example.com/login?x=1"
ioc-sanitizer refang "hxxps://example[.]com/login"
```
依然支持源文件形式:
```
python ioc_sanitizer.py extract sample.txt
```
## 输出示例
```
{
"defanged": "203[.]0[.]113[.]24",
"source_form": "203.0.113.24",
"type": "ipv4",
"value": "203.0.113.24"
}
```
## 验证
```
python -m unittest -v
```
代码库目前包含 13 个单元测试和 CLI 测试。GitHub Actions 会对 Python 3.10、3.11 和 3.12 进行测试,安装该软件包,并验证 CLI 入口点。
## 项目治理
- [更新日志](CHANGELOG.md)
- [路线图](ROADMAP.md)
- [MIT 许可证](LICENSE)
当前的软件包版本为 `0.1.0`,并遵循语义化版本控制规范。
## 当前局限性
- IOC 提取是确定性的且基于模式;发现的结果仍需分析师进行验证。
- 国际化域名未标准化为 Punycode,也不支持从 Punycode 还原。
- 该工具不执行信誉查询或富化操作。
- 尚未实现 STIX 导出。
## 安全提示
请勿将私密的应急响应数据、凭据、token、客户日志或未脱敏的恶意软件报告上传至公开的代码库。
标签:IOC处理, Linux安全, Python, 威胁情报, 开发者工具, 无后门, 逆向工具