Files
Anthropic-Cybersecurity-Skills/skills/collecting-indicators-of-compromise/references/api-reference.md
T
mukul975 27c6414ca5 Add folder anatomy (scripts/agent.py + references/api-reference.md) for 648 cybersecurity skills
Complete skill folder anatomy across all cybersecurity skills:
- scripts/agent.py: 80-150 line Python agents using real libraries (impacket,
  boto3, azure-mgmt-*, kubernetes, pefile, yara, scapy, shodan, stix2, etc.)
- references/api-reference.md: real API documentation with method signatures
- LICENSE: MIT license for all skill folders
2026-03-10 21:02:12 +01:00

2.2 KiB

API Reference: IOC Collection Agent

Overview

Extracts indicators of compromise from text/files using regex patterns, enriches them via VirusTotal and MalwareBazaar APIs, assigns confidence scores, and exports as a STIX 2.1 bundle.

Dependencies

Package Version Purpose
requests >=2.28 API enrichment calls
stix2 >=3.0 STIX 2.1 bundle creation

CLI Usage

python agent.py --input-file incident_report.txt --vt-key <key> --output iocs.json
python agent.py --input-text "C2 at 185.220.101.42 hash a1b2c3..." --output iocs.json

Key Functions

extract_iocs_from_text(text)

Extracts IPv4 addresses, domains, SHA-256/MD5 hashes, and URLs using regex patterns.

extract_iocs_from_file(file_path)

Reads a file and delegates to extract_iocs_from_text.

enrich_ip_virustotal(ip_address, api_key)

Queries VirusTotal v3 API for IP reputation (malicious count, ASN, country).

enrich_hash_malwarebazaar(file_hash)

Queries MalwareBazaar for file hash metadata (family, type, tags).

enrich_domain_abuseipdb(domain, api_key)

Checks domain reputation via AbuseIPDB API (abuse confidence, report count).

score_ioc(ioc_type, enrichment_data)

Assigns confidence score (0-100) based on enrichment results and detection counts.

export_stix_bundle(iocs_with_scores, output_path)

Creates STIX 2.1 Indicator objects and exports as a Bundle JSON file.

External APIs Used

API Endpoint Auth Purpose
VirusTotal v3 /api/v3/ip_addresses/{ip} API key header IP reputation
MalwareBazaar https://mb-api.abuse.ch/api/v1/ None Hash lookup
AbuseIPDB /api/v2/check API key header Domain/IP reputation

IOC Types Supported

Type Regex Pattern STIX Pattern
IPv4 \b(?:\d{1,3}\.){3}\d{1,3}\b [ipv4-addr:value = '...']
Domain \b(?:[a-zA-Z0-9-]+\.)+[a-zA-Z]{2,}\b [domain-name:value = '...']
SHA-256 \b[a-fA-F0-9]{64}\b [file:hashes.'SHA-256' = '...']
MD5 \b[a-fA-F0-9]{32}\b [file:hashes.MD5 = '...']
URL https?://[^\s"'<>]+ [url:value = '...']