Skip to content
Skillpedia
Analysis & spreadsheets35k · #6115

performing-ot-vulnerability-assessment-with-claroty

Helps your agent find vulnerabilities in industrial networks using the Claroty platform.

What it does

This tool helps find and prioritize security flaws in industrial equipment (OT) using the Claroty platform. It identifies which equipment is vulnerable and the associated risk, helping decide what to fix first.

When to use it

  • ✓When performing scheduled security checks on industrial systems.
  • ✓When installing the Claroty platform for the first time.
  • ✓When checking if new security flaws affect your equipment.

Example of what to ask your AI

“Check for vulnerabilities in our industrial control equipment and tell me which are the most urgent to fix.”

Want more? Open the sections below.

How to use

The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.

Skill link

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-ot-vulnerability-assessment-with-claroty/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/performing-ot-vulnerability-assessment-with-claroty/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool collects information about your industrial equipment and compares it with lists of known security flaws. It then calculates a risk level for each flaw found, considering the equipment's importance.

Installation

Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.

In the terminal (Claude Code, Codex, Cursor), in your project folder:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-ot-vulnerability-assessment-with-claroty

Or download just the file:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/performing-ot-vulnerability-assessment-with-claroty/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Performing OT Vulnerability Assessment with Claroty

When to Use

  • When conducting scheduled OT vulnerability assessments per IEC 62443 or NERC CIP requirements
  • When deploying Claroty xDome for the first time and performing initial asset discovery and risk assessment
  • When correlating newly published ICS-CERT advisories against your OT asset inventory
  • When prioritizing OT vulnerability remediation with limited maintenance windows
  • When generating compliance evidence for CIP-010-4 vulnerability assessment requirements

Do not use for active vulnerability scanning of PLCs and safety systems (see performing-ot-network-security-assessment for passive approaches), for IT-only vulnerability management (see standard vulnerability scanners), or for penetration testing (see performing-ics-penetration-testing).

Prerequisites

  • Claroty xDome or CTD (Continuous Threat Detection) deployed with sensors on OT network
  • Network SPAN/TAP access for passive asset discovery
  • CISA ICS-CERT advisory subscription for vulnerability tracking
  • Asset inventory with firmware versions for all OT devices
  • Change management process for patch deployment during maintenance windows

Workflow

Step 1: Configure Asset Discovery and Vulnerability Correlation

Configure Claroty to perform passive and active-safe discovery to build complete asset inventory with firmware versions for vulnerability correlation.

#!/usr/bin/env python3
"""OT Vulnerability Assessment Manager.

Correlates OT asset inventory with ICS-CERT advisories and CVE data
to identify, prioritize, and track OT vulnerabilities. Designed to
integrate with Claroty xDome API or standalone operation.
"""

import json
import sys
from collections import defaultdict
from dataclasses import dataclass, field, asdict
from datetime import datetime

import requests


@dataclass
class OTAsset:
    asset_id: str
    name: str
    vendor: str
    model: str
    firmware_version: str
    asset_type: str  # PLC, HMI, RTU, historian, switch, etc.
    purdue_level: str
    ip_address: str
    protocol: str
    criticality: str  # critical, high, medium, low
    zone: str


@dataclass
class OTVulnerability:
    vuln_id: str
    cve_id: str
    title: str
    severity: str  # critical, high, medium, low
    cvss_score: float
    affected_vendor: str
    affected_product: str
    affected_versions: str
    description: str
    ics_cert_advisory: str = ""
    remediation: str = ""
    patch_available: bool = False
    compensating_controls: str = ""


@dataclass
class RiskAssessment:
    asset: OTAsset
    vulnerability: OTVulnerability
    risk_score: float = 0.0
    risk_rating: str = ""
    exploitability: str = ""
    operational_impact: str = ""
    compensating_controls: list = field(default_factory=list)
    remediation_priority: int = 0


class OTVulnerabilityAssessment:
    """OT vulnerability assessment and prioritization engine."""

    def __init__(self):
        self.assets = []
        self.vulnerabilities = []
        self.risk_assessments = []

    def load_assets(self, assets_data):
        """Load asset inventory from Claroty export or manual inventory."""
        for a in assets_data:
            self.assets.append(OTAsset(**a))
        print(f"[*] Loaded {len(self.assets)} OT assets")

    def fetch_ics_advisories(self):
        """Fetch latest ICS-CERT advisories from CISA."""
        print("[*] Fetching ICS-CERT advisories from CISA...")
        try:
            # CISA Known Exploited Vulnerabilities catalog
            url = "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json"
            resp = requests.get(url, timeout=30)
            resp.raise_for_status()
            data = resp.json()

            ics_vulns = []
            for vuln in data.get("vulnerabilities", []):
                # Filter for ICS-relevant vendors
                ics_vendors = [
                    "siemens", "schneider", "rockwell", "honeywell",
                    "abb", "ge", "emerson", "yokogawa", "omron",
                    "mitsubishi", "phoenix", "moxa", "advantech",
                ]
                vendor = vuln.get("vendorProject", "").lower()
                if any(v in vendor for v in ics_vendors):
                    ics_vulns.append(vuln)

            print(f"  Found {len(ics_vulns)} ICS-relevant known exploited vulnerabilities")
            return ics_vulns

        except Exception as e:

…
FAQ

What are 'OT devices'?

OT stands for 'Operational Technology'. These are the computers and devices that control machinery and processes in industrial environments, like factories or power plants.

What is Claroty?

Claroty is a company that provides a security platform to protect industrial equipment and networks from cyber threats.

What are 'vulnerabilities'?

Vulnerabilities are flaws or weaknesses in a system that can be exploited by hackers to cause damage or steal information.

Details

Original description by the author

Perform OT vulnerability assessments using the Claroty xDome platform for asset discovery, risk scoring, and vulnerability correlation, combining passive traffic-based identification and active safe device querying with CVE/ICS-CERT advisory correlation for remediation prioritization. Use for scheduled IEC 62443 or NERC CIP OT vulnerability assessments, initial xDome deployment, or generating CIP-

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularity

GitHub stars
35k
Ranking position
#6115
License
Apache-2.0
Updated
8/31/2026

Is this skill useful?

0

Sign in to vote.

Comments

  • …

More skills from this repository

Similar skills