CyberKevCL/ot-soc-lab

GitHub: CyberKevCL/ot-soc-lab

基于 Purdue 模型和 IEC 62443 标准构建的家庭 OT/ICS 安全监控实验室,集成 IDS、SIEM 和仿真 PLC,用于工业网络安全攻防实践。

Stars: 0 | Forks: 0

# 家庭 SOC 实验室 — OT/ICS 安全监控 ## 为什么选择这个项目 工业环境需要与 传统 IT 不同的安全策略: 专有协议(Modbus、DNP3), 可用性优先于机密性,以及 一个很少像企业网络那样受到 严格监控的攻击面。我希望构建一个端到端的真实环境 ——从网络分段到 SIEM 中的检测—— 以实践的方式了解如何防御(以及如何攻击) 此类基础设施。 ## 架构(Purdue 模型) 采用 pfSense 作为中央路由器的 4 区架构,每个区域 拥有一个直接接口。现场层(OT)被刻意 置于企业防火墙的管控范围之外,这重现了 真实环境中的常见模式,即 IT 管理并不总是 延伸到工厂车间层。 | Purdue 区域 | 内容 | |---|---| | Level 4 (企业) | 攻击机 (Kali Linux) | | DMZ | 网络传感器 (Suricata IDS) | | Level 3 (SCADA/SIEM) | Suricata, ELK Stack, HMI (ScadaBR) | | Level 1/2 (现场/PLC) | HMI (网桥), 仿真 PLC (OpenPLC) | Level 3 和 Level 1/2 之间的网桥由 HMI 机器自身管理, 而不是防火墙 —— 以此模拟企业防火墙并不总是 能对现场层具有可见性的情况。 ## 技术栈 | 组件 | 技术 | |---|---| | Hypervisor | VirtualBox 7.x | | 防火墙 / 分段 | pfSense (区域与管道,IEC 62443) | | IDS | Suricata,带有针对 Modbus/DNP3 的自定义规则 | | SIEM | ELK Stack (Elasticsearch, Kibana, Logstash, Filebeat) | | 仿真 PLC | OpenPLC Runtime,采用 IEC 61131-3 (结构化文本) 编写的程序 | | HMI | ScadaBR | | 现场协议 | Modbus TCP | ## 项目状态 | 阶段 | 内容 | 状态 | |---|---|---| | 0-3 | 网络,虚拟机,pfSense,按区域进行分段 | ✅ 已完成并通过交叉测试验证 | | 4 | 带有自定义 OT 规则的 Suricata IDS | ✅ 已完成 — 正在捕获真实流量 | | 5-6 | 完整的 ELK pipeline (Elasticsearch/Kibana/Logstash/Filebeat) | ✅ 已完成并验证 | | 8 | OpenPLC — 安装与 ST 程序 | 🔧 进行中 — 正在调试变量映射问题 | | 9 | 持续的 Modbus 流量生成 | ⏳ 被阶段 8 阻塞 | | 10 | 带有 Modbus 数据源的 HMI | ⏳ 待处理 | | 11 | 映射到 MITRE ATT&CK for ICS 的攻击场景 | ⏳ 待处理 | | 12 | Kibana 中的仪表板和警报 | ⏳ 待处理 | ## 最新里程碑 仿真 PLC 运行着一个逼真的过程(带有充注阀和阈值警报的 储罐液位),并通过 Modbus TCP 暴露。调试为什么 过程变量在运行时没有更新 ——尽管 runtime 处于活动状态且 Modbus 服务器正在响应——导致了排除几种假设(Modbus 暴露、runtime 停止、寻址语法),之后才 找到真正原因:一个没有分配物理地址的 控制变量在执行周期之间不会持久化其状态。详细 信息请参阅经验教训。 HMI (ScadaBR) 现已部署,并正通过 配置好的 Modbus TCP Data Source 从 PLC 读取真实数据。 ## 经验教训 本项目生成了已解决的基础设施事件的真实目录 ——从 Suricata 的重启循环到 OpenPLC 依赖项的 编译不兼容性——。记录在 [docs/lessons-learned.md](docs/lessons-learned.md) 中。 ## 参考 - [MITRE ATT&CK for ICS](https://attack.mitre.org/matrices/ics/) - [IEC 62443 — 区域与管道](https://www.isa.org/standards-and-publications/isa-standards/isa-iec-62443-series-of-standards) - [OpenPLC Runtime](https://autonomylogic.com/)
标签:ELK Stack, Metaprompt, OT/ICS安全, Purdue模型, SOC实验环境, Suricata, 内容过滤, 工业控制系统, 现代安全运营, 越狱测试, 防御绕过