frangelbarrera/ICS-Cybersecurity-Audit

GitHub: frangelbarrera/ICS-Cybersecurity-Audit

一套基于 IEC 62443 与 NIST SP 800-82 的 ICS/OT 安全审计方法论与实践框架。

Stars: 13 | Forks: 2

### ICS网络安全审计框架 ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1dcedfd5b1174715.png) 工业控制系统安全方法与最佳实践 作者:[Frangel Barrera](https://github.com/frangelbarrera ) | 工业网络安全研究员 通过道德研究与 proven 方法论打造更安全的工业环境 [![License: CC BY-NC-SA 4.0](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg )](https://creativecommons.org/licenses/by-nc-sa/4.0/ ) [![IEC 62443](https://img.shields.io/badge/Standard-IEC%2062443-red.svg )](https://www.isa.org/isa-iec-62443 ) [![NIST SP 800-82](https://img.shields.io/badge/NIST-SP%20800--82-blue.svg )](https://csrc.nist.gov/publications/detail/sp/800-82/rev-3/final ) [![Last Updated](https://img.shields.io/badge/Updated-February%202026-brightgreen.svg )](https://github.com/frangelbarrera/ICS-Cybersecurity-Audit ) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg )](https://github.com/frangelbarrera/ICS-Cybersecurity-Audit/pulls ) --- ### 仓库用途 本信息库旨在为执行授权工业控制系统(ICS)与运营技术(OT)环境安全评估的网络安全专业人士提供全面的方法论指南。它专注于防御性安全实践、审计程序以及与工业标准一致的风险缓解策略。 **核心价值**:将理论 OT 安全知识转化为可操作、可审计、可重复的防御方法论。 --- ### 快速入门指南 要在专业任务中开始使用该框架: 1. **法律准备**:从 `/docs/legal/` 目录下载并自定义 `AUDIT_AUTHORIZATION_TEMPLATE.md`。 2. **资产清单**:使用第 1 阶段检查表记录 1-3 级资产。 3. **被动基线**:部署网络 TAP 并使用 `/tools/` 部分提供的 Wireshark 配置文件。 --- ### 范围与适用性 本框架适用于 Purdue 模型 0-3 级,并涵盖以下内容: 系统层级 | 组件 | 安全关注领域 --- | --- | --- 3 级 - 站点运营 | SCADA 服务器、HMI、历史记录器 | 安全架构、访问控制、补丁管理 2 级 - 区域监督 | 工厂楼层 HMI、工程工作站 | 应用程序安全、安全远程访问 1 级 - 基本控制 | PLC、RTU、DCS 控制器 | 固件完整性、协议加固 0 级 - 过程 | 传感器、执行器、驱动器 | 物理安全、安全调试 适用行业:制造业、能源、水处理、石油与天然气、化工处理、关键基础设施。 --- ### 审计方法论:5 阶段方法 #### 第 1 阶段:文档与范围定义 **交付成果**: - `AUTHORIZATION_SCOPE.md` 模板(法律边界定义) - 资产清单检查表 - 网络架构审查指南 **关键活动**: - 按照 ISA/IEC 62443-3-2 确立审计边界 - 记录运营关键性(SL-Tags) - 定义可接受的测试窗口(维护周期) #### 第 2 阶段:被动发现与基线 **工具与技术**: - 网络映射:Wireshark 被动捕获、ARP 表分析 - 流量分析:识别正常 OT 协议模式(Modbus、S7、EtherNet/IP) - 配置审查:离线分析 PLC/HMI 备份 **安全规则**:在此阶段不对控制网络发送任何数据包 #### 第 3 阶段:配置与加固审查 **提供的检查表**: - PLC/HMI 默认凭证审计 - 固件版本漏洞映射(OT 专用 CVSS) - 防火墙规则有效性分析 - 访问控制列表(ACL)验证 **审计示例片段**: ``` # 检查西门子 S7 默认凭据(教育目的) # 此命令从离线项目文件读取,而不是实时 PLC grep -i "password" /path/to/offline/project.ap13 ``` #### 第 4 阶段:受控安全验证 **授权测试仅限**: - 协议认证验证(只读命令) - 网络分段有效性测试 - 备份与恢复流程验证 **严格禁止**:对运行系统实施利用、拒绝服务(DoS)或修改操作。 #### 第 5 阶段:报告与修复路线图 **包含的模板**: - 面向 CISO 的高管摘要(业务影响) - 附带 CVSS-OT 评分的技术发现报告 - 与 IEC 62443 安全等级一致的修复时间线 - 持续监控建议 --- ### 关键框架组件 #### 1. OT 协议安全指南 对工业协议进行详细的安全分析: 协议 | 安全考虑 | 强化步骤 --- | --- | --- Modbus TCP | 无认证、明文传输 | 实施 TCP 包装器、网络分段 S7Comm(西门子) | 默认端口、版本指纹 | 启用访问保护(S7-1500)、更改端口 102 EtherNet/IP | CIP 协议漏洞 | 使用 CIP 安全、设备级认证 OPC UA | 证书管理复杂 | 实施完整 PKI、禁用匿名访问 PROFINET | LLDP 信息泄露 | 禁用未使用功能、控制广播域 ##### 🔍 常见 OT 协议弱点 尽管工业协议设计用于可靠性和实时性能,但大多数缺乏原生安全功能。审计时应重点关注以下常见架构缺陷: | 协议 | 主要漏洞 | 审计发现影响 | | :--- | :--- | :--- | | **Modbus TCP** | **缺乏认证** | 网络上的任何设备均可发送“写入单个线圈”命令以停止流程 | | **S7Comm** | **明文通信** | 攻击者可捕获流量以提取 PLC 密码或注入恶意 PDU 包 | | **EtherNet/IP** | **未认证的 CIP** | CIP 对象可被操纵以更改设备配置或强制 I/O 状态 | | **PROFINET** | **DCP 滥用** | 发现与配置协议(DCP)可用于重置设备名称或 IP 地址,导致 DoS | | **BACnet/IP** | **无源验证** | 易受欺骗和“谁在?”广播风暴影响,可能压垮低带宽控制器 | #### 2. 加固基线 **PLC 安全配置指南**: - 西门子 S7-1200/1500:访问保护、Know-How 保护、固件签名 - Allen-Bradley ControlLogix:CIP 安全、用户认证、电子密钥 - Schneider EcoStruxure:应用程序密码、网络过滤 **HMI/SCADA 安全**: - WinCC/TIA Portal:项目加密、运行时安全、用户管理 - FactoryTalk View:安全通信、表达式安全 **网络设备**: - 工业防火墙规则模板(Tofino、Palo Alto、Fortinet) - 托管交换机安全:端口安全、VLAN、DHCP 监听 #### 3. 资产完整性框架 确保软件完整性的方法论: ``` # 教育概念:PLC 项目完整性验证 # 这是用于理解的伪代码,不是工具 def verify_project_integrity(project_path, approved_hash): """ Conceptual example of verifying PLC project integrity BEFORE downloading to controller """ import hashlib with open(project_path, 'rb') as f: current_hash = hashlib.sha256(f.read()).hexdigest() if current_hash == approved_hash: return "INTEGRITY VERIFIED - Safe to deploy" else: return "INTEGRITY VIOLATION - Do not deploy" # 实际应用:使用工程软件提供的校验和 # 示例:TIA Portal 生成 .checksum 文件 ``` #### 4. OT 漏洞管理 **OT 专用 CVSS 评分**: - 考虑安全影响(S-Safety 指标) - 考虑可用性要求(A-可用性) - 纳入物理流程影响 **供应商公告跟踪**: - 西门子安全公告 - 施耐德电气 SEVD - 罗克韦尔自动化安全公告 - CISA ICS 公告 --- ### 🔍 OT 专用漏洞研究 为保持对新兴威胁的领先,本框架整合了以下数据来源: - **CISA ICS 公告**:[最新警报](https://www.cisa.gov/news-events/cybersecurity-advisories?f%5B0%5D=advisory_type%3A93 ) - **MITRE ATT&CK® for ICS**:[工业控制系统矩阵](https://attack.mitre.org/matrices/ics/ ) - **供应商门户**:`/docs/vendors/` 目录中包含西门子、罗克韦尔、施耐德电气的安全公告直接链接。 --- ### 安全架构模式 #### 零信任 OT(ZT-OT)模型 ``` graph LR subgraph IT_Zone [Corporate IT] MFA[Multi-Factor Auth] end subgraph IDMZ_Zone [Industrial DMZ] Diode[Data Diode / Proxy] end subgraph OT_Supervision [OT Supervision] Micro[Micro-segmentation] end subgraph OT_Control [OT Control] Auth[Device Auth] end IT_Zone --> IDMZ_Zone IDMZ_Zone --> OT_Supervision OT_Supervision --> OT_Control ``` **实施指南**: - 工业 DMZ(IDMZ)设计原则 - 跳转服务器配置与会话记录 - 网络 TAP 与 SPAN 端口部署用于监控 - OT 安全信息与事件管理(SIEM)集成 **网络分段模板**: OT 区域防火墙规则示例: ``` # 仅允许 SCADA 对 PLC 的读取命令 iptables -A FORWARD -p tcp --dport 502 -m u32 --u32 "12&0xFFFF=0x03" -j ACCEPT # 阻止来自外部区域的写入命令(功能码 5、6、15、16) iptables -A FORWARD -p tcp --dport 502 -m u32 --u32 "12&0xFFFF=0x06" -j DROP ``` --- ### 合规映射 #### IEC 62443-3-3 系统安全要求 | 要求 | 框架部分 | 审计证据 || :--- | :--- | :--- | | **SR 1.1 - 标识** | 第 3 阶段 | 用户账户矩阵、密码策略 | | **SR 2.1 - 授权** | 第 3 阶段 | ACL 文档、角色定义 | | **SR 3.1 - 通信完整性** | 第 4 阶段 | TLS/SSH 配置、证书审计 | | **SR 5.1 - 分段** | 架构 | 网络图、防火墙规则 | #### NIST SP 800-82r3 对齐 - 第 5 节:风险管理(涵盖在第 1 阶段) - 第 6 节:ICS 安全架构(涵盖在 ZT-OT 模型) - 第 7 节:安全控制(映射至加固指南) --- ### 职业发展与认证 #### 推荐认证路径 1. 基础:CompTIA Security+、ISA 网络安全基础 2. 中级:GIAC GICSP、ISA/IEC 62443 网络安全专家 3. 高级:注册信息安全经理(CISM)、认证 SCADA 安全架构师(CSSA) 4. 专家:注册信息系统安全专业人员(CISSP)并专注 OT 方向 #### 培训资源 - SANS ICS410/ICS515 课程 - ISA 培训项目 - 供应商特定安全培训(西门子、罗克韦尔、施耐德) --- ### 道德使用与法律框架 #### 使用前强制要求 1. **书面授权**:完成并签署 `/docs/legal/` 中的 `AUDIT_AUTHORIZATION_TEMPLATE.md` 2. **范围定义**:记录每个被批准的 IP 范围、设备和测试类型 3. **保险验证**:确保职业责任保险涵盖 OT 活动 4. **变更控制**:所有测试必须在维护窗口内安排 5. **紧急停止**:始终保持随时中止审计活动的能力 **禁止活动**: - ❌ **绝不**在无停机窗口的情况下对生产系统进行测试 - ❌ **绝不**修改过程变量或逻辑 - ❌ **绝不**导致拒绝服务(DoS)条件 - ❌ **绝不**在客户批准前披露发现结果 #### 负责任披露承诺 若发现漏洞: 1. 在 7 天内向供应商安全团队报告 2. 给予 90 天修复时间 3. 与供应商和 ICS-CERT 协调公开披露 --- ### 持续改进与社区 #### 贡献指南 我们欢迎以下人员的贡献: - 拥有行业经验的 OT 安全研究员 - 专注安全的控制系统工程师 - ICS 安全领域的学术研究人员 **贡献流程**: 1. 提出 Issue,描述方法论缺口 2. 提交包含文档和参考资料的 PR 3. 至少 2 名 OT 安全从业者进行同行评审 4. 维护者在法律审查后批准 #### 框架版本管理 - v1.0(当前):初始方法论发布 - v1.1(2025 年 Q1):添加 IEC 61850 和 DNP3 指南 - v2.0(2025 年 Q3):MITRE ATT&CK for ICS v14 映射 --- ### 🛠 综合审计工具集 | 类别 | 工具 | 用途 | | :--- | :--- | :--- | | **被动发现** | [NetworkMiner](https://www.netresec.com/?page=NetworkMiner ) | 被动 OT 资产识别与元数据提取 | | **被动发现** | [GrassMarlin](https://github.com/nsacyber/GRASSMARLIN ) | 被动网络拓扑映射与清单 | | **流量分析** | [Wireshark](https://www.wireshark.org/ ) | 深度包检测(DPI)用于 S7Comm、Modbus、EtherNet/IP | | **流量分析** | [Brim / Zeek](https://www.brimdata.io/ ) | 大规模 PCAP 分析与 OT 日志生成 | | **主动发现** | [Nmap](https://nmap.org/ ) | 目标扫描(使用 NSE 脚本,如 `s7-info`、`modbus-discover`) | | **PLC 分析** | [Snap7](http://snap7.sourceforge.net/ ) | 多平台以太网通信套件(适用于西门子 S7) | | **PLC 分析** | [ISF (ICS Exploitation Framework)](https://github.com/dark-lbp/isf ) | 协议特定测试(工业协议利用框架) | | **漏洞管理** | [OpenVAS](https://www.openvas.org/ ) | 开源漏洞扫描器(需对 OT 进行谨慎调优) | | **合规性** | [CSET®](https://github.com/cisagov/cset ) | CISA 官方工具,用于 NIST/IEC 62443 合规评估 | | **模拟** | [Modbus Pal](http://modbuspal.sourceforge.net/ ) | 基于 Java 的 Modbus 从站模拟器,用于无真实 PLC 的测试 | --- ### 参考资料与研究基础 #### 学术与标准 - ISA/IEC 62443 系列(所有部分) - NIST SP 800-82 第 3 版 - ISO/IEC 27019:2017 过程控制信息安全 - ENISA OT 安全最佳实践 #### 行业指南 - CISA ICS 安全建议 - 西门子网络安全操作概念 - 罗克韦尔自动化安全指南 - 施耐德电气网络安全最佳实践 #### 威胁情报 - MITRE ATT&CK for ICS - Dragos 威胁情报报告 - Nozomi Networks Labs 研究 - Claroty Team82 研究 --- ### 致谢 本框架综合了以下知识: - ISA 全球网络安全联盟 - 全球工业安全从业人员 - 我在 OT/ICS 安全研究中的导师 特别感谢道德黑客社区为推进防御性安全所做的贡献。
标签:CTI, ICS, IEC62443, NISTSP800-82, NTLM Relay, OT, OT网络安全, PKINIT, Wireshark, 加固指南, 句柄查看, 合规框架, 实操方法论, 工业控制系统安全, 工业环境安全, 工业网络安全审计, 工控安全, 应用安全, 授权评估, 检查清单, 法律授权模板, 网络TAP, 行业标准, 被动监测, 资产盘点, 逆向工具, 防御性安全