
Correlating Threat Campaigns
FreeIdentify and analyze unified threat campaigns across incidents.
Free · Opens the source repo
What Correlating Threat Campaigns does
The Correlating Threat Campaigns skill is designed for cybersecurity professionals seeking to enhance their threat intelligence capabilities. This skill correlates disparate security incidents, indicators of compromise (IOCs), and adversary behaviors over time and across organizations. By identifying commonalities among incidents, users can attribute activities to specific threat actors and extract shared indicators that improve detection and response strategies. This skill is particularly beneficial in environments where multiple incidents may appear unrelated but share underlying connections, such as overlapping IOCs or similar tactics, techniques, and procedures (TTPs).
To utilize this skill effectively, users should have access to a Threat Intelligence Platform (TIP) or Security Information and Event Management (SIEM) system with historical data, ideally spanning 90 days or more. The skill leverages the MISP correlation engine for event sharing and requires a graph analysis tool like Maltego or Neo4j to visualize relationships. The workflow involves collecting and normalizing events, identifying correlation pivot points across various dimensions, and calculating a correlation confidence score to assess the strength of the attribution.
The skill culminates in the production of a detailed campaign intelligence report, which includes key elements such as campaign names, timelines, attribution confidence, and detection guidance. This structured approach allows cybersecurity teams to build comprehensive reports that link adversary activities over time, facilitating better strategic decisions and resource allocation in threat detection and response efforts.
When to use it
Use this skill when analyzing multiple incidents that may share indicators or when sector-wide attack patterns need to be assessed across organizations.
When not to use it
Avoid using this skill for weak signal correlations to prevent misleading attributions and ineffective resource allocation.
What you can build with it
Cross-Organizational Analysis
When multiple organizations report similar incidents, this skill helps correlate their IOCs to identify a common threat campaign.
Building Campaign Reports
Use the skill to compile evidence and insights into a structured report that outlines adversary activities over time.
Enhancing Threat Detection
By identifying shared indicators across incidents, this skill aids in improving detection capabilities for future attacks.
How to install Correlating Threat Campaigns
View source1. Install with the skills CLI
npx skills add mukul975/anthropic-cybersecurity-skills/correlating-threat-campaigns --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by mukul975Correlating Threat Campaigns
When to Use
Use this skill when:
- Multiple unrelated-appearing incidents share IOCs (same C2 IP, same malware hash, similar TTPs)
- An ISAC partner shares indicators from an incident that match your own historical events
- Building a campaign report linking adversary activity over weeks or months to a single operation
Do not use this skill to force correlation based on weak signals — false campaign attribution misleads defenders and wastes resources on incorrect threat models.
Prerequisites
- TIP or SIEM with historical indicator and event data (90+ days recommended)
- MISP correlation engine enabled with event sharing configured
- Graph analysis tool (Maltego, Neo4j, or OpenCTI) for relationship visualization
- Reference to MITRE ATT&CK intrusion set and campaign objects for structuring output
Workflow
Step 1: Collect and Normalize Events
Gather all candidate events for correlation from:
- Internal SIEM (raw events, alert history)
- TIP (historical indicators and events)
- ISAC sharing (partner-submitted events in MISP or TAXII)
- Commercial intelligence (Recorded Future, Mandiant, CrowdStrike reports)
Normalize all events to STIX 2.1 schema with consistent timestamp (UTC), indicator types, and confidence scores. Ensure all indicators have source attribution and collection date.
Step 2: Identify Correlation Pivot Points
Apply systematic pivot analysis across four dimensions:
Infrastructure pivots:
- Same IP address or /24 subnet across events
- Same domain registrant email or WHOIS organization
- Same ASN or hosting provider with same account fingerprint
- Same SSL certificate fingerprint or serial number across C2 domains
Capability pivots:
- Same malware hash or YARA signature match
- Same C2 communication protocol (Cobalt Strike beacon config, Sliver implant parameters)
- Same exploit code or weaponized document template
- Same obfuscation method or packer fingerprint
Temporal pivots:
- Events occurring within same time window (operational hours suggesting same timezone)
- Sequential events with logical kill chain progression
- Malware compilation timestamps clustering in same date range
Victimology pivots:
- Same target sector (healthcare, energy, financial)
- Same target geography
- Same targeted technology (specific ERP vendor, VPN appliance brand)
Step 3: Calculate Correlation Confidence
Apply weighted scoring for campaign attribution:
def calculate_campaign_confidence(events: list) -> float:
scores = []
# Infrastructure overlap (highest weight — most discriminating)
infra_overlap = count_shared_infra(events) / len(events)
scores.append(infra_overlap * 40)
# Capability overlap (high weight — TTPs are durable)
capability_overlap = count_shared_ttps(events) / len(events)
scores.append(capability_overlap * 35)
# Temporal proximity (moderate weight)
temporal_score = assess_temporal_clustering(events)
scores.append(temporal_score * 15)
# Victimology alignment (lower weight — many actors target same sector)
victim_score = assess_victim_pattern(events)
scores.append(victim_score * 10)
total = sum(scores)
if total >= 70: return "HIGH"
elif total >= 45: return "MEDIUM"
else: return "LOW"
Step 4: Build Campaign Graph
In OpenCTI or Maltego, construct campaign graph:
- Campaign object (STIX) as central node
- Intrusion Set → uses → Malware objects
- Intrusion Set → uses → Infrastructure objects
- Intrusion Set → targets → Identity objects (victim organizations/sectors)
- Campaign → attributed-to → Threat Actor (if attribution achieved)
- Indicators → indicates → Malware (linking technical observables to capabilities)
Label each relationship with evidence reference and confidence.
Step 5: Produce Campaign Intelligence Report
Structure the campaign report:
- Campaign name: Assign descriptive codename based on targeting theme or tooling
- Timeline: First/last observed dates with activity phases
- Attribution: Suspected threat actor with confidence level
- Target profile: Industry verticals, geographies, organization sizes
- TTPs summary: ATT&CK Navigator heatmap for campaign-specific techniques
- Shared indicators: IOCs that span multiple incidents (highest confidence for blocking)
- Detection guidance: Sigma/YARA rules specific to this campaign
Key Concepts
| Term | Definition |
|---|---|
| Campaign | STIX object representing a grouping of adversarial behaviors with common objectives over a defined time period |
| Intrusion Set | STIX object grouping related intrusion activity by common objectives, even when actor identity is uncertain |
| Pivot | Using a single data point (IOC, infrastructure, TTP) to discover related events or adversary artifacts |
| Clustering | Machine learning or manual grouping of incidents based on feature similarity to identify campaign boundaries |
| False Correlation | Incorrect linking of unrelated incidents due to shared infrastructure (CDNs, shared hosting) or common tools |
Tools & Systems
- MISP Correlation Engine: Automatic correlation of events sharing attribute values across the MISP instance and federated instances
- OpenCTI Graph: Interactive relationship graph for visualizing campaign linkages with STIX object types
- Maltego: Link analysis for infrastructure and capability pivoting across multiple data sources
- Neo4j: Graph database with Cypher queries for large-scale campaign correlation (millions of events)
Common Pitfalls
- CDN/Shared hosting false positives: Cloudflare, AWS CloudFront, and bulletproof hosters serve multiple threat actors. Shared IP alone does not establish campaign linkage.
- Common malware conflation: Multiple threat actors use Cobalt Strike. Shared capability does not indicate same actor without additional corroboration.
- Premature attribution: Forcing campaign-to-actor attribution before evidence threshold is reached produces incorrect intelligence that persists in reports.
- Missing temporal analysis: Events from different years may share infrastructure that was recycled by a different actor, not the same campaign.
Frequently asked questions about Correlating Threat Campaigns
Similar skills
Asset Criticality Scoring for Vulns
Prioritize vulnerabilities based on asset criticality.
Performing Alert Triage with Elastic SIEM
Streamline alert triage processes in Elastic Security.
Active Directory Vulnerability Assessment
Secure your Active Directory with comprehensive assessments.
Active Directory Investigation
Streamline your Active Directory compromise investigations.
Parsing Artifacts with Eric Zimmerman Tools
Efficiently parse Windows forensic artifacts for analysis.
Operationalizing MISP Threat Feeds
Enhance threat detection with curated MISP feeds.
