| name | implementing-nerc-cip-compliance-controls |
| description | 本技能涵盖为大型电力系统(BES)网络系统实施北美电力可靠性公司关键基础设施保护(NERC CIP)合规控制措施。内容包括资产分类(CIP-002)、电子安全边界(CIP-005)、系统安全管理(CIP-007)、配置管理(CIP-010)、供应链风险管理(CIP-013),以及2025年更新内容,包括远程访问强制MFA和扩展的低影响资产要求。
|
| domain | cybersecurity |
| subdomain | ot-ics-security |
| tags | ["ot-security","ics","scada","industrial-control","iec62443","nerc-cip","power-grid","compliance"] |
| version | 1.0.0 |
| author | mahipal |
| license | Apache-2.0 |
实施NERC CIP合规控制措施
适用场景
- 注册实体必须实现或维护BES网络系统的NERC CIP合规性
- 为地区实体准备NERC CIP合规审计
- 实施2025年CIP标准更新(CIP-003-9、CIP-005-7、CIP-010-4、CIP-013-2)
- 在新发电、输电或控制中心资产投入运行后对BES网络系统进行分类
- 制定合规监控和证据收集计划
不适用于非BES工业系统(参见implementing-iec-62443-security-zones)、通用IT合规框架(参见auditing-cloud-with-cis-benchmarks),或无网络安全组件的变电站物理安全。
前置条件
- 了解NERC CIP标准(CIP-002至CIP-014)
- 带影响等级(高、中、低)的BES网络系统清单
- 访问电子安全边界(ESP)网络图和防火墙配置
- 用于证据收集和审计文档的合规管理系统
- 熟悉NERC术语表(BES网络资产、BES网络系统、电子访问点)
工作流程
步骤 1:对BES网络系统进行分类(CIP-002-5.1a)
根据对大型电力系统可靠运行的影响,识别并分类所有BES网络系统。
"""NERC CIP BES网络系统分类工具。
实施CIP-002-5.1a分类标准,将
BES网络系统分类为高、中或低影响。
"""
import json
import sys
from dataclasses import dataclass, field, asdict
from datetime import datetime
@dataclass
class BESCyberSystem:
"""表示用于CIP-002分类的BES网络系统。"""
system_id: str
name: str
description: str
location: str
asset_type: str
connected_mw: float = 0
transmission_kv: float = 0
is_control_center: bool = False
is_backup_control_center: bool = False
has_cranking_path: bool = False
has_blackstart: bool = False
is_sps_ras: bool = False
impact_rating: str = ""
categorization_basis: str = ""
cyber_assets: list = field(default_factory=list)
class CIP002Categorizer:
"""NERC CIP-002-5.1a BES网络系统分类引擎。"""
def __init__(self):
.systems = []
.categorization_date = datetime.now().isoformat()
():
.systems.append(system)
():
system .systems:
._categorize_system(system)
():
sys.is_control_center sys.asset_type == :
sys.impact_rating =
sys.categorization_basis = (
)
sys.is_backup_control_center sys.asset_type == :
sys.impact_rating =
sys.categorization_basis = (
)
sys.connected_mw >= :
sys.impact_rating =
sys.categorization_basis = (
)
sys.connected_mw >= sys.asset_type == :
sys.impact_rating =
sys.categorization_basis = (
)
sys.transmission_kv >= :
sys.impact_rating =
sys.categorization_basis = (
)
sys.has_cranking_path:
sys.impact_rating =
sys.categorization_basis = (
)
sys.has_blackstart:
sys.impact_rating =
sys.categorization_basis = (
)
sys.is_sps_ras:
sys.impact_rating =
sys.categorization_basis = (
)
sys.is_control_center sys.asset_type == :
sys.impact_rating =
sys.categorization_basis = (
)
sys.impact_rating =
sys.categorization_basis = (
)
():
high = [s s .systems s.impact_rating == ]
medium = [s s .systems s.impact_rating == ]
low = [s s .systems s.impact_rating == ]
report = []
report.append( * )
report.append()
report.append()
report.append( * )
report.append()
report.append()
report.append()
report.append()
category, systems [(, high), (, medium), (, low)]:
systems:
report.append()
s systems:
report.append()
report.append()
report.append()
report.append()
report.append()
.join(report)
():
data = {
: .categorization_date,
: ,
: [asdict(s) s .systems],
}
(output_file, ) f:
json.dump(data, f, indent=)
__name__ == :
categorizer = CIP002Categorizer()
categorizer.add_system(BESCyberSystem(
system_id=, name=,
description=,
location=, asset_type=,
is_control_center=))
categorizer.add_system(BESCyberSystem(
system_id=, name=,
description=,
location=, asset_type=,
connected_mw=))
categorizer.add_system(BESCyberSystem(
system_id=, name=,
description=,
location=, asset_type=,
transmission_kv=))
categorizer.categorize_all()
(categorizer.generate_report())
步骤 2:实施电子安全边界(CIP-005-7)
在高影响和中影响BES网络系统周围定义并强制执行电子安全边界(ESP),在所有边界穿越点设置电子访问点(EAP)。
set rulebase security rules ICCP-Inbound from Corporate-Zone to ESP-Zone
set rulebase security rules ICCP-Inbound source 192.168.100.10
set rulebase security rules ICCP-Inbound destination 10.20.1.50
set rulebase security rules ICCP-Inbound application iccp
set rulebase security rules ICCP-Inbound service application-default
set rulebase security rules ICCP-Inbound action allow
set rulebase security rules ICCP-Inbound log-setting CIP-Audit-Log
set rulebase security rules NTP-Inbound from Corporate-Zone to ESP-Zone
set rulebase security rules NTP-Inbound source 192.168.100.1
set rulebase security rules NTP-Inbound destination 10.20.1.1
set rulebase security rules NTP-Inbound application ntp
set rulebase security rules NTP-Inbound action allow
set rulebase security rules RemoteAccess from External to DMZ-Zone
set rulebase security rules RemoteAccess destination 172.16.1.10
set rulebase security rules RemoteAccess application ssl-vpn
set rulebase security rules RemoteAccess action allow
set rulebase security rules ESP-Default-Deny from any to ESP-Zone
set rulebase security rules ESP-Default-Deny action deny
set rulebase security rules ESP-Default-Deny log-setting CIP-Audit-Log
步骤 3:实施系统安全管理(CIP-007-6)
为BES网络资产配置安全控制,包括端口管理、安全补丁、恶意代码预防和安全事件监控。
cip_007_controls:
R1_ports_services:
description: "端口和服务管理"
requirements:
- "禁用或限制所有不必要的物理端口(USB、串口)"
- "禁用所有不必要的逻辑端口和服务"
- "记录所有启用的端口/服务及业务理由"
implementation:
windows_servers: |
# 禁用Windows BES网络资产上的不必要服务
Set-Service -Name "RemoteRegistry" -StartupType Disabled
Set-Service -Name "WinRM" -StartupType Disabled
Set-Service -Name "Spooler" -StartupType Disabled
# 通过组策略禁用USB存储
# 计算机配置 > 管理模板 > 系统 > 可移动存储访问
linux_servers: |
# 禁用不必要的服务
systemctl disable cups bluetooth avahi-daemon
systemctl mask cups bluetooth avahi-daemon
# 禁用USB存储
echo "blacklist usb-storage" > /etc/modprobe.d/disable-usb.conf
R2_security_patches:
description: "安全补丁管理"
requirements:
- "跟踪所有BES网络系统的安全补丁"
- "在可用后35天内评估补丁"
- "应用补丁或记录缓解计划"
- "在生产前于非生产环境测试补丁"
implementation:
tracking: "Windows使用WSUS/SCCM;Linux使用yum/dnf"
testing: "维护镜像生产环境的预演环境"
evidence: "在合规追踪系统中记录补丁评估"
R3_malicious_code:
description: "恶意代码预防"
requirements:
- "在所有适用的BES网络资产上部署反恶意软件"
- "更新签名或使用应用程序白名单"
核心概念
| 术语 | 定义 |
|---|
| BES网络系统(BES Cyber System) | 为大型电力系统执行可靠性功能的一个或多个BES网络资产的集合 |
| 电子安全边界(ESP) | 包含BES网络系统的网络逻辑边界,所有流量通过电子访问点流入流出 |
| 电子访问点(EAP) | ESP边界上控制进出ESP流量的接口 |
| 中间系统(Intermediate System) | 用于远程访问的系统,防止直接连接到BES网络资产(跳板服务器) |
| 临时网络资产(Transient Cyber Asset) | 连续日历天数少于30天直接连接到BES网络系统的设备(笔记本电脑、USB驱动器) |
| NERC术语表 | CIP标准中使用的官方定义;合规需要精确术语 |
工具和系统
- Tripwire Enterprise:CIP-010基线管理的配置合规监控和文件完整性监控
- Splunk配合CIP内容包:SIEM,具有预建的CIP-007安全事件监控仪表板和告警
- Carbon Black App Control:HMI工作站和BES网络资产的应用程序白名单(CIP-007 R3)
- Trellix/McAfee ePO:端点保护,为BES网络资产提供OT优化扫描策略
输出格式
NERC CIP合规评估报告
=======================================
实体: [注册实体名称]
日期: YYYY-MM-DD
标准: CIP-002至CIP-014
BES网络系统分类:
高影响: [N] 个系统
中影响: [N] 个系统
低影响: [N] 个系统
各标准合规状态:
CIP-002: [合规/部分合规/不合规]
CIP-005: [状态] - 已识别 [N] 个差距
CIP-007: [状态] - 已识别 [N] 个差距
CIP-010: [状态] - 已识别 [N] 个差距
CIP-013: [状态] - 已识别 [N] 个差距