performing-oil-gas-cybersecurity-assessment
本技能涵盖针对石油和天然气设施(包括上游探采、中游管道运输和下游炼化分销)进行网络安全评估。内容涉及控制管道运营的SCADA系统、炼厂过程控制DCS、危险工艺安全仪表系统、无人井口现场RTU,以及对API 1164、TSA管道安全指令、IEC 62443和NIST网络安全框架关键基础设施合规性评估。
Best use case
performing-oil-gas-cybersecurity-assessment is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
本技能涵盖针对石油和天然气设施(包括上游探采、中游管道运输和下游炼化分销)进行网络安全评估。内容涉及控制管道运营的SCADA系统、炼厂过程控制DCS、危险工艺安全仪表系统、无人井口现场RTU,以及对API 1164、TSA管道安全指令、IEC 62443和NIST网络安全框架关键基础设施合规性评估。
Teams using performing-oil-gas-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-oil-gas-cybersecurity-assessment/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How performing-oil-gas-cybersecurity-assessment Compares
| Feature / Agent | performing-oil-gas-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?
本技能涵盖针对石油和天然气设施(包括上游探采、中游管道运输和下游炼化分销)进行网络安全评估。内容涉及控制管道运营的SCADA系统、炼厂过程控制DCS、危险工艺安全仪表系统、无人井口现场RTU,以及对API 1164、TSA管道安全指令、IEC 62443和NIST网络安全框架关键基础设施合规性评估。
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
# 执行石油和天然气网络安全评估
## 适用场景
- 对炼厂、管道或生产设施进行网络安全评估时
- 准备TSA管道安全指令合规(SD-01、SD-02)时
- 根据API标准1164(管道SCADA安全)评估网络安全态势时
- 评估远程井口SCADA系统和卫星通信安全性时
- 并购、收购或监管审计需要全面OT安全评估时
**不适用于**石油和天然气公司仅IT企业网络评估、无网络组件的物理安全评估,或环境合规评估。
## 前置条件
- 设施管理层和运营团队的书面授权
- 了解石油和天然气运营(上游、中游、下游工艺)
- 熟悉API 1164、TSA SD-01/SD-02、IEC 62443和NIST CSF
- 用于OT网络流量捕获的被动监控工具
- 可访问网络图、SCADA架构文档和安全研究(HAZOP)
## 工作流程
### 步骤 1:基于设施类型界定评估范围
石油和天然气设施因运营细分而具有独特特征,影响评估方法。
```yaml
# 石油和天然气网络安全评估范围
facility:
name: "墨西哥湾沿岸炼厂"
segment: "下游"
capacity: "每日25万桶"
regulatory: ["TSA SD-02", "API 1164", "IEC 62443", "NIST CSF"]
assessment_areas:
process_control:
description: "炼厂DCS和SCADA系统"
systems:
- "Honeywell Experion DCS - 主过程控制"
- "Yokogawa CENTUM VP - 加氢裂化装置"
- "Triconex SIS - 紧急停车系统"
- "Allen-Bradley PLC - 公用工程和储罐区"
protocols: ["Modbus/TCP", "OPC UA", "HART", "Foundation Fieldbus"]
pipeline_scada:
description: "原油接收和产品分发的管道SCADA"
systems:
- "ABB RTU560 - 泵站管道RTU"
- "GE iFIX SCADA - 管道控制中心"
- "流量计算机 - 交接计量"
protocols: ["DNP3", "串口Modbus RTU", "IEC 60870-5-104"]
communications: ["授权无线电", "租用线路", "卫星(VSAT)"]
safety_systems:
description: "安全仪表系统和火气检测"
systems:
- "Schneider Triconex 3008 - 过程SIS"
- "Honeywell FSC - 火气系统"
- "燃气轮机保护系统"
criticality: "SIL 2/3等级 - 最高优先级"
remote_access:
description: "供应商和操作员对OT的远程访问"
methods:
- "基于Citrix的SCADA终端远程访问"
- "VPN供应商支持DCS维护"
- "远程泵站卫星通信"
physical_security:
description: "物理安全与网络安全集成"
systems:
- "门禁控制系统(门禁读卡器)"
- "具有IP网络连接的CCTV"
- "周界入侵检测"
compliance_mapping:
tsa_sd_02:
- "实施IT和OT之间的网络隔离"
- "制定并维护网络安全实施计划(CIP)"
- "建立网络安全评估项目"
- "24小时内向CISA报告网络安全事件"
- "为关键OT系统实施访问控制措施"
api_1164:
- "基于风险的管道SCADA网络安全计划"
- "资产识别和分类"
- "网络安全和访问控制"
- "人员安全和培训"
- "事件响应和恢复"
```
### 步骤 2:评估管道SCADA安全性
管道SCADA系统面临独特挑战,包括通过不受信媒介的长距离通信、无人远程站点和交接计量完整性要求。
```python
#!/usr/bin/env python3
"""管道SCADA安全评估工具。
根据API 1164和TSA管道安全指令要求
评估管道SCADA系统的安全性。
"""
import json
import sys
from dataclasses import dataclass, field, asdict
from datetime import datetime
@dataclass
class AssessmentFinding:
finding_id: str
category: str
severity: str
title: str
description: str
affected_systems: list
regulatory_reference: str
remediation: str
timeline: str
@dataclass
class ComplianceCheck:
requirement_id: str
description: str
standard: str
status: str # compliant, partial, non-compliant
evidence: str
gap: str = ""
class PipelineSCADAAssessment:
"""按API 1164 / TSA SD-02进行管道SCADA安全评估。"""
def __init__(self, facility_name):
self.facility = facility_name
self.findings = []
self.compliance_checks = []
self.finding_counter = 1
def assess_network_architecture(self, architecture_data):
"""评估管道SCADA网络架构。"""
checks = []
# TSA SD-02: IT和OT之间的网络隔离
if not architecture_data.get("it_ot_segmentation"):
self.findings.append(AssessmentFinding(
finding_id=f"OG-{self.finding_counter:03d}",
category="网络架构",
severity="critical",
title="无IT/OT网络隔离",
description=(
"管道SCADA网络未与企业IT隔离。"
"攻击者一旦入侵企业网络,可直接"
"横向移动到管道控制系统。"
),
affected_systems=["管道SCADA服务器", "RTU通信"],
regulatory_reference="TSA SD-02第2.1节; API 1164第7节",
remediation="在IT和管道SCADA之间部署带工业防火墙的DMZ",
timeline="30天",
))
self.finding_counter += 1
# 检查RTU通信加密
if architecture_data.get("rtu_comm_encrypted") is False:
self.findings.append(AssessmentFinding(
finding_id=f"OG-{self.finding_counter:03d}",
category="通信安全",
severity="high",
title="管道RTU通信未加密",
description=(
"控制中心与远程RTU之间的DNP3通信"
"通过无线电/卫星链路传输,未加密。"
"具有无线电访问权限的攻击者可拦截或"
"注入SCADA命令。"
),
affected_systems=["管道RTU", "SCADA主站"],
regulatory_reference="API 1164第7.3节; IEC 62351",
remediation="为RTU链路部署DNP3安全认证或VPN隧道",
timeline="90天",
))
self.finding_counter += 1
# 检查远程泵站物理安全
if not architecture_data.get("remote_site_intrusion_detection"):
self.findings.append(AssessmentFinding(
finding_id=f"OG-{self.finding_counter:03d}",
category="物理-网络融合",
severity="high",
title="远程泵站缺乏物理入侵检测",
description=(
"管道沿线无人泵站缺乏物理入侵检测系统。"
"攻击者可在不被察觉的情况下物理访问"
"RTU和SCADA通信设备。"
),
affected_systems=["远程泵站RTU和网络设备"],
regulatory_reference="TSA SD-02第2.3节; API 1164第10节",
remediation="在远程站点安装带蜂窝告警的入侵检测系统",
timeline="60天",
))
self.finding_counter += 1
def assess_custody_transfer(self, metering_data):
"""评估交接计量系统的安全性。"""
if not metering_data.get("flow_computer_auth"):
self.findings.append(AssessmentFinding(
finding_id=f"OG-{self.finding_counter:03d}",
category="交接计量完整性",
severity="critical",
title="流量计算机缺乏认证",
description=(
"交接计量流量计算机接受未经认证的Modbus命令,"
"允许修改计量系数和流量计算参数。"
"这可能通过操纵交接计量数据实现财务欺诈。"
),
affected_systems=["交接计量点的流量计算机"],
regulatory_reference="API 1164第8节; API MPMS第21章",
remediation="实施流量计算机认证访问;部署审计日志",
timeline="45天",
))
self.finding_counter += 1
def check_tsa_compliance(self):
"""评估TSA管道安全指令的合规性。"""
tsa_requirements = [
ComplianceCheck("TSA-01", "已指定网络安全协调员",
"TSA SD-01", "compliant", "已任命网络安全协调员"),
ComplianceCheck("TSA-02", "24小时内向CISA报告事件",
"TSA SD-01", "partial", "流程存在但未经测试",
gap="需要桌面演练以验证报告时限"),
ComplianceCheck("TSA-03", "网络安全实施计划",
"TSA SD-02", "non-compliant", "无正式CIP",
gap="在90天内制定并提交CIP给TSA"),
ComplianceCheck("TSA-04", "IT和OT之间的网络隔离",
"TSA SD-02", "non-compliant", "观察到扁平网络",
gap="实施DMZ和基于区域的隔离"),
ComplianceCheck("TSA-05", "关键OT系统的访问控制",
"TSA SD-02", "partial", "SCADA上使用共享账户",
gap="实施具有基于角色访问的个人账户"),
ComplianceCheck("TSA-06", "持续监控和检测",
"TSA SD-02", "non-compliant", "未部署OT IDS",
gap="部署OT入侵检测(Dragos/Nozomi/Claroty)"),
ComplianceCheck("TSA-07", "关键系统的补丁管理",
"TSA SD-02", "partial", "仅有临时补丁",
gap="建立正式的OT补丁管理程序"),
]
self.compliance_checks.extend(tsa_requirements)
def generate_report(self):
"""生成综合评估报告。"""
report = []
report.append("=" * 70)
report.append(f"石油和天然气网络安全评估报告")
report.append(f"设施: {self.facility}")
report.append(f"日期: {datetime.now().strftime('%Y-%m-%d')}")
report.append("=" * 70)
# 发现摘要
report.append(f"\n发现: {len(self.findings)}")
for sev in ["critical", "high", "medium", "low"]:
count = sum(1 for f in self.findings if f.severity == sev)
if count:
report.append(f" {sev.upper()}: {count}")
for f in self.findings:
report.append(f"\n [{f.finding_id}] [{f.severity.upper()}] {f.title}")
report.append(f" 类别: {f.category}")
report.append(f" {f.description}")
report.append(f" 法规: {f.regulatory_reference}")
report.append(f" 修复措施: {f.remediation}({f.timeline})")
# 合规摘要
report.append(f"\n{'='*70}")
report.append("TSA管道安全指令合规性")
report.append("=" * 70)
for c in self.compliance_checks:
icon = "+" if c.status == "compliant" else "~" if c.status == "partial" else "-"
report.append(f" [{icon}] {c.requirement_id}: {c.description}")
report.append(f" 状态: {c.status.upper()}")
if c.gap:
report.append(f" 差距: {c.gap}")
return "\n".join(report)
if __name__ == "__main__":
assessment = PipelineSCADAAssessment("墨西哥湾沿岸炼厂")
assessment.assess_network_architecture({
"it_ot_segmentation": False,
"rtu_comm_encrypted": False,
"remote_site_intrusion_detection": False,
})
assessment.assess_custody_transfer({
"flow_computer_auth": False,
})
assessment.check_tsa_compliance()
print(assessment.generate_report())
```
## 核心概念
| 术语 | 定义 |
|------|------|
| API 1164 | 美国石油学会管道SCADA安全标准,为管道控制系统网络安全提供基于风险的框架 |
| TSA管道安全指令 | TSA针对管道运营商发布的强制性网络安全要求,包括SD-01(报告)和SD-02(实施) |
| 交接计量(Custody Transfer) | 石油产品所有权的交接转让,需要计量系统完整性以防止财务欺诈 |
| 分布式控制系统(DCS) | 炼厂用于连续过程控制的分布式控制系统,具有冗余控制器和操作站 |
| 远程终端单元(RTU) | 远程管道站点的现场设备,通过无线电/卫星通信采集传感器数据并执行控制命令 |
| 安全完整性等级(SIL) | IEC 61511对安全仪表功能的评级,SIL 1-4定义了按需失效概率 |
| HAZOP | 危险与可操作性研究,识别工艺设计中的潜在危险;网络安全应与HAZOP结果集成 |
## 工具和系统
- **Dragos平台**: 专注于石油和天然气威胁组织(XENOTIME、KAMACITE、ERYTHRITE)检测的OT网络安全平台
- **Claroty xDome**: 石油和天然气OT环境的综合资产发现和漏洞管理
- **Nozomi Guardian**: 支持管道协议(DNP3、Modbus、IEC 60870-5-104)的网络监控
- **Honeywell Forge Cybersecurity**: 专为炼厂常用Honeywell DCS环境设计的OT安全平台
## 输出格式
```
石油和天然气网络安全评估报告
==========================================
设施: [名称]
细分市场: 上游/中游/下游
日期: YYYY-MM-DD
标准: API 1164, TSA SD-02, IEC 62443
发现:
严重: [N] 高: [N] 中: [N] 低: [N]
合规状态:
TSA SD-02: [N]%合规
API 1164: [N]%合规
IEC 62443: [N]%合规
```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 评估、补丁合规检查或自动化漏洞检测等请求场景。