k4nd0/scada-ics-security-lab
GitHub: k4nd0/scada-ics-security-lab
一个基于树莓派与开源组件的ICS/SCADA安全实验室,用于模拟网络攻击并验证防御方案。
Stars: 0 | Forks: 0
# SCADA/ICS 安全实验室
## 硕士论文:“ICS/SCADA 系统网络攻击模拟分析与防御方案研究”
**机构:** 加扎·马加诺夫·拉科夫斯基军事学院
**项目:** 网络安全
**日期:** 2026 年 4 月
## 📋 概述
本项目是一个用于模拟 ICS/SCADA 系统的实验室环境,旨在研究网络攻击并制定防御措施。
## 🏗️ 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ OT NETWORK (192.168.10.0/24) │
│ │
│ ┌─────────────┐ Ethernet ┌─────────────┐ │
│ │ RPi 5 │◄───────────────────────►│ RPi 4 │ │
│ │ SCADA │ Switch │ PLC │ │
│ │192.168.10.20│ │192.168.10.10│ │
│ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │
└──────────┼────────────────────────────────────────┼─────────────┘
│ WiFi │ WiFi
│ │
192.168.100.121 192.168.100.154
```
## 🔧 硬件
### RPi 5 — SCADA 服务器
- Raspberry Pi 5 4GB
- Argon ONE V3 M.2 机箱
- NVMe SSD 119GB
### RPi 4 — PLC 模拟器
- Raspberry Pi 4B
- microSD 16GB
- 传感器:
- DHT22(温度/湿度)
- HC-SR04(超声波)
- LED 指示灯
- 继电器模块
## 💻 软件栈
### RPi 5(SCADA)
| 组件 | 版本 | 端口 |
|-----------|---------|------|
| Scada-LTS | 2.7.8 | 8080 |
| Grafana | latest | 3000 |
| InfluxDB | 2.7 | 8086 |
| MySQL | 8.0 | 3306 |
| Tomcat | 9.0.102 | 8080 |
### RPi 4(PLC)
| 组件 | 版本 | 端口 |
|-----------|---------|------|
| OpenPLC Runtime | v3 | 8080 |
## 📁 项目结构
```
scada-ics-security-lab/
├── README.md
├── docs/
│ └── installation-report.md
├── docker/
│ └── docker-compose.yml
├── hardware/
│ └── wiring-diagram.md
├── plc/
│ └── programs/
├── scada/
│ └── config/
└── security/
├── attacks/
└── defense/
```
## 🚀 快速开始
完整的安装说明请参见 [docs/installation-report.md](docs/installation-report.md)。
### 启动 SCADA 服务器(RPi 5)
```
cd ~/scada
docker compose up -d
sudo systemctl start tomcat9
```
### 访问地址
| 服务 | URL | 登录 |
|---------|-----|-------|
| Scada-LTS | http://192.168.100.121:8080/Scada-LTS | admin / admin |
| Grafana | http://192.168.100.121:3000 | admin / admin |
| InfluxDB | http://192.168.100.121:8086 | admin / admin12345 |
| OpenPLC | http://192.168.100.154:8080 | openplc / openplc |
## 🔌 GPIO 引脚定义(RPi 4)
| 组件 | GPIO | 引脚 |
|-----------|------|-----|
| DHT22 DATA | GPIO4 | 7 |
| LED | GPIO14 | 8 |
| 继电器 IN | GPIO15 | 10 |
| HC-SR04 TRIG | GPIO17 | 11 |
| HC-SR04 ECHO | GPIO27 | 13 |
## ⚠️ 攻击场景
| # | 攻击 | MITRE ATT&CK |
|---|--------|--------------|
| 1 | 侦察(Modbus 扫描) | T0846 |
| 2 | 中间人攻击 | T0830 |
| 3 | 重放攻击 | T0867 |
| 4 | 拒绝服务 | T0814 |
| 5 | Modbus 功能码滥用 | T0855 |
| 6 | 虚假数据注入 | T0856 |
| 7 | 固件篡改 | T0839 |
## 🛡️ 防御措施
- TLS 加密
- Snort IDS 规则
- 防火墙配置
- 网络分段
- Zeek 网络监控
## 📚 参考文献
- [Scada-LTS](https://github.com/SCADA-LTS/Scada-LTS)
- [OpenPLC 项目](https://openplcproject.com/)
- [MITRE ATT&CK for ICS](https://attack.mitre.org/techniques/ics/)
## 📄 许可证
本项目仅用于教育目的。
标签:Cybersecurity, ICS, IoT安全, Modbus TCP, NTLM Relay, OpenPLC, OT安全, PKINIT, PLC, Raspberry Pi, SCADA, SCADA-LTS, TGT, 仿真, 关键基础设施, 内存执行, 哈希传递, 实验环境, 工业协议, 工业控制系统, 工控安全, 攻防演练, 硕士论文, 网络安全, 网络攻击模拟, 蜜罐, 证书利用, 请求拦截, 防御措施, 隐私保护