SiteQ8/OpenICS-Atlas
GitHub: SiteQ8/OpenICS-Atlas
OpenICS-Atlas 是一个开源的工控安全情报平台,帮助OT安全人员可视化ICS暴露面、理解Purdue模型架构,并生成符合IEC 62443等国际标准的加固检查清单。
Stars: 1 | Forks: 0
[](https://siteq8.github.io/OpenICS-Atlas)
[]()
[](LICENSE)
[]()
[]()
[]()
**测绘、模拟并加固 ICS/OT 暴露面 —— 支持 Shodan、厂商中立、开源。**
[在线演示](https://siteq8.github.io/OpenICS-Atlas) · [快速开始](#-quick-start) · [协议](#-protocols) · [加固](#-hardening-checklists) · [贡献指南](#-contributing)
## 什么是 OpenICS-Atlas?
OpenICS-Atlas 旨在帮助 **ICS/OT 安全防御者** 可视化暴露在互联网上的工业控制系统,理解 Purdue Model 架构,并生成符合 IEC 62443、NIST SP 800-82 和 NERC CIP 标准的实用加固检查清单。
它支持使用合成演示数据 **完全离线** 运行,也可以连接到 **Shodan API**(仅获取聚合计数,不包含主机详情)以获取真实的暴露数据。
### 适用人群?
- **OT 安全工程师** —— 可视化您的暴露面全景
- **ICS/SCADA 分析师** —— 针对特定协议的风险指导和缓解措施
- **合规团队** —— IEC 62443 / NIST 800-82 / NERC CIP 检查清单
- **安全架构师** —— 包含区域隔离的 Purdue Model 参考
- **渗透测试人员** —— 理解 ICS 攻击面(仅限防御用途)
## ✨ v2.5 功能特性
### 📡 交互式暴露地图
- 基于 **Leaflet.js** 的世界热力图,配有深色 SCADA 风格底图
- 圆形标记根据暴露数量调整大小,根据风险严重程度着色
- 点击任意标记查看特定国家的协议暴露弹窗
- 按严重程度排序的国家风险表
### ⚡ 8 种 ICS/SCADA 协议
每种协议的完整参考,包括端口、风险等级、描述、受影响厂商、已知 CVE 和具体缓解措施:
| Protocol | Port | Risk | Used In |
|----------|------|------|---------|
| **Modbus/TCP** | 502 | 🔴 Critical | PLCs, RTUs, SCADA (energy, water, manufacturing) |
| **DNP3** | 20000 | 🔴 Critical | Electric utilities, water systems |
| **IEC 60870-5-104** | 2404 | 🟠 High | European/Asian power grids, substations |
| **MMS / IEC 61850** | 102 | 🟠 High | Electrical substations (GOOSE, SV) |
| **EtherNet/IP** | 44818 | 🟠 High | Manufacturing (Rockwell/Allen-Bradley) |
| **OPC UA** | 4840 | 🟡 Medium | Industrial interoperability (secure-by-design) |
| **BACnet/IP** | 47808 | 🟡 Medium | Building automation (HVAC, fire, access) |
| **S7comm/S7comm+** | 102 | 🔴 Critical | Siemens S7 PLCs (300/400/1200/1500) |
### 🏗️ 交互式 Purdue Model
- 所有 7 个 Purdue 层级(L0–L5 + DMZ)的可视化图表
- 每个层级的风险百分比及颜色编码
- 每个层级的技术和组件
- 显示风险分布的条形图
- 区域之间的 Firewall/DMZ 指示器
### 🛡️ 加固检查清单 —— 72 项控制措施
带有进度跟踪的交互式检查清单,符合行业标准:
| Checklist | Controls | Standard |
|-----------|----------|----------|
| Network Segmentation | 12 | IEC 62443-3-3 |
| PLC/RTU Hardening | 12 | NIST 800-82 |
| Remote Access | 12 | NERC CIP-005 |
| Monitoring & Detection | 12 | MITRE ATT&CK for ICS |
| Patch Management | 12 | IEC 62443-2-3 |
| Incident Response | 12 | NIST SP 800-61 |
### 📊 协议分布图表
- **圆环图** —— 所有 8 种协议的全球暴露分布
- **条形图** —— Purdue 层级风险评估
- **国家表** —— 按暴露量排名的前 15 个国家,带有风险徽章
### 🌙 工业 SCADA 美学
- 带有扫描线叠加层的深色控制室主题
- IBM Plex Mono + IBM Plex Sans 字体排版
- 琥珀色/青色/红色/绿色配色系统,匹配真实的 HMI 显示屏
- 响应式设计,支持桌面、平板和移动设备
## 🚀 快速开始
### 方式 1: GitHub Pages (无需安装)
访问 **[https://siteq8.github.io/OpenICS-Atlas](https://siteq8.github.io/OpenICS-Atlas)** —— 在浏览器中完全使用演示数据运行。
### 方式 2: 本地 (静态)
```
git clone https://github.com/SiteQ8/OpenICS-Atlas.git
cd OpenICS-Atlas
open docs/index.html
```
### 方式 3: Next.js 开发服务器
```
git clone https://github.com/SiteQ8/OpenICS-Atlas.git
cd OpenICS-Atlas
npm install
npm run dev
# 打开 http://localhost:3000
```
### 方式 4: 使用 Shodan API (可选)
创建 `.env.local`:
```
SHODAN_API_KEY=YOUR_KEY_HERE
```
Shodan 代理 (`/api/shodan`) **仅返回聚合计数** —— 永远不会暴露主机 IP 或 banners。
## 📁 仓库结构
```
OpenICS-Atlas/
├── docs/ # Static GitHub Pages site (v2.5 GUI)
│ ├── index.html # Complete standalone app
│ └── screenshots/ # README assets
├── app/ # Next.js UI (map, protocol pages, blueprints)
│ ├── api/shodan/ # Shodan aggregation proxy
│ ├── blueprints/ # Purdue/DMZ visual guides
│ └── protocol/[name]/ # Protocol detail pages
├── blueprints/ # Purdue/DMZ/jump-host diagrams
├── checklists/ # Hardening checklists (Markdown)
├── policies/ # iptables/nftables templates
├── labs/ # Offline mini-labs
│ └── modbus_mock/ # Mock Modbus server (Docker)
├── data/demo/ # Synthetic demo data
├── components/ # React components (MapView, etc.)
└── docs/ # Documentation
```
## 📊 演示数据
所有暴露数据均为 **合成数据**,不代表真实的 ICS 部署。该数据结构旨在展示逼真的模式:
- **30+ 个国家** 及其每种协议的暴露计数
- **8 种协议** 及其端口、风险、厂商、CVE 和缓解数据
- **7 个 Purdue 层级** 及其风险评估
- **6 大类 72 项加固控制措施**
## ⚠️ 道德与安全
OpenICS-Atlas 严格用于 **防御性教育**。
- Shodan 代理 **仅公开聚合统计数据** —— 不包含 IP、banners 或识别数据
- 所有演示数据均为 **合成数据** —— 未映射真实部署
- **严禁** 使用此工具针对、扫描或利用任何设备
- 请遵循您组织的相关政策进行负责任的披露
- 遵守您所在司法管辖区适用的一切法律法规
请参阅 [docs/ETHICS.md](docs/ETHICS.md) 查看完整的道德声明。
## 📚 参考标准
| Standard | Description |
|----------|-------------|
| **IEC 62443** | Industrial Automation and Control Systems Security |
| **NIST SP 800-82** | Guide to Industrial Control Systems Security |
| **NERC CIP** | Critical Infrastructure Protection (North American power grid) |
| **ISA/IEC 62443-3-3** | System Security Requirements and Security Levels |
| **IEC 62351** | Power Systems Management — Data and Communications Security |
| **MITRE ATT&CK for ICS** | Adversary tactics and techniques for industrial control systems |
| **CISA ICS-CERT** | Industrial Control Systems Cyber Emergency Response Team |
## 📄 许可证
Apache License 2.0 —— 见 [LICENSE](LICENSE)。
🏭 OpenICS-Atlas —— 仅限防御性教育
由 @SiteQ8 构建 —— Ali AlEnezi 🇰🇼
IEC 62443 · NIST 800-82 · NERC CIP · MITRE ATT&CK for ICS
标签:DNS通配符暴力破解, GitHub Advanced Security, GPT, ICS暴露面, IEC 62443, Leaflet.js, Mutation, NERC CIP, NIST 800-82, OT安全, PKINIT, Purdue Model, SCADA安全, 分布式控制系统, 可视化, 威胁情报, 安全加固, 工控协议, 工控安全, 开发者工具, 数据可视化, 数据采集与监控系统, 普度模型, 漏洞管理, 离线安全工具, 纵深防御, 自动化攻击, 请求拦截, 调试辅助, 资产清单, 风险矩阵