htrap001/Automated-Incident-Response-Pipeline
GitHub: htrap001/Automated-Incident-Response-Pipeline
一个基于 Snort 3 IPS 模式和 NFQ 的自动化事件响应流水线,无需 SIEM 即可实现亚秒级威胁检测、阻断与主机隔离。
Stars: 0 | Forks: 0
# 自动化事件响应流水线
开发了一个无 SIEM 的主动响应网络架构,利用 Inline (IPS) 模式下的 Snort 3 以及 Netfilter Queue (NFQ) DAQ 模块,实现了亚秒级的威胁遏制。
🛠️ 逐步架构说明
你可以在单个虚拟机中运行整个项目,或者将其拆分到微型的轻量级 Docker 容器中,以将 RAM 占用降至最低。
步骤 1:在 Inline (IPS) 模式下运行 Snort 3
大多数人使用 Snort 的 IDS(入侵检测)模式,在该模式下它仅仅监控流量副本。在本项目中,请使用 DAQ(数据采集)NFQ(Netfilter Queue)模块将 Snort 3 配置为 IPS(入侵防御)模式。
这会强制 Linux 内核在决定是否路由网络数据包之前,将其直接传递给 Snort。
配置你的 Linux 防火墙,将目标流量路由至 Snort:
Bash
sudo iptables -A FORWARD -j NFQUEUE --queue-num 1
运行 Snort 来处理该队列:
Bash
snort -Q --daq nfq --daq-var queue=1 -c /usr/local/etc/snort/snort.lua
步骤 2:编写“主动阻断”签名
在你的自定义规则中,不要使用标准的 alert 动作,而是使用 drop 动作。
编写针对特定 L1 威胁向量的自定义签名,例如内部主机尝试恶意的横向移动技术(例如,尝试利用 EternalBlue 或对域控进行暴力破解):
Plaintext
drop tcp $HOME_NET any -> $HONEYPOT_NET 445 (msg:"CRITICAL: Internal Lateral Movement Detected"; flow:to_server,established; content:"|ff|SMB"; sid:1000001; rev:1;)
当 Snort 匹配到该签名时,它会在数据包传输过程中将其丢弃,使其永远无法到达受害机器。
步骤 3:脚本化响应(“无 SIEM”自动化)
为了使这个项目真正独一无二,请配置 Snort,将其原始的高速二进制告警通道(alert_fast 或 unified2)直接 pipe 到作为系统服务运行的后台轻量级 Python 脚本中。
当你的脚本检测到本地主机触发了 drop 规则时:
它会立即调用 Linux 命令,通过本地防火墙完全隔离受感染的内部机器的 MAC/IP 地址:
Bash
sudo iptables -I INPUT -s [Compromised_Internal_IP] -j DROP
它会向专门用于 L1 告警的 Discord 或 Slack 频道发送包含丰富 payload 的 webhook 通知,其中包含攻击者 IP、触发的规则以及一条确认消息:“Host isolated successfully.”
📝 如何在简历中包装此项
自动化事件响应流水线:开发了一个无 SIEM 的主动响应网络架构,利用 Inline (IPS) 模式下的 Snort 3 以及 Netfilter Queue (NFQ) DAQ 模块,实现了亚秒级的威胁遏制。
标签:Netfilter, PE 加载器, XXE攻击, 入侵防御系统, 威胁拦截, 威胁猎捕, 网络安全, 自动化响应, 请求拦截, 逆向工具, 隐私保护