Skip to content

Guide · Agent skill

How to use the Automated IOC Enrichment agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The automating-ioc-enrichment skill teaches an AI agent to take raw indicators of compromise, such as IP addresses, domains, URLs and file hashes, and look them up across several threat intelligence services. The agent combines the results into one confidence score and a standard summary so an analyst sees context already attached to an alert. This guide covers installing the skill, triggering it, what it needs, and the safety points the skill itself stresses.

Automated IOC Enrichmentmukul975/Anthropic-Cybersecurity-Skills · Apache-2.0

Quick start

  1. 1Download and unzip the skill. Download the ZIP from this page and unzip it. Place the skill folder in ~/.claude/skills/ for personal use or in a project's .claude/skills/ folder.
  2. 2Or upload it in the Claude apps. Open Settings, go to Capabilities, then Skills, and upload the ZIP.
  3. 3Gather your API keys. Get keys for VirusTotal, AbuseIPDB and Shodan, and access to at least one threat intelligence platform such as MISP or OpenCTI.
  4. 4Prepare Python. Use Python 3.9 or newer with the requests and stix2 libraries installed.
  5. 5Ask for a specific task. Describe the IOC type, the sources to query and the output you want, using words such as enrichment, IOC or SOAR.
  6. 6Review the scoring and routing. Check the composite score formula and any auto-close rules against your own risk tolerance before use.
  7. 7Test with a rate limit in mind. Run a small batch first so you stay within the free-tier limit of about 4 VirusTotal requests per minute.

What is an agent skill and what does this one do?

An agent skill is a folder containing a SKILL.md file and optional scripts and reference files. When a request matches the skill's description, the agent loads its instructions and follows them. This skill is focused on incident triage: it guides the agent through designing an enrichment workflow, writing Python enrichment functions, building SOAR playbooks, and handling API rate limits and errors.

The skill's own guidance is that enrichment should inform human decisions rather than trigger automatic blocks, because enrichment scores can be wrong.

  • Classifies each IOC by type and routes it to the matching lookups
  • Queries services such as VirusTotal, AbuseIPDB, Shodan and MISP
  • Combines results into a single composite confidence score
  • Writes enrichment results to the alert so the analyst sees them first

Install the skill from the ZIP or the Claude apps

Download the skill ZIP from this page and unzip it. For a personal setup, place the unzipped skill folder in ~/.claude/skills/. For a single project, place it in that project's .claude/skills/ folder.

You can also upload the skill through the Claude apps. Open Settings, go to Capabilities, then Skills, and upload the ZIP there.

  • Personal install: ~/.claude/skills/
  • Project install: .claude/skills/ inside your project
  • Apps: Settings, then Capabilities, then Skills

Check what you need before you start

The skill assumes you already have API access. Most of the workflow depends on keys for threat intelligence services, and the free VirusTotal tier is rate limited to about 4 requests per minute. Without those keys, the lookups in the example code will not return data.

The skill's Python examples use the requests and stix2 libraries and need Python 3.9 or newer. A SOAR platform is optional: the skill mentions Cortex XSOAR, Splunk SOAR, Tines and n8n.

  • Python 3.9+ with requests and stix2 installed
  • VirusTotal API key (free tier is about 4 requests per minute)
  • AbuseIPDB API key
  • Shodan API key
  • At least one threat intelligence platform such as MISP or OpenCTI
  • Optional: a SOAR platform such as Cortex XSOAR, Splunk SOAR, Tines or n8n

Trigger the skill with natural requests

You do not need to name the skill. Describe the task in plain terms that mention enrichment, IOCs, SOAR or the tools involved. The skill's description lists triggers such as SOAR enrichment, Cortex XSOAR, Splunk SOAR, TheHive, Python enrichment pipelines and automated IOC processing.

