SiteQ8/OpenICS-Atlas

GitHub: SiteQ8/OpenICS-Atlas

OpenICS-Atlas 是一个开源的工控安全情报平台,帮助OT安全人员可视化ICS暴露面、理解Purdue模型架构,并生成符合IEC 62443等国际标准的加固检查清单。

Stars: 1 | Forks: 0

OpenICS-Atlas Banner
[![在线演示](https://img.shields.io/badge/🚀-Live_Demo-f0a500?style=flat-square)](https://siteq8.github.io/OpenICS-Atlas) [![版本](https://img.shields.io/badge/version-2.5-00d4ff?style=flat-square)]() [![许可证](https://img.shields.io/badge/license-Apache_2.0-2ed573?style=flat-square)](LICENSE) [![ICS 协议](https://img.shields.io/badge/protocols-8-ff4757?style=flat-square)]() [![加固控制](https://img.shields.io/badge/controls-72-f0a500?style=flat-square)]() [![标准](https://img.shields.io/badge/IEC_62443_|_NIST_800--82_|_NERC_CIP-151d28?style=flat-square)]() **测绘、模拟并加固 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安全, 分布式控制系统, 可视化, 威胁情报, 安全加固, 工控协议, 工控安全, 开发者工具, 数据可视化, 数据采集与监控系统, 普度模型, 漏洞管理, 离线安全工具, 纵深防御, 自动化攻击, 请求拦截, 调试辅助, 资产清单, 风险矩阵