hanozerdem/scada-maintenance-security-demo
GitHub: hanozerdem/scada-maintenance-security-demo
一个基于 Django 的 SCADA 维护接口安全教学项目,通过漏洞版与修复版的对比演示 OT 安全问题的成因和修复实践。
Stars: 0 | Forks: 0
# SCADA 维护接口
此仓库包含两个用于 OT 安全任务的 Django 应用程序:
- `vulnerable/` 专门用于演示该任务中的漏洞。
- `patched/` 包含了修复后的实现以及安全回归测试。
请仅在本地隔离环境中运行这两个应用程序。该包含漏洞的应用程序不适合用于生产环境或暴露在真实网络中。
## 使用 Docker 运行
```
docker compose up --build
```
- 包含漏洞的应用程序:http://localhost:8000
- 已修复的应用程序:http://localhost:8001
必须确保 Docker 守护进程正在运行。修复后的 SSRF 检查器仅允许 `SSRF_ALLOWED_HOSTS` 中列出的主机,默认值为 `example.com`。
## 漏洞演示
完整的本地演示步骤、payload 以及预期的漏洞/修复结果已记录在 [DEMO_GUIDE.md](DEMO_GUIDE.md) 中。请仅针对隔离的 Docker 容器执行这些操作。
## 填充演示数据
种子数据生成命令要求通过环境变量提供密码;仓库中不存储任何默认凭据。
```
$env:SEED_ADMIN_PASSWORD = 'use-a-strong-local-password'
$env:SEED_TECH_PASSWORD = 'use-a-different-local-password'
python manage.py migrate
python manage.py populate_db
```
请在安装 `requirements.txt` 后,从 `vulnerable/` 或 `patched/` 目录中运行该命令。
## 测试已修复的应用程序
```
python manage.py test portal
```
该仓库有意忽略了 SQLite 数据库、运行时上传文件、Python 字节码、macOS 元数据以及大型本地录像。请基于 `.env.example` 将密钥保存在本地的 `.env` 文件中。
标签:CISA项目, Django, PKINIT, SCADA系统, Syscall, Web开发, 安全代码审计, 工控安全, 教育与培训, 漏洞复现, 版权保护, 请求拦截, 逆向工具