Be specific about the input and the output you want. Naming the IOC types and the sources to check gives the agent what it needs to write useful code.

  • Write a Python function that enriches an IP address using VirusTotal, AbuseIPDB and Shodan.
  • Design a Cortex XSOAR playbook that enriches SIEM alerts with VirusTotal and MISP data before analysts see them.
  • Help me bulk-enrich IOCs from a phishing email submission queue and score each one.
  • Plan rate limiting for a pipeline that calls the VirusTotal free tier.

Use the enrichment functions and scoring

The skill's example code defines an EnrichmentResult record and enrichment functions for IPs and file hashes. The IP function queries VirusTotal and AbuseIPDB and computes a composite score: VirusTotal's malicious ratio contributes up to 60 points and the AbuseIPDB confidence contributes up to 40, capped at 100.

The example shows a Shodan key as a parameter of the IP function, but the code shown does not call Shodan. Check the function body before you rely on Shodan data. The skill's guidance is to treat the score as one input to a human decision.

  • Signature: enrich_ip(ip, vt_key, abuse_key, shodan_key)
  • Hash lookups use VirusTotal files and return a score based on the malicious ratio
  • Requests are spaced by a short delay to respect the free-tier limit
def enrich_ip(ip: str, vt_key: str, abuse_key: str, shodan_key: str) -> EnrichmentResult:

Build a SOAR playbook and handle rate limits

For SOAR use, the skill describes a Cortex XSOAR playbook: a SIEM alert triggers the flow, IOCs are extracted with regex, lookups run in parallel, a Python task computes the score, and results are written to the alert context. The skill's example routes scores of 70 or more to a high priority queue, 40 to 69 to a medium queue, and below 40 to auto-close with a note.

Review that last routing rule before you use it. Automatically closing low-scoring alerts is a decision that a person should check, since the skill itself warns that scores can be wrong.

For failures, the skill includes a rate-limit decorator and a retry wrapper for HTTP 429 responses that waits for the Retry-After header. As written, the retry wrapper does not return a response after its final attempt, so add that handling before using it.

  • Trigger: alert created in the SIEM, by webhook or polling
  • Extract IOCs with regex, then run enrichment tasks in parallel
  • Track latency, API success rate, analyst overrides and API call volume

What people use it for

  • Pre-populating SIEM alerts with VirusTotal, AbuseIPDB and MISP context so analysts start with more information
  • Bulk-enriching IOCs from phishing email submissions in a Python pipeline
  • Standardizing enrichment output so every analyst sees the same summary fields
  • Designing a Cortex XSOAR or Tines playbook that fans out lookups in parallel

Frequently asked questions

Is the Automated IOC Enrichment skill free?

The skill is licensed under Apache-2.0. The services it calls are separate: the skill's source notes that the VirusTotal free tier is limited to about 4 requests per minute, and most of the workflow depends on API keys for paid or rate-limited services.

What do I need to install the automating-ioc-enrichment skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder. You can also upload the ZIP in the Claude apps under Settings, then Capabilities, then Skills.

What API keys does the skill require?

The source lists VirusTotal, AbuseIPDB and Shodan keys, plus at least one threat intelligence platform such as MISP or OpenCTI. Without these, the enrichment lookups cannot run.

Does the skill block malicious IPs automatically?

No, the skill advises against fully automatic blocking without human review. Its guidance is that enrichment should inform decisions, since scores can be wrong. The example playbook does auto-close low-scoring alerts, so review that rule before using it.

Does the skill run code on my machine?

Yes. The skill runs scripts and uses the network. It includes scripts/agent.py and makes calls to external threat intelligence APIs, so review the scripts and keep your API keys private before running them.

How is this different from a general web lookup or other enrichment tools?

The skill is specific to incident triage workflows. It is not meant for general web lookups. It focuses on combining several threat intelligence sources into one score and a standard summary for analysts, and on building SOAR playbooks.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

This skill suits security engineers building SOAR playbooks and analysts or developers writing Python pipelines who already hold threat intelligence API keys. If you want fully automatic blocking, or you have no API accounts and need general web lookups, pick a different tool.

Download the skill