implementing-dragos-platform-for-ot-monitoring
为OT网络监控部署和配置Dragos平台,利用其600+工业协议解析器、情报驱动的威胁检测分析和资产可见性能力,保护ICS环境免受VOLTZITE、GRAPHITE和BAUXITE等威胁组织的攻击。
Best use case
implementing-dragos-platform-for-ot-monitoring is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
为OT网络监控部署和配置Dragos平台,利用其600+工业协议解析器、情报驱动的威胁检测分析和资产可见性能力,保护ICS环境免受VOLTZITE、GRAPHITE和BAUXITE等威胁组织的攻击。
Teams using implementing-dragos-platform-for-ot-monitoring 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/implementing-dragos-platform-for-ot-monitoring/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How implementing-dragos-platform-for-ot-monitoring Compares
| Feature / Agent | implementing-dragos-platform-for-ot-monitoring | 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?
为OT网络监控部署和配置Dragos平台,利用其600+工业协议解析器、情报驱动的威胁检测分析和资产可见性能力,保护ICS环境免受VOLTZITE、GRAPHITE和BAUXITE等威胁组织的攻击。
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
# 为OT监控实现Dragos平台
## 适用场景
- 为工业环境部署OT专用网络检测与响应(NDR)解决方案
- 需要基于威胁情报检测已知ICS威胁组织(VOLTZITE、CHERNOVITE、KAMACITE)
- 构建使用专用工业安全工具的OT SOC能力
- 在单一平台上同时需要资产发现、漏洞管理和威胁检测
- 将OT安全监控与企业SIEM(Splunk、Sentinel、QRadar)集成
**不适用于**无ICS组件的纯IT网络监控、OT工作站的端点检测与响应(EDR),或已标准化使用Claroty或Nozomi的环境(参见相应技能)。
## 前置条件
- Dragos平台许可证和部署包
- OT网络边界的网络TAP或SPAN端口(每个监控网段一个传感器)
- Dragos传感器硬件(物理设备)或满足最低规格的虚拟设备
- 允许传感器到Dragos SiteStore通信的防火墙规则(仅从OT出站的加密连接)
- 用于威胁情报更新的Dragos知识包订阅
## 工作流程
### 步骤 1:部署Dragos传感器并配置监控
```python
#!/usr/bin/env python3
"""Dragos平台部署验证和集成工具。
验证Dragos传感器部署、检查连通性,并
配置与企业SIEM的集成以进行OT告警转发。
"""
import json
import sys
import csv
from datetime import datetime
from typing import Optional, List, Dict
try:
import requests
except ImportError:
print("安装requests: pip install requests")
sys.exit(1)
class DragosPlatformManager:
"""与Dragos平台API交互进行OT监控管理。"""
def __init__(self, base_url: str, api_key: str, api_secret: str, verify_ssl: bool = True):
self.base_url = base_url.rstrip("/")
self.session = requests.Session()
self.session.headers.update({
"API-Key": api_key,
"API-Secret": api_secret,
"Content-Type": "application/json",
})
self.session.verify = verify_ssl
def get_sensors(self) -> List[Dict]:
"""获取所有已部署的Dragos传感器及其状态。"""
resp = self.session.get(f"{self.base_url}/api/v1/sensors")
resp.raise_for_status()
return resp.json().get("sensors", [])
def get_assets(self, asset_type: Optional[str] = None) -> List[Dict]:
"""获取Dragos发现的OT资产。"""
params = {}
if asset_type:
params["type"] = asset_type
resp = self.session.get(f"{self.base_url}/api/v1/assets", params=params)
resp.raise_for_status()
return resp.json().get("assets", [])
def get_notifications(self, severity: str = "high", limit: int = 50) -> List[Dict]:
"""获取威胁检测通知。"""
params = {"min_severity": severity, "limit": limit}
resp = self.session.get(f"{self.base_url}/api/v1/notifications", params=params)
resp.raise_for_status()
return resp.json().get("notifications", [])
def get_vulnerabilities(self, severity: str = "critical") -> List[Dict]:
"""获取带有Dragos特定上下文的OT漏洞。"""
params = {"min_severity": severity}
resp = self.session.get(f"{self.base_url}/api/v1/vulnerabilities", params=params)
resp.raise_for_status()
return resp.json().get("vulnerabilities", [])
def get_threat_groups(self) -> List[Dict]:
"""获取与当前环境相关的已追踪ICS威胁组织活动。"""
resp = self.session.get(f"{self.base_url}/api/v1/threat-groups")
resp.raise_for_status()
return resp.json().get("threat_groups", [])
def validate_deployment(self):
"""验证传感器部署健康状态和覆盖范围。"""
sensors = self.get_sensors()
assets = self.get_assets()
print(f"\n{'='*65}")
print("DRAGOS平台部署验证")
print(f"{'='*65}")
print(f"验证时间: {datetime.now().isoformat()}")
print(f"\n--- 传感器状态 ---")
healthy_sensors = 0
for sensor in sensors:
status = sensor.get("status", "unknown")
icon = "[OK]" if status == "connected" else "[!!]"
print(f" {icon} {sensor.get('name', 'Unknown')} | 状态: {status}")
print(f" IP: {sensor.get('ip_address')} | 网段: {sensor.get('monitored_segment')}")
print(f" 最后在线: {sensor.get('last_seen')} | 数据包/秒: {sensor.get('pps', 0)}")
print(f" 知识包: {sensor.get('knowledge_pack_version', 'N/A')}")
if status == "connected":
healthy_sensors += 1
print(f"\n 传感器健康: {healthy_sensors}/{len(sensors)} 正常运行")
print(f"\n--- 资产可见性 ---")
print(f" 发现的资产总数: {len(assets)}")
asset_types = {}
for asset in assets:
atype = asset.get("type", "Unknown")
asset_types[atype] = asset_types.get(atype, 0) + 1
for atype, count in sorted(asset_types.items(), key=lambda x: -x[1]):
print(f" {atype}: {count}")
protocols = set()
for asset in assets:
protocols.update(asset.get("protocols", []))
print(f" 已观察到的协议: {', '.join(sorted(protocols))}")
print(f"\n--- 威胁情报 ---")
groups = self.get_threat_groups()
print(f" 相关威胁组织: {len(groups)}")
for group in groups:
print(f" - {group.get('name')}: {group.get('description', '')[:80]}")
print(f" 目标行业: {', '.join(group.get('target_sectors', []))}")
print(f" 活跃程度: {group.get('activity_level', 'Unknown')}")
def generate_siem_integration_config(self, siem_type: str = "splunk"):
"""生成Dragos告警的SIEM集成配置。"""
configs = {
"splunk": {
"syslog_format": "CEF",
"syslog_port": 514,
"severity_mapping": {
"critical": 10,
"high": 7,
"medium": 5,
"low": 3,
"info": 1,
},
"index": "ot_security",
"sourcetype": "dragos:notification",
"fields": [
"notification_id", "severity", "category", "source_ip",
"destination_ip", "asset_name", "protocol", "description",
"mitre_ics_technique", "threat_group",
],
},
"sentinel": {
"connector_type": "Syslog-CEF",
"workspace_id": "<workspace-id>",
"log_analytics_table": "DragosOTAlerts_CL",
"severity_mapping": {
"critical": "High",
"high": "High",
"medium": "Medium",
"low": "Low",
"info": "Informational",
},
},
}
config = configs.get(siem_type, configs["splunk"])
print(f"\n--- {siem_type.upper()} 集成配置 ---")
print(json.dumps(config, indent=2))
return config
if __name__ == "__main__":
manager = DragosPlatformManager(
base_url="https://dragos-sitestore.plant.local",
api_key="your-api-key",
api_secret="your-api-secret",
verify_ssl=True,
)
manager.validate_deployment()
manager.generate_siem_integration_config("splunk")
print(f"\n--- 近期高严重性通知 ---")
notifications = manager.get_notifications(severity="high", limit=10)
for n in notifications:
print(f" [{n.get('severity', '').upper()}] {n.get('title', '无标题')}")
print(f" 类别: {n.get('category')} | 时间: {n.get('timestamp')}")
print(f" 资产: {', '.join(n.get('affected_assets', []))}")
print(f" MITRE ICS: {n.get('mitre_technique', 'N/A')}")
```
### 步骤 2:配置检测分析和知识包
```yaml
# Dragos平台检测配置
# 针对制造/能源环境调优
detection_configuration:
knowledge_pack:
auto_update: true
update_schedule: "weekly"
include_threat_groups:
- "VOLTZITE" # 针对能源行业,窃取OT图表
- "GRAPHITE" # 2025年新威胁组织,针对ICS
- "BAUXITE" # 2025年新威胁组织,针对ICS
- "CHERNOVITE" # 开发了PIPEDREAM/INCONTROLLER框架
- "ELECTRUM" # 与Industroyer/CrashOverride相关
- "KAMACITE" # 针对能源行业初始访问
detection_categories:
network_baseline:
enabled: true
learning_period_days: 30
alert_on:
- "new_communication_pair"
- "new_protocol_detected"
- "new_device_on_network"
- "protocol_anomaly"
threat_detection:
enabled: true
alert_on:
- "known_malware_ioc"
- "threat_group_ttp"
- "lateral_movement"
- "command_and_control"
- "data_exfiltration"
vulnerability_correlation:
enabled: true
alert_on:
- "active_exploitation_attempt"
- "vulnerability_with_public_exploit"
protocol_monitoring:
modbus:
monitor_writes: true
baseline_function_codes: true
baseline_register_ranges: true
dnp3:
monitor_control_commands: true
detect_firmware_updates: true
s7comm:
detect_cpu_stop: true
detect_program_download: true
opc_ua:
monitor_method_calls: true
detect_browsing: true
ethernet_ip:
monitor_cip_services: true
detect_firmware_flash: true
alert_routing:
critical:
notify: ["ot_soc_team", "plant_manager"]
siem_forward: true
auto_ticket: true
high:
notify: ["ot_soc_team"]
siem_forward: true
auto_ticket: true
medium:
siem_forward: true
low:
siem_forward: true
```
## 核心概念
| 术语 | 定义 |
|------|------|
| Dragos平台 | 专为OT网络安全打造的平台,具备ICS环境的资产可见性、威胁检测和漏洞管理能力 |
| 知识包(Knowledge Pack) | Dragos威胁情报更新包,包含针对ICS特有新威胁、恶意软件和漏洞利用的检测分析 |
| SiteStore | Dragos中央管理服务器,汇聚站点内所有已部署传感器的数据 |
| VOLTZITE | Dragos追踪的威胁组织,针对能源行业OT环境,窃取GIS数据和ICS网络图 |
| PIPEDREAM/INCONTROLLER | 由CHERNOVITE开发的模块化ICS攻击框架,针对Schneider/OMRON PLC和OPC UA服务器 |
| 邻域守护者(Neighborhood Keeper) | Dragos社区防御计划,在参与的OT环境之间共享匿名化威胁数据 |
## 常见场景
### 场景:检测能源公用事业中的VOLTZITE侦察活动
**背景**:部署在电力公司的Dragos传感器检测到异常的OPC UA浏览活动以及从工程师工作站窃取设备配置数据。
**处理方法**:
1. 查看Dragos通知中的MITRE ATT&CK ICS技术映射
2. 识别执行OPC UA浏览的源主机(检查是否为授权的工程师工作站)
3. 检查Dragos威胁情报中与VOLTZITE TTPs的关联
4. 检查被访问数据的范围(GIS数据、网络图、ICS配置文件)
5. 将被攻陷的工作站从OT网络隔离
6. 检查其他OT系统的横向移动指标
7. 如确认威胁组织归因,联系Dragos专业服务
8. 作为关键基础设施网络事件向CISA报告
**注意事项**:不要将OPC UA浏览告警视为误报——VOLTZITE专门使用这一技术进行预置。确保Dragos知识包是最新的以检测最新的VOLTZITE指标。在收集取证证据之前不要重新镜像被攻陷的工作站。
## 输出格式
```
DRAGOS OT监控部署报告
==========================================
站点: [站点名称]
日期: YYYY-MM-DD
传感器部署:
传感器总数: [数量]
正常运行: [数量]
覆盖率: [已监控OT网段的百分比]
资产可见性:
OT资产总数: [数量]
PLC: [数量] | HMI: [数量] | 网络设备: [数量]
协议: [列表]
威胁检测:
相关活跃威胁组织: [数量]
已加载检测分析: [数量]
告警(过去30天): [按严重程度分类的数量]
SIEM集成:
状态: [已连接/未连接]
已转发事件(过去24小时): [数量]
```Related Skills
performing-paste-site-monitoring-for-credentials
使用自动化抓取和关键词匹配技术,监控 Pastebin 和 GitHub Gists 等粘贴站点上的泄露凭证、API 密钥和敏感数据转储,实现早期泄露检测
performing-dark-web-monitoring-for-threats
暗网威胁监控涉及系统性扫描 Tor 隐藏服务、地下论坛、粘贴站点和暗网市场,以识别针对组织的威胁,包括泄露凭据、数据泄露、威胁行为者讨论、漏洞利用工具和预谋攻击。
performing-brand-monitoring-for-impersonation
监控域名、社交媒体、移动应用和暗网渠道中的品牌仿冒攻击,检测针对组织的网络钓鱼活动、虚假站点和未授权品牌使用行为。
monitoring-darkweb-sources
监控暗网论坛、市场、粘贴站点和勒索软件泄露站点,寻找组织资产提及、泄露凭据、威胁攻击和威胁行为者通信,提供早期预警情报。当建立暗网监控覆盖、调查特定数据泄露声明,或用暗网背景丰富事件调查时使用。适用于涉及暗网 OSINT、泄露站点监控、凭据暴露、Recorded Future 暗网或 Tor 隐藏服务情报的请求。
implementing-zero-trust-with-hashicorp-boundary
使用 HashiCorp Boundary 实现具备动态凭据代理、会话录制和 Vault 集成的身份感知零信任基础设施访问管理。
implementing-zero-trust-with-beyondcorp
使用身份感知代理(IAP,Identity-Aware Proxy)、上下文感知访问策略、设备信任验证和 Access Context Manager,部署 Google BeyondCorp Enterprise 零信任访问控制,对 GCP 资源和内部应用强制执行基于身份和安全态势的访问。
implementing-zero-trust-network-access
通过配置身份感知代理、微分段、基于条件访问策略的持续验证,以及在 AWS、Azure 和 GCP 环境中以 BeyondCorp 风格的架构替代传统 VPN 访问,在云环境中实施零信任网络访问(ZTNA)。
implementing-zero-trust-network-access-with-zscaler
使用 Zscaler 实施零信任网络访问(Zero Trust Network Access,ZTNA),通过 Zscaler Private Access(ZPA)配置应用分段、访问策略和连接器,替代传统 VPN 架构
implementing-zero-trust-in-cloud
本技能指导组织按照 NIST SP 800-207 和 Google BeyondCorp 原则在云环境中实施零信任(Zero Trust)架构,涵盖以身份为中心的访问控制、微分段(Micro-Segmentation)、持续验证、设备信任评估,以及部署身份感知代理(Identity-Aware Proxy)以消除 AWS、Azure 和 GCP 环境中的隐式网络信任。
implementing-zero-trust-for-saas-applications
使用 CASB、SSPM、条件访问策略、OAuth 应用治理和会话控制,为 SaaS 应用实施零信任访问控制, 对云托管服务强制执行身份验证、设备合规性检查和数据保护。
implementing-zero-trust-dns-with-nextdns
将 NextDNS 实施为零信任 DNS 过滤层,提供加密解析、威胁情报阻断、隐私保护,以及跨所有端点的组织策略执行。
implementing-zero-standing-privilege-with-cyberark
部署 CyberArk Secure Cloud Access,通过基于时间、权限和审批控制的即时访问,在混合云和多云环境中消除常设权限。