SiteQ8/ics-iot-ot-hardening
GitHub: SiteQ8/ics-iot-ot-hardening
面向工业控制系统、物联网和运营技术环境的综合安全加固框架,集漏洞扫描、多标准合规评估、协议分析和网络监控于一体。
Stars: 10 | Forks: 2
# 🏭 ICS/IoT/OT 加固框架
### 开源工业网络安全平台
[](https://opensource.org/licenses/MIT)
[](https://github.com/SiteQ8/ics-iot-ot-hardening/releases)
[](https://www.python.org/downloads/)
[](CONTRIBUTING.md)
[](#compliance-standards)
[](#compliance-standards)
[](#compliance-standards)
[](#compliance-standards)
[](Dockerfile)
[](https://github.com/SiteQ8)
**针对工业控制系统 (ICS)、物联网 和运营技术 (OT) 环境的综合安全加固工具包。包括自动化扫描、多标准合规性评估、网络分段工具、协议安全分析和交互式 Web 仪表板。**
[**🌐 在线仪表板演示**](https://siteq8.github.io/ics-iot-ot-hardening/gui/) · [**📖 文档**](docs/) · [**🐛 报告 Bug**](https://github.com/SiteQ8/ics-iot-ot-hardening/issues) · [**💡 请求功能**](https://github.com/SiteQ8/ics-iot-ot-hardening/issues)
## 📸 截图
### 安全仪表板 — 概览
### ICS 漏洞扫描器
### 多标准合规性
### CLI 界面
## 🎯 为什么选择这个框架?
工业控制系统面临着传统 IT 安全工具无法解决的独特网络安全挑战。本框架通过为 OT 环境量身打造的工具弥补了这一差距:
- **ICS 协议感知** — 理解 Modbus、DNP3、S7comm、OPC UA、EtherNet/IP、BACnet、IEC 61850 等 12 种工业协议
- **Purdue 模型架构** — 所有工具均围绕 ISA-95/Purdue 参考模型(L0–L5 + DMZ)设计
- **安全优先方法** — 尊重 OT 可用性要求的非侵入式扫描选项
- **多标准合规性** — 同时依据 IEC 62443、NIST SP 800-82、NERC CIP、MITRE ATT&CK for ICS 和 CIS Controls 进行评估
- **实战检验** — 加固脚本已在 Siemens、Allen-Bradley、Schneider、ABB 和 GE 环境中得到验证
## ✨ 特性
### 🔍 ICS 漏洞扫描器
针对 PLC、RTU、HMI、SCADA 服务器和现场设备的自动化扫描,支持 ICS 协议检测。支持完整、快速、特定协议和固件验证扫描。
### 📊 交互式 Web 仪表板
功能齐全的安全运营仪表板,具备 Purdue 模型可视化、实时指标、交互式评估工具和合规性仪表。可作为 GitHub Pages 站点部署。
### 🛡️ 多标准合规引擎
同时针对 5+ 项安全标准进行评估,包含差距分析、控制映射和跨 1,200+ 项控制的补救跟踪。
### 🔥 防火墙规则生成器
针对 Purdue 模型分段的自动防火墙规则生成。输出 iptables、Cisco ASA 和 Palo Alto 格式。
### 🖥️ CLI 工具包
丰富的命令行界面,带有进度条、颜色编码输出和可导出报告(JSON、HTML、PDF)。
### 📡 协议安全分析器
对 12 种 ICS 协议进行深度检查,并针对每种协议进行安全态势评估,包括身份验证、加密和访问控制检查。
### 🔧 系统加固脚本
针对 Windows ICS 节点、Linux 服务器、SCADA 应用程序和 HMI 工作站的预置加固脚本,符合 CIS benchmarks。
### 📈 OT 网络监控
针对工业网络流量的实时异常检测,并提供 SIEM 集成连接器(Splunk、QRadar、Elastic)。
### 🐳 Docker 就绪
全面支持 Docker 和 docker-compose,用于所有框架组件的隔离部署。
## 🚀 快速开始
### 安装
**选项 1:pip install(推荐)**
```
pip install ics-hardening
```
**选项 2:从源码安装**
```
git clone https://github.com/SiteQ8/ics-iot-ot-hardening.git
cd ics-iot-ot-hardening
pip install -e ".[full]"
```
**选项 3:Docker**
```
docker build -t ics-hardening .
docker run --rm ics-hardening --help
```
### 首次评估
```
# 发现您网络上的 ICS assets
ics-harden assets --cidr 10.100.0.0/16
# 运行全面的安全评估
ics-harden assess --target 10.100.0.0/16 --level deep --output report.json
# 生成 Purdue model 防火墙规则
ics-harden network --cidr 10.100.0.0/16
# 多标准合规报告
ics-harden report --format html --output compliance.html
# 启动 web dashboard
cd gui && python -m http.server 8080
# 打开 http://localhost:8080
```
### CLI 命令
| 命令 | 描述 |
|---------|-------------|
| `ics-harden assess` | 运行具有可配置深度的 ICS 安全评估 |
| `ics-harden harden` | 应用加固配置(支持 dry-run) |
| `ics-harden network` | 网络分段分析和防火墙生成 |
| `ics-harden report` | 生成多标准合规报告 |
| `ics-harden assets` | 资产发现和清单 |
| `ics-scan` | 独立的 ICS 漏洞扫描器 |
| `ics-comply` | 独立的合规性检查器 |
| `ics-monitor` | 实时 OT 网络监控 |
## 🏗️ 架构
```
ics-iot-ot-hardening/
├── gui/ # 🌐 Interactive Web Dashboard (GitHub Pages)
│ └── index.html # Single-page security operations center
├── src/ics_hardening/ # 📦 Python Package
│ ├── cli.py # CLI entry point (Click + Rich)
│ └── modules/ # Framework modules
├── scripts/ # 🔧 Automation Scripts
│ ├── assessment/ # Vulnerability assessment tools
│ ├── compliance/ # CBK/IEC/NIST compliance checkers
│ ├── networksecurity/ # Firewall gen, traffic analyzer, scanner
│ ├── system-hardening/ # Windows & Linux hardening scripts
│ │ ├── linux/ # Linux CIS benchmark hardening
│ │ └── windows/ # Windows ICS node hardening
│ ├── siem/ # SIEM integration connectors
│ ├── shodan/ # Shodan exposure monitoring
│ └── app/ # SCADA/HMI app hardening
├── tools/ # 🛠️ Custom Security Tools
│ └── asset-discovery/ # OT asset inventory scanner
├── monitor/ # 📡 Network Monitoring
│ └── anomaly-detector.py # ICS traffic anomaly detection
├── templates/ # 📋 Configuration Templates
│ ├── firewall-rules/ # Firewall rule templates
│ ├── policies.md # Security policy templates
│ └── procedures.md # Operational procedures
├── docs/ # 📖 Documentation
│ ├── screenshots/ # Dashboard & tool screenshots
│ ├── framework.md # Core framework documentation
│ ├── implementation/ # Implementation guides
│ ├── kuwait.md # Kuwait/GCC specific guidance
│ └── gcc.md # GCC regional considerations
├── tests/ # ✅ Test Suite
├── docker-compose.yml # 🐳 Multi-container deployment
├── Dockerfile # Container build config
├── pyproject.toml # Python packaging (PEP 621)
└── requirements.txt # Core dependencies
```
## 🔒 安全控制覆盖范围
### Purdue 模型区域
| 区域 | 层级 | 描述 | 提供的工具 |
|------|-------|-------------|----------------|
| Enterprise | L5 | ERP、邮件、业务系统 | 网络隔离、访问策略 |
| Site Business | L4 | 历史数据库、OPC 网关、报表 | 数据二极管配置、网关加固 |
| **Industrial DMZ** | **DMZ** | **跳板机、补丁管理** | **分段规则、跳板机设置** |
| Operations | L3 | SCADA 服务器、HMI 服务器、工程站 | SCADA 加固、会话控制 |
| Supervisory | L2 | HMI 面板、区域控制器 | HMI 锁定、USB 策略 |
| Basic Control | L1 | PLC、RTU、DCS 控制器 | PLC 安全配置、固件验证 |
| Process | L0 | 传感器、执行器、现场设备 | 物理安全、防篡改检测 |
### ICS 协议安全
| 协议 | 端口 | 风险等级 | 安全特性 |
|----------|------|------------|-------------------|
| Modbus TCP/RTU | 502 | 🔴 严重 | 无原生身份验证/加密 |
| DNP3 | 20000 | 🟠 高 | 可用安全认证 v5 |
| IEC 61850 MMS | 102 | 🟠 高 | 支持 GOOSE 认证 |
| OPC UA | 4840 | 🟡 中 | 内置 X.509、TLS |
| EtherNet/IP (CIP) | 44818 | 🟠 高 | CIP 安全扩展 |
| BACnet/IP | 47808 | 🟠 高 | 极少的原生安全性 |
| MQTT | 1883/8883 | 🟡 中 | 可用 TLS、ACL |
| CoAP | 5683/5684 | 🟡 中 | DTLS、OSCORE |
| PROFINET | 动态 | 🟠 高 | 完整性类别 |
| S7comm/S7comm+ | 102 | 🔴 严重 | S7comm+ 增加了加密 |
| IEC 60870-5-104 | 2404 | 🟠 高 | TLS 包装器选项 |
| HART-IP | 5094 | 🟡 中 | 有限的身份验证 |
##
📋 合规标准
本框架将控制项映射到以下国际标准:
| 标准 | 控制项 | 描述 |
|----------|----------|-------------|
| **ISA/IEC 62443** | 96 | 工业自动化和控制系统安全 |
| **NIST SP 800-82** | 82 | ICS 安全指南 (Rev. 3) |
| **NERC CIP** | 62 | 电力公用事业关键基础设施保护 |
| **MITRE ATT&CK for ICS** | 66 | ICS 的对抗战术和技术 |
| **CIS Controls v8** | 48 | 互联网安全中心控制项(OT 适配版) |
| **CBK CORF** | 876 | 科威特中央银行网络与运营弹性框架 |
## 🐳 Docker 部署
```
# 构建并运行 full stack
docker-compose up -d
# 使用 host network access 运行 standalone scanner
docker-compose run --rm ics-scanner --target 10.0.0.0/24 --type full
# 运行网络监控器
docker-compose run --rm ics-monitor --interface eth0
# 查看日志
docker-compose logs -f ics-dashboard
```
## 🤝 贡献
欢迎贡献!详情请参阅 [贡献指南](CONTRIBUTING.md)。
**优先贡献领域:**
- 其他 ICS 协议解析器(PROFIBUS、Foundation Fieldbus)
- 特定供应商的加固指南(Honeywell、Yokogawa、Emerson)
- 云连接 OT 安全(Azure IoT Hub、AWS IoT Greengrass)
- OT 特定的威胁情报源
- 其他合规标准(ISO 27019、IEC 62351)
- 本地化及 GCC/MENA 区域指南
## 📄 许可证
本项目采用 MIT 许可证授权 — 详情请参阅 [LICENSE](LICENSE) 文件。
## 🔗 相关资源
- [CISA ICS 公告](https://www.cisa.gov/topics/industrial-control-systems)
- [NIST 网络安全框架](https://www.nist.gov/cyberframework)
- [ISA/IEC 62443 标准](https://www.isa.org/standards-and-publications/isa-standards/isa-iec-62443-series-of-standards)
- [MITRE ATT&CK for ICS](https://attack.mitre.org/techniques/ics/)
- [SANS ICS 安全](https://www.sans.org/industrial-control-systems-security/)
## 👤 作者
**Ali AlEnezi (SiteQ8)**
- GitHub: [@SiteQ8](https://github.com/SiteQ8)
- Email: [site@hotmail.com](mailto:site@hotmail.com)
- Location: Kuwait 🇰🇼
**⭐ 如果您觉得有用,请给本仓库点个 Star! ⭐**
Made with ❤️ in Kuwait 🇰🇼 for the global ICS security community
*符合 NIST SP 800-82 · IEC 62443 · NERC CIP · MITRE ATT&CK for ICS · CIS Controls v8*
标签:DNS枚举, Docker, ICS安全, IEC 62443, impacket, MITRE ATT&CK ICS, NERC CIP, NIST 800-82, OT安全, PKINIT, PLC安全, Python, Scada安全, Web仪表盘, 加密, 协议分析, 合规性评估, 子域枚举, 安全加固框架, 安全基线, 安全防御评估, 对称加密, 工业互联网, 工业防火墙, 工控安全, 教学环境, 无后门, 权限提升, 漏洞扫描器, 物联网安全, 网络分段, 网络安全工具, 自动化审计, 请求拦截, 运营技术安全, 逆向工具