performing-power-grid-cybersecurity-assessment
本技能涵盖对电力电网基础设施进行网络安全评估,包括发电设施、输电变电站、配电系统和能源管理系统(EMS)控制中心。涉及NERC CIP合规性验证、变电站自动化安全、IEC 61850协议分析、同步相量(PMU)网络安全,以及Industroyer/CrashOverride等攻击所展示的针对电网运营的独特威胁格局。
Best use case
performing-power-grid-cybersecurity-assessment is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
本技能涵盖对电力电网基础设施进行网络安全评估,包括发电设施、输电变电站、配电系统和能源管理系统(EMS)控制中心。涉及NERC CIP合规性验证、变电站自动化安全、IEC 61850协议分析、同步相量(PMU)网络安全,以及Industroyer/CrashOverride等攻击所展示的针对电网运营的独特威胁格局。
Teams using performing-power-grid-cybersecurity-assessment should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/performing-power-grid-cybersecurity-assessment/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How performing-power-grid-cybersecurity-assessment Compares
| Feature / Agent | performing-power-grid-cybersecurity-assessment | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
本技能涵盖对电力电网基础设施进行网络安全评估,包括发电设施、输电变电站、配电系统和能源管理系统(EMS)控制中心。涉及NERC CIP合规性验证、变电站自动化安全、IEC 61850协议分析、同步相量(PMU)网络安全,以及Industroyer/CrashOverride等攻击所展示的针对电网运营的独特威胁格局。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 执行电力电网网络安全评估
## 适用场景
- 根据NERC CIP要求对电力电网设施进行定期网络安全评估时
- 评估使用IEC 61850 GOOSE和MMS协议的变电站自动化系统时
- 评估能源管理系统(EMS)或SCADA控制中心的安全性时
- 评估同步相量(PMU)网络和广域监测系统时
- 准备区域实体合规审计或内部安全审查时
**不适用于**低于NERC注册门槛的非BES系统、无电网专项知识的通用OT评估(参见performing-ot-network-security-assessment),或无网络范围的发电设施物理安全评估。
## 前置条件
- 了解电力电网架构(发电、输电、配电)
- 熟悉NERC CIP标准和BES网络系统分类
- 掌握电网协议知识(IEC 61850、IEC 60870-5-104、DNP3、ICCP/TASE.2)
- 用于变电站网络流量分析的被动监控工具
- 能够访问EMS/SCADA架构文档和网络图
## 工作流程
### 步骤 1:映射电力电网网络架构
识别并记录所有支持电网运营的网络系统,包括EMS、SCADA、变电站自动化和通信基础设施。
```yaml
# 电力电网网络架构评估
facility_type: "区域输电组织控制中心"
ems_systems:
primary_ems:
vendor: "GE Grid Solutions"
product: "EMS/SCADA (原XA/21)"
functions:
- "状态估计"
- "自动发电控制(AGC)"
- "安全约束经济调度"
- "应急分析"
protocols:
- "ICCP/TASE.2(控制中心间)"
- "DNP3(变电站RTU轮询)"
- "IEC 60870-5-104(变电站轮询)"
backup_control_center:
location: "地理分散的备用站点"
sync_method: "实时数据库镜像"
switchover_time: "< 5分钟"
substation_automation:
count: 145
system_types:
- vendor: "ABB"
product: "RTU560"
protocol: "DNP3 over TCP/IP"
count: 85
- vendor: "SEL"
product: "SEL-3530 RTAC"
protocol: "IEC 61850 MMS + GOOSE"
count: 40
- vendor: "Siemens"
product: "SICAM A8000"
protocol: "IEC 60870-5-104"
count: 20
communications:
primary: "MPLS WAN(运营商提供)"
backup: "授权微波无线电"
last_mile: "光纤到变电站"
synchrophasor_network:
pmu_count: 75
pdc: "GE PDC(相量数据集中器)"
communication: "专用网络上的IEEE C37.118.2"
data_rate: "每秒30-60个采样"
```
### 步骤 2:评估变电站自动化安全性
评估基于IEC 61850的变电站自动化的协议安全性、访问控制和网络分段。
```python
#!/usr/bin/env python3
"""电力电网变电站安全评估器。
评估基于IEC 61850的变电站自动化系统安全性,
包括GOOSE消息传递、MMS客户端/服务器和
网络架构。
"""
import json
import sys
from dataclasses import dataclass, field, asdict
from datetime import datetime
@dataclass
class SubstationFinding:
finding_id: str
severity: str
category: str
title: str
description: str
affected_systems: list
nerc_cip_ref: str
iec_62351_ref: str
remediation: str
class SubstationAssessment:
"""评估变电站自动化系统的网络安全。"""
def __init__(self, substation_name):
self.name = substation_name
self.findings = []
self.counter = 1
def assess_iec61850_security(self, config):
"""评估IEC 61850协议安全性。"""
# GOOSE消息认证
if not config.get("goose_authentication"):
self.findings.append(SubstationFinding(
finding_id=f"SUB-{self.counter:03d}",
severity="critical",
category="协议安全",
title="IEC 61850 GOOSE消息缺乏认证",
description=(
"用于IED间保护信令的GOOSE消息未经认证。"
"站点总线上的攻击者可以向断路器"
"注入虚假的跳闸/合闸命令。"
),
affected_systems=config.get("goose_publishers", []),
nerc_cip_ref="CIP-005-7 R1.5 — ESP内部通信",
iec_62351_ref="IEC 62351-6 — GOOSE/SV认证",
remediation=(
"使用数字签名实现IEC 62351-6 GOOSE认证。"
"临时措施:为GOOSE流量部署VLAN隔离。"
),
))
self.counter += 1
# MMS服务访问控制
if not config.get("mms_authentication"):
self.findings.append(SubstationFinding(
finding_id=f"SUB-{self.counter:03d}",
severity="high",
category="协议安全",
title="MMS客户端连接缺乏认证",
description=(
"连接到IED的MMS(制造消息规范)连接不需要"
"客户端认证。站点总线上的任何设备"
"都可以读/写IED配置并操作断路器。"
),
affected_systems=config.get("mms_servers", []),
nerc_cip_ref="CIP-007-6 R5 — 系统访问控制",
iec_62351_ref="IEC 62351-4 — MMS安全配置文件",
remediation="按照IEC 62351-4为MMS连接启用TLS。",
))
self.counter += 1
# 站点总线分段
if not config.get("station_bus_segmented"):
self.findings.append(SubstationFinding(
finding_id=f"SUB-{self.counter:03d}",
severity="high",
category="网络架构",
title="无分段的平坦站点总线网络",
description=(
"站点总线在单个VLAN上连接所有IED、HMI、"
"工程访问和WAN网关,没有分段。"
),
affected_systems=["所有站点总线设备"],
nerc_cip_ref="CIP-005-7 R1 — ESP边界",
iec_62351_ref="IEC 62351-10 — 安全架构",
remediation=(
"将站点总线分段为VLAN:保护IED、"
"测量IED、站点HMI和WAN网关。"
),
))
self.counter += 1
def assess_remote_access(self, config):
"""评估变电站的远程访问安全性。"""
if config.get("direct_vendor_access"):
self.findings.append(SubstationFinding(
finding_id=f"SUB-{self.counter:03d}",
severity="critical",
category="远程访问",
title="供应商无需MFA直接远程访问变电站",
description=(
"供应商支持可直接VPN访问变电站网络,"
"无需通过中间系统或要求MFA。"
),
affected_systems=["变电站WAN网关"],
nerc_cip_ref="CIP-005-7 R2 — 远程访问管理",
iec_62351_ref="IEC 62351-8 — 基于角色的访问控制",
remediation=(
"通过带MFA的企业跳板服务器路由供应商访问。"
"按CIP-005-7 R2.4实施会话记录。"
),
))
self.counter += 1
def generate_report(self):
"""生成变电站评估报告。"""
report = []
report.append("=" * 70)
report.append(f"变电站网络安全评估: {self.name}")
report.append(f"日期: {datetime.now().isoformat()}")
report.append("=" * 70)
for sev in ["critical", "high", "medium", "low"]:
findings = [f for f in self.findings if f.severity == sev]
if findings:
report.append(f"\n--- {sev.upper()} ({len(findings)}) ---")
for f in findings:
report.append(f" [{f.finding_id}] {f.title}")
report.append(f" {f.description[:100]}...")
report.append(f" NERC CIP: {f.nerc_cip_ref}")
report.append(f" 修复: {f.remediation[:80]}...")
return "\n".join(report)
if __name__ == "__main__":
assessment = SubstationAssessment("Alpha变电站 — 345kV")
assessment.assess_iec61850_security({
"goose_authentication": False,
"mms_authentication": False,
"station_bus_segmented": False,
"goose_publishers": ["SEL-411L-01", "SEL-411L-02", "SEL-487E-01"],
"mms_servers": ["SEL-3530-RTAC", "ABB-REF615-01"],
})
assessment.assess_remote_access({
"direct_vendor_access": True,
})
print(assessment.generate_report())
```
## 核心概念
| 术语 | 定义 |
|------|------|
| IEC 61850 | 变电站通信网络和系统的国际标准,使用GOOSE进行保护信令,使用MMS进行SCADA数据传输 |
| GOOSE | 通用面向对象变电站事件(Generic Object Oriented Substation Event)——IED间快速点对点保护信令的多播协议(< 4ms跳闸时间) |
| MMS | 制造消息规范(Manufacturing Message Specification)——用于读写IED数据和操作断路器的客户端/服务器协议 |
| IEC 62351 | 电力系统通信协议安全标准系列,为IEC 61850、DNP3和IEC 104提供认证和加密 |
| ICCP/TASE.2 | 控制中心间通信协议(Inter-Control Center Communications Protocol),用于不同电力公司控制中心之间的数据交换 |
| 同步相量(PMU) | 相量测量单元(Phasor Measurement Unit),以每秒30-60个采样的频率提供时间同步的电压/电流测量,用于广域监测 |
## 工具和系统
- **Dragos Platform**: OT安全平台,具有针对电网攻击组织(ELECTRUM、KAMACITE)的专项威胁情报
- **SEL-3620以太网安全网关**: 提供加密、访问控制和入侵检测的变电站安全设备
- **GRIDsure**: 爱达荷国家实验室开发的电力电网网络安全评估框架
- **Wireshark with IEC 61850 Dissector**: 用于变电站GOOSE和MMS流量的协议分析
## 输出格式
```
电力电网网络安全评估报告
=============================================
设施: [名称和类型]
NERC注册: [实体ID]
BES影响评级: [高/中/低]
变电站发现: [N]
EMS/SCADA发现: [N]
通信发现: [N]
NERC CIP合规性:
CIP-002: [状态]
CIP-005: [状态]
CIP-007: [状态]
```Related Skills
performing-yara-rule-development-for-detection
通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。
performing-wireless-security-assessment-with-kismet
使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。
performing-wireless-network-penetration-test
执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。
performing-windows-artifact-analysis-with-eric-zimmerman-tools
使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。
performing-wifi-password-cracking-with-aircrack
在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。
performing-web-cache-poisoning-attack
在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。
performing-web-cache-deception-attack
通过利用 CDN 缓存层与源服务器之间的路径规范化差异,执行 Web 缓存欺骗攻击,从而缓存并获取敏感的已认证内容。
performing-web-application-vulnerability-triage
使用 OWASP 风险评级方法论对 DAST/SAST 扫描器的 Web 应用程序漏洞发现进行分类,区分真阳性和假阳性,并确定修复优先级。
performing-web-application-scanning-with-nikto
Nikto 是一款开源 Web 服务器和 Web 应用程序扫描器,可针对超过 7,000 个潜在危险文件/程序进行测试,检查超过 1,250 个服务器的过期版本,并识别超过 270 个服务器的版本特定问题。
performing-web-application-penetration-test
遵循 OWASP Web 安全测试指南(WSTG)方法论,对 Web 应用程序执行系统化安全测试,识别认证、授权、 输入验证、会话管理和业务逻辑中的漏洞。测试人员以 Burp Suite 作为主要拦截代理,结合手动测试技术 发现自动化扫描器遗漏的缺陷。适用于 Web 应用渗透测试、OWASP 测试、应用安全评估或 Web 漏洞测试等请求场景。
performing-web-application-firewall-bypass
使用编码技术、HTTP 方法操控、参数污染和载荷混淆绕过 Web 应用防火墙保护,将 SQL 注入、XSS 及其他攻击载荷穿透 WAF 检测规则。
performing-vulnerability-scanning-with-nessus
使用 Tenable Nessus 执行认证和未认证漏洞扫描,识别网络基础设施、服务器和应用程序中的已知漏洞、 错误配置、默认凭据和缺失补丁。扫描器将发现与 CVE 数据库和 CVSS 评分关联,生成优先级修复指导。 适用于漏洞扫描、Nessus 评估、补丁合规检查或自动化漏洞检测等请求场景。