Skip to content
Skillpedia
Security35k · #5969

implementing-threat-modeling-with-mitre-attack

Helps your agent model threats using an attack tactics map. It identifies how adversaries act and where your defenses might be weak. It's useful for prioritizing security investments.

What it does

This tool helps understand how cybercriminals might attack your organization using a map called MITRE ATT&CK. It identifies which attacks are most likely and checks if you have defenses against them.

When to use it

  • ✓When planning security for a new system.
  • ✓To check if your current defenses protect against known threats.
  • ✓When deciding where to invest in new security tools.

Example of what to ask your AI

“Analyze the attack tactics of the APT29 group against our cloud infrastructure and suggest improvements to our detections.”

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/implementing-threat-modeling-with-mitre-attack/SKILL.md

Ready-to-paste message

Use this skill to help me: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-threat-modeling-with-mitre-attack/SKILL.md Read the SKILL.md file at that link and follow its instructions for my task.
How it works

The tool compares the tactics and techniques used by hacker groups (according to the MITRE ATT&CK map) with the protections your organization already has. This helps find security weaknesses.

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 implementing-threat-modeling-with-mitre-attack

Or download just the file:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-threat-modeling-with-mitre-attack/SKILL.md -o SKILL.md
Technical content (original SKILL.md)

Original text by the author, straight from GitHub.

Implementing Threat Modeling with MITRE ATT&CK

When to Use

Use this skill when:

  • SOC teams need to assess detection coverage against relevant threat actors and their TTPs
  • Security leadership requires threat-informed defense prioritization
  • New environments (cloud migration, OT integration) need detection strategy planning
  • Purple team exercises require structured adversary emulation based on threat models
  • Annual risk assessments need ATT&CK-based threat landscape analysis

Do not use as a one-time exercise — threat models must be continuously updated as adversary TTPs evolve and organizational attack surface changes.

Prerequisites

  • MITRE ATT&CK framework knowledge (Enterprise, ICS, Mobile, or Cloud matrices)
  • ATT&CK Navigator tool (web or local) for layer visualization
  • Current detection rule inventory mapped to ATT&CK technique IDs
  • Threat intelligence on adversary groups targeting your sector
  • Organizational asset inventory with criticality classifications

Workflow

Step 1: Identify Relevant Threat Actors

Research adversary groups targeting your sector using MITRE ATT&CK Groups:

import requests
import json

# Download ATT&CK STIX data
response = requests.get(
    "https://raw.githubusercontent.com/mitre/cti/master/enterprise-attack/enterprise-attack.json"
)
attack_data = response.json()

# Extract groups and their techniques
groups = {}
for obj in attack_data["objects"]:
    if obj["type"] == "intrusion-set":
        group_name = obj["name"]
        aliases = obj.get("aliases", [])
        description = obj.get("description", "")
        groups[group_name] = {
            "aliases": aliases,
            "description": description[:200],
            "techniques": []
        }

# Map techniques to groups via relationships
relationships = [obj for obj in attack_data["objects"] if obj["type"] == "relationship"]
techniques = {obj["id"]: obj for obj in attack_data["objects"]
              if obj["type"] == "attack-pattern"}

for rel in relationships:
    if rel["relationship_type"] == "uses":
        source = rel["source_ref"]
        target = rel["target_ref"]
        for group_name, group_data in groups.items():
            if source == group_data.get("id") and target in techniques:
                tech = techniques[target]
                ext_refs = tech.get("external_references", [])
                for ref in ext_refs:
                    if ref.get("source_name") == "mitre-attack":
                        group_data["techniques"].append(ref["external_id"])

# Example: Financial sector threat actors
financial_actors = ["FIN7", "FIN8", "Carbanak", "APT38", "Lazarus Group"]
for actor in financial_actors:
    if actor in groups:
        print(f"{actor}: {len(groups[actor]['techniques'])} techniques")
        print(f"  Top techniques: {groups[actor]['techniques'][:10]}")

Step 2: Build Threat Actor TTP Profile

Create ATT&CK Navigator layers for priority threat actors:

import json

def create_attack_layer(actor_name, techniques, color="#ff6666"):
    """Generate ATT&CK Navigator JSON layer for a threat actor"""
    layer = {
        "name": f"{actor_name} TTP Profile",
        "versions": {
            "attack": "15",
            "navigator": "5.0",
            "layer": "4.5"
        },
        "domain": "enterprise-attack",
        "description": f"Techniques associated with {actor_name}",
        "techniques": [
            {
                "techniqueID": tech_id,
                "tactic": "",
                "color": color,
                "comment": f"Used by {actor_name}",
                "enabled": True,
                "score": 1
            }
            for tech_id in techniques
        ],
        "gradient": {
            "colors": ["#ffffff", color],
            "minValue": 0,
            "maxValue": 1
        }
    }
    return layer

# Create layers for top threat actors
fin7_techniques = ["T1566.001", "T1059.001", "T1053.005", "T1547.001",
                    "T1078", "T1021.001", "T1003", "T1071.001", "T1041"]
layer = create_attack_layer("FIN7", fin7_techniques, "#ff6666")

with open("fin7_layer.json", "w") as f:
    json.dump(layer, f, indent=2)

Step 3: Map Current Detection Coverage

Export current detection rules mapped to ATT&CK:

--- Extract ATT&CK technique mappings from Splunk ES correlation searches
| rest /services/saved/searches
  splunk_server=local
| where match(title, "^(COR|ESCU|RBA):")

…
FAQ

What is MITRE ATT&CK?

It's a globally recognized catalog of cyber attack tactics and techniques, based on real-world observations.

What are TTPs?

It stands for Tactics, Techniques, and Procedures. It describes how attackers operate.

Do I need to be a security expert to use this?

Some cybersecurity knowledge is helpful, but the tool is designed to help clarify threats.

Details

Original description by the author

Implements threat modeling using the MITRE ATT&CK framework to map adversary TTPs against organizational assets, assess detection coverage gaps, and prioritize defensive investments. Use when SOC teams need to align detection engineering with threat landscape, conduct threat assessments for new environments, or justify security tool procurement. '

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularity

GitHub stars
35k
Ranking position
#5969
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