自动化威胁情报:我如何构建一个快速、容器化的 IP 分流工具

发布: (2026年1月18日 GMT+8 06:01)
4 min read
原文: Dev.to

Source: Dev.to

任务:对抗“分析师疲劳”

作为一名有志成为安全工程师的人,我很快意识到,分流(triage) 是耗时最多的环节。当防火墙标记出数十个可疑连接时,逐个在浏览器中检查既慢又容易出错。于是我构建了 Sentinel‑IP,一个 Python 工具,能够读取 IP 列表并瞬间为其补充威胁情报,将原本需要 30 分钟的手工工作压缩到 30 秒的自动化流程。

  • Python – 自动化逻辑与 API 处理
  • Docker – 确保工具在任何机器(macOS、Windows、Linux)上都能无痛运行
  • AbuseIPDB API – 众包的暴力破解与垃圾邮件活动报告
  • AlienVault OTX API – “Pulse” 数据,用于识别与已知恶意软件活动关联的 IP

最初我计划加入 VirusTotal,但其免费套餐每分钟仅允许 4 次请求,这会导致处理 50 个 IP 需要接近 15 分钟。改用 AlienVault OTX 消除了这一瓶颈,使得数十个 IP 能在几秒钟内完成扫描。教训是:再好的数据,如果来得太慢,也无法阻止攻击。

该工具读取一个简单的 ips.txt 文件作为输入,查询上述 API,并生成一份整洁的 results.csv 供分析师审阅。

核心逻辑

for ip in tqdm(ips, desc="Analyzing"):
    abuse_score = check_abuse_ip(ip)   # Returns % confidence
    otx_pulses = check_alienvault(ip)  # Returns count of threat pulses

    results.append({
        'IP': ip,
        'Abuse_Score%': abuse_score,
        'OTX_Pulses': otx_pulses
    })

使用场景

防火墙日志“转储”

情景: 公司防火墙拦截了数百次失败的 SSH 登录尝试。
应用: 将日志中的 IP 复制到 Sentinel‑IP。
影响: 能立即筛选出 Abuse Score 为 100 % 的 IP,帮助你只关注已确认的僵尸网络,而不是逐一调查每一个拦截记录。

钓鱼邮件头部分析

情景: 有一封可疑邮件被上报,邮件头部中包含 “Source IP”。
应用: 将该 IP 输入工具进行检测。
影响: 若 AlienVault OTX 显示多个与 “Credential Harvesting”(凭证收集)相关的 pulse,你即可获得该邮件为恶意的直接证据,并可在网络中将其彻底清除。

项目洞察

API 稳健性

404 Not Found(通常表示该 IP “干净”)与 401 Unauthorized 错误的区分处理,确保工具在遇到异常时仍能继续运行。

容器化

Docker 卷(volume)使容器能够直接把 CSV 文件写入宿主机的桌面,输出文件随时可用。

数据关联

当一个 IP 同时拥有高 Abuse Score 多个 OTX pulse 时,被归类为 “Critical” 威胁,需要立即封禁。

获取代码

欢迎前往 GitHub 查看完整源码并为项目贡献代码:

Sentinel‑IP 仓库 – [GitHub link]

如果觉得有用,别忘了给仓库点个 ⭐!

Back to Blog

相关文章

阅读更多 »

Rapg:基于 TUI 的密钥管理器

我们都有这种经历。你加入一个新项目,首先听到的就是:“在 Slack 的置顶消息里查找 .env 文件”。或者你有多个 .env …

技术是赋能者,而非救世主

为什么思考的清晰度比你使用的工具更重要。Technology 常被视为一种魔法开关——只要打开,它就能让一切改善。新的 software,...

踏入 agentic coding

使用 Copilot Agent 的经验 我主要使用 GitHub Copilot 进行 inline edits 和 PR reviews,让我的大脑完成大部分思考。最近我决定 t...