LAZYGENIUS18/ELITEWOLF-Style-OT-Threat-Detection
GitHub: LAZYGENIUS18/ELITEWOLF-Style-OT-Threat-Detection
基于浏览器的 OT/ICS 安全运营中心模拟器,通过模拟真实工业攻击场景帮助用户练习威胁检测、协议分析和事件响应技能。
Stars: 0 | Forks: 0
# ⚡ ELITEWOLF 风格 OT 威胁检测实验室
### 学生版 — 实操 ICS/OT 安全监控平台





## 📌 项目概述
一个完全基于浏览器的 **OT/ICS 安全运营中心 (SOC) 模拟器**,灵感来自 NSA/CISA [ELITEWOLF](https://github.com/nsacyber/ELITEWOLF) IDS 特征库。旨在培养和展示工业网络安全方面的实操技能——涵盖威胁检测、IDS 规则工程、SIEM 威胁狩猎、协议分析和事件响应。
## 🎯 展示技能
| 技能 | 工具/概念 |
|---|---|
| OT 协议分析 | Modbus, DNP3, EtherNet/IP, S7Comm, OPC-UA |
| IDS 规则工程 | Snort 兼容特征(ELITEWOLF 风格) |
| 威胁检测 | 异常检测、特征匹配 |
| SIEM 威胁狩猎 | SPL 查询语言(Splunk 风格) |
| MITRE ATT&CK for ICS | 技术映射、覆盖热力图 |
| 事件响应 | 专业 IR 报告生成 |
| 网络架构 | Purdue 参考模型 (ISA-99) |
| 资产管理 | OT 设备清单与分类 |
## 🖥️ 功能
### 9 个完全交互式模块
```
┌─────────────────────────────────────────────────────────┐
│ 1. Dashboard — Live SOC overview, Purdue topology │
│ 2. Alert Queue — Triage, filter, investigate alerts │
│ 3. Packet Analysis— PCAP viewer + protocol decoder │
│ 4. IDS Rules — Snort rule editor, live rule engine │
│ 5. Asset Inventory— OT device registry with risk status │
│ 6. MITRE ATT&CK — ICS coverage heatmap │
│ 7. SIEM / Hunt — SPL query console + visualizations │
│ 8. Incident Report— IR document generator │
│ 9. Attack Sim — 6 injectable OT attack scenarios │
└─────────────────────────────────────────────────────────┘
```
### 攻击场景(模拟/安全)
| 场景 | MITRE 技术 | 现实世界参考 |
|---|---|---|
| Modbus 侦察 | T0888 远程系统信息 | 攻击前侦察 |
| 未授权线圈写入 | T0836, T0855 | INCONTROLLER / PIPEDREAM |
| DNP3 热重启 | T0813, T0815 | CRASHOVERRIDE / Industroyer |
| S7comm CPU 停止 | T0816 | Stuxnet |
| IT→OT 横向移动 | T0866, T0859 | Colonial Pipeline 模式 |
| EtherNet/IP 配置篡改 | T0836 | Trisis/Triton 风格 |
## 🚀 快速开始
```
# Clone 仓库
git clone https://github.com/LAZYGENIUS18/ot-threat-lab.git
# 在浏览器中打开 — 无需 server,无需安装
cd ot-threat-lab
open index.html # macOS
start index.html # Windows
xdg-open index.html # Linux
```
或者直接 **[点击此处体验在线演示 →](https://LAZYGENIUS18.github.io/ot-threat-lab)**
## 📁 仓库结构
```
ot-threat-lab/
│
├── index.html # Main application (single-file lab)
│
├── rules/
│ ├── modbus_detection.rules # Snort rules — Modbus attacks
│ ├── dnp3_detection.rules # Snort rules — DNP3 attacks
│ ├── enip_detection.rules # Snort rules — EtherNet/IP attacks
│ └── s7comm_detection.rules # Snort rules — S7comm / Siemens
│
├── scripts/
│ ├── simulate_traffic.py # Python traffic generator (for Wireshark practice)
│ ├── parse_modbus.py # Modbus packet parser
│ └── alert_exporter.py # Export alerts to CSV/JSON
│
├── docs/
│ ├── ARCHITECTURE.md # Purdue Model explained
│ ├── PROTOCOLS.md # OT protocol reference guide
│ ├── MITRE_MAPPING.md # Full ATT&CK for ICS technique list
│ └── INCIDENT_RESPONSE.md # IR playbook template
│
└── README.md
```
## 🔬 涵盖的 OT 协议
### Modbus TCP (端口 502)
最常见的 ICS 协议。监控的功能码:
- `FC 01` 读取线圈
- `FC 03` 读取保持寄存器
- `FC 05` **写单个线圈** ← 攻击向量
- `FC 0F` **写多个线圈** ← INCONTROLLER/PIPEDREAM
- `FC 08` 诊断 / 强制只听模式
### DNP3 (端口 20000)
用于电力设施和水务系统:
- `FC 0D` **热重启** ← 导致监控盲区
- `FC 81` 响应 / 主动上报
- 直接执行命令
### EtherNet/IP / CIP (端口 44818)
Allen-Bradley / Rockwell 协议:
- `CIP 0x10` **设置单个属性** ← 配置篡改
- `CIP 0x0E` 获取单个属性
### S7comm (端口 102)
Siemens SIMATIC 协议:
- `0x29` **停止 CPU** ← Stuxnet 技术
- `0x28` 启动 CPU
- 读/写 SZL
## 📋 IDS 规则参考
所有规则遵循与 CISA ELITEWOLF 兼容的 **Snort 2.9+ 语法**。
### 示例:检测 Modbus 写多个线圈
```
alert tcp any any -> 192.168.10.0/24 502 (
msg:"OT-MODBUS Write Multiple Coils - Possible Unauthorized Command";
flow:to_server,established;
content:"|00 00|"; depth:2;
content:"|0F|"; offset:7; depth:1;
classtype:protocol-command-decode;
priority:1;
sid:9000002; rev:1;
)
```
### 示例:检测 S7comm CPU 停止
```
alert tcp any any -> 192.168.10.0/24 102 (
msg:"OT-S7COMM CPU Stop Command - Critical";
flow:to_server,established;
content:"|03 00|"; depth:2;
content:"|29|"; offset:17; depth:1;
classtype:attempted-dos;
priority:1;
sid:9000007; rev:1;
)
```
### 示例:检测 DNP3 热重启
```
alert tcp any any -> 192.168.10.0/24 20000 (
msg:"OT-DNP3 Warm Restart from Unauthorized Source";
flow:to_server,established;
content:"|05 64|"; depth:2;
content:"|0D|"; offset:12; depth:1;
threshold:type limit,track by_src,count 1,seconds 60;
priority:1;
sid:9000008; rev:1;
)
```
## 🗡️ MITRE ATT&CK for ICS 覆盖范围
| 战术 | 技术 | ID | 检测状态 |
|---|---|---|---|
| 影响 | 修改参数 | T0836 | ✅ 已检测 |
| 影响 | 未授权命令 | T0855 | ✅ 已检测 |
| 影响 | 设备重启/关机 | T0816 | ✅ 已检测 |
| 影响 | 拒绝控制 | T0813 | ✅ 已检测 |
| 发现 | 网络嗅探 | T0840 | ✅ 已检测 |
| 发现 | 远程系统信息 | T0888 | 🟡 部分覆盖 |
| 横向移动 | 利用远程服务 | T0866 | 🟡 部分覆盖 |
| 持久化 | 模块固件 | T0839 | ❌ 未覆盖 |
| 执行 | 更改操作模式 | T0858 | 🟡 部分覆盖 |
## 🎓 学习路径
**初级:** 从仪表板和攻击模拟器开始。运行每个场景并观察告警的生成。
**中级:** 转到 IDS 规则。阅读每条现有规则,了解其检测内容,然后尝试使用模板编写自己的规则。
**高级:** 使用 SIEM 标签页编写 SPL 威胁狩猎查询。尝试在 IDS 规则遗漏的告警数据中寻找模式。
**作品集准备:** 在运行“未授权线圈写入”场景后,填写完整的事件响应报告。将其保存为 PDF。
## 📚 参考资料与延伸阅读
| 资源 | URL |
|---|---|
| CISA ELITEWOLF(真实 IDS 特征) | https://github.com/nsacyber/ELITEWOLF |
| MITRE ATT&CK for ICS | https://attack.mitre.org/matrices/ics/ |
| NIST SP 800-82 Rev.3 (ICS 安全) | https://csrc.nist.gov/publications/detail/sp/800-82/rev-3/final |
| IEC 62443 标准 | https://www.iec.ch/isa99 |
| CISA ICS 公告 | https://www.cisa.gov/ics-advisories |
| Dragos 年度回顾 | https://www.dragos.com/year-in-review/ |
| Modbus 协议规范 | https://modbus.org/specs.php |
| DNP3 概述 | https://www.dnp.org |
## 🛡️ 免责声明
## 📄 许可证
MIT 许可证 — 可免费使用、修改和分享,需注明出处。
## 👤 作者
**[LAZYGENIUS18]**
- GitHub: [@LAZYGENIUS18](https://github.com/LAZYGENIUS18)
*为申请 OT/ICS 网络安全岗位而制作的作品集项目。*
⭐ **如果这对您有帮助,请给仓库点个 Star!**
标签:AMSI绕过, PKINIT, 入侵检测系统, 后端开发, 多模态安全, 威胁检测, 安全数据湖, 安全运营中心, 工业控制系统, 工控安全, 数据可视化, 网络映射, 逆向工具