performing-threat-landscape-assessment-for-sector

Conduct a sector-specific threat landscape assessment by analyzing threat actor targeting patterns, common attack vectors, and industry-specific vulnerabilities to inform organizational risk management.

16 stars

Best use case

performing-threat-landscape-assessment-for-sector is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Conduct a sector-specific threat landscape assessment by analyzing threat actor targeting patterns, common attack vectors, and industry-specific vulnerabilities to inform organizational risk management.

Teams using performing-threat-landscape-assessment-for-sector should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/performing-threat-landscape-assessment-for-sector/SKILL.md --create-dirs "https://raw.githubusercontent.com/plurigrid/asi/main/plugins/asi/skills/performing-threat-landscape-assessment-for-sector/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/performing-threat-landscape-assessment-for-sector/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How performing-threat-landscape-assessment-for-sector Compares

Feature / Agentperforming-threat-landscape-assessment-for-sectorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Conduct a sector-specific threat landscape assessment by analyzing threat actor targeting patterns, common attack vectors, and industry-specific vulnerabilities to inform organizational risk management.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Performing Threat Landscape Assessment for Sector

## Overview

A sector-specific threat landscape assessment analyzes the cyber threat environment facing a particular industry vertical (healthcare, financial services, energy, government, manufacturing) by examining which threat actors target the sector, their preferred attack vectors and TTPs, common vulnerabilities exploited, historical incident data, and emerging threats. This produces actionable intelligence for risk management, security investment prioritization, and board-level reporting.


## When to Use

- When conducting security assessments that involve performing threat landscape assessment for sector
- When following incident response procedures for related security events
- When performing scheduled security testing or auditing activities
- When validating security controls through hands-on testing

## Prerequisites

- Python 3.9+ with `attackcti`, `requests`, `pandas`, `matplotlib` libraries
- Access to threat intelligence feeds (AlienVault OTX, MISP, vendor reports)
- MITRE ATT&CK knowledge base for TTP mapping
- Industry-specific ISAC membership (FS-ISAC, H-ISAC, E-ISAC, etc.)
- Understanding of sector-specific regulatory requirements

## Key Concepts

### Sector Targeting Analysis

Different sectors face different threat profiles. Financial services face sophisticated nation-state actors (Lazarus Group) and cybercriminal groups focused on financial fraud. Healthcare faces ransomware groups exploiting urgency and legacy systems. Energy and critical infrastructure face nation-state groups (TEMP.Veles, Sandworm) with destructive capabilities. Government faces espionage-focused APTs (APT29, APT28, Turla).

### Threat Landscape Components

A comprehensive assessment includes: threat actor profiling (groups targeting the sector), attack vector analysis (initial access methods observed), TTP mapping (techniques commonly used against sector), vulnerability landscape (CVEs commonly exploited), incident trend analysis (breach frequency, impact, recovery time), and emerging threats (new groups, evolving techniques, supply chain risks).

### Intelligence Sources

Sector-specific intelligence comes from ISACs (Information Sharing and Analysis Centers), government advisories (CISA, FBI, NSA), vendor threat reports (CrowdStrike Annual Threat Report, Mandiant M-Trends, Verizon DBIR), and academic research on sector-specific attacks.

## Workflow

### Step 1: Identify Threat Actors Targeting the Sector

```python
from attackcti import attack_client
import json

class SectorThreatAssessment:
    SECTOR_GROUPS = {
        "financial": ["FIN7", "FIN8", "FIN11", "Carbanak", "Lazarus Group",
                       "Cobalt Group", "TA505", "GOLD SOUTHFIELD"],
        "healthcare": ["FIN12", "Ryuk", "Conti", "Wizard Spider",
                        "GOLD ULRICK", "Vice Society"],
        "energy": ["TEMP.Veles", "Sandworm Team", "Dragonfly",
                    "XENOTIME", "ERYTHRITE", "Berserk Bear"],
        "government": ["APT29", "APT28", "Turla", "Gamaredon Group",
                        "Mustang Panda", "APT41", "Lazarus Group"],
        "manufacturing": ["APT41", "TEMP.Veles", "Dragonfly",
                           "HEXANE", "MAGNALLIUM"],
        "technology": ["APT41", "Lazarus Group", "APT10",
                        "HAFNIUM", "Winnti Group"],
    }

    def __init__(self, sector):
        self.sector = sector.lower()
        self.lift = attack_client()
        self.groups = self.lift.get_groups()
        self.assessment = {
            "sector": sector,
            "threat_actors": [],
            "common_techniques": {},
            "attack_vectors": {},
            "risk_summary": {},
        }

    def analyze_sector_actors(self):
        """Analyze threat actors known to target this sector."""
        target_groups = self.SECTOR_GROUPS.get(self.sector, [])
        actor_profiles = []

        for group_name in target_groups:
            group = next(
                (g for g in self.groups
                 if g.get("name", "").lower() == group_name.lower()
                 or group_name.lower() in [a.lower() for a in g.get("aliases", [])]),
                None
            )
            if group:
                group_id = ""
                for ref in group.get("external_references", []):
                    if ref.get("source_name") == "mitre-attack":
                        group_id = ref.get("external_id", "")
                        break

                techniques = []
                if group_id:
                    techs = self.lift.get_techniques_used_by_group(group_id)
                    for t in techs:
                        for ref in t.get("external_references", []):
                            if ref.get("source_name") == "mitre-attack":
                                techniques.append({
                                    "id": ref.get("external_id", ""),
                                    "name": t.get("name", ""),
                                })
                                break

                profile = {
                    "name": group.get("name", ""),
                    "aliases": group.get("aliases", []),
                    "description": group.get("description", "")[:300],
                    "attack_id": group_id,
                    "technique_count": len(techniques),
                    "techniques": techniques[:20],
                }
                actor_profiles.append(profile)
                print(f"  [+] {group.get('name')}: {len(techniques)} techniques")

        self.assessment["threat_actors"] = actor_profiles
        print(f"[+] Profiled {len(actor_profiles)} threat actors for {self.sector}")
        return actor_profiles

    def identify_common_techniques(self):
        """Find the most commonly used techniques across sector actors."""
        from collections import Counter
        technique_counter = Counter()

        for actor in self.assessment["threat_actors"]:
            for tech in actor.get("techniques", []):
                technique_counter[f"{tech['id']}:{tech['name']}"] += 1

        common = technique_counter.most_common(20)
        self.assessment["common_techniques"] = [
            {
                "technique": tech.split(":")[0],
                "name": tech.split(":")[1] if ":" in tech else "",
                "actor_count": count,
                "actors_using": [
                    a["name"] for a in self.assessment["threat_actors"]
                    if any(t["id"] == tech.split(":")[0] for t in a.get("techniques", []))
                ],
            }
            for tech, count in common
        ]

        print(f"\n=== Top Techniques for {self.sector.upper()} ===")
        for entry in self.assessment["common_techniques"][:10]:
            print(f"  {entry['technique']} {entry['name']}: "
                  f"used by {entry['actor_count']} groups")

        return self.assessment["common_techniques"]

assessment = SectorThreatAssessment("financial")
assessment.analyze_sector_actors()
assessment.identify_common_techniques()
```

### Step 2: Analyze Attack Vectors and Initial Access

```python
def analyze_attack_vectors(assessment):
    """Analyze initial access vectors common for the sector."""
    initial_access_techniques = [
        t for t in assessment.assessment["common_techniques"]
        if t["technique"].startswith("T1566") or t["technique"].startswith("T1190")
        or t["technique"].startswith("T1133") or t["technique"].startswith("T1078")
        or t["technique"].startswith("T1195")
    ]

    # Supplement with known sector-specific vectors
    sector_vectors = {
        "financial": {
            "primary": ["Spearphishing (T1566)", "Exploit Public-Facing App (T1190)",
                        "Valid Accounts (T1078)", "Supply Chain Compromise (T1195)"],
            "emerging": ["MFA Fatigue/Push Bombing", "QR Code Phishing (Quishing)",
                         "Business Email Compromise", "API Key Theft"],
        },
        "healthcare": {
            "primary": ["Spearphishing (T1566)", "Exploit Public-Facing App (T1190)",
                        "External Remote Services (T1133)", "Valid Accounts (T1078)"],
            "emerging": ["IoMT Device Exploitation", "Telehealth Platform Attacks",
                         "Medical Device Firmware Attacks", "Supply Chain via EHR Vendors"],
        },
        "energy": {
            "primary": ["Spearphishing (T1566)", "Exploit Public-Facing App (T1190)",
                        "External Remote Services (T1133)", "Supply Chain Compromise (T1195)"],
            "emerging": ["OT/ICS Protocol Exploitation", "Remote Access to SCADA",
                         "Engineering Workstation Compromise", "Vendor VPN Exploitation"],
        },
    }

    vectors = sector_vectors.get(assessment.sector, {})
    assessment.assessment["attack_vectors"] = vectors
    return vectors
```

### Step 3: Generate Sector Threat Report

```python
def generate_sector_report(assessment):
    data = assessment.assessment
    report = f"""# {data['sector'].title()} Sector Threat Landscape Assessment
Generated: {datetime.datetime.now().isoformat()}

## Executive Summary
This assessment analyzes the cyber threat landscape for the {data['sector']} sector,
identifying {len(data['threat_actors'])} active threat groups, their preferred techniques,
and recommended defensive priorities.

## Threat Actor Summary
| Actor | ATT&CK ID | Techniques | Key Focus |
|-------|-----------|------------|-----------|
"""
    for actor in data["threat_actors"]:
        report += (f"| {actor['name']} | {actor['attack_id']} "
                   f"| {actor['technique_count']} | {actor['description'][:60]}... |\n")

    report += f"""
## Most Common Techniques
| Rank | Technique | Name | Groups Using |
|------|-----------|------|-------------|
"""
    for i, tech in enumerate(data.get("common_techniques", [])[:15], 1):
        actors = ", ".join(tech["actors_using"][:3])
        report += f"| {i} | {tech['technique']} | {tech['name']} | {actors} |\n"

    vectors = data.get("attack_vectors", {})
    report += f"""
## Attack Vectors
### Primary Vectors
"""
    for v in vectors.get("primary", []):
        report += f"- {v}\n"
    report += "\n### Emerging Vectors\n"
    for v in vectors.get("emerging", []):
        report += f"- {v}\n"

    report += """
## Recommendations
1. Prioritize detections for the top 10 techniques used by sector-targeting groups
2. Conduct threat-informed red team exercises mimicking identified actors
3. Join sector ISAC for real-time threat sharing
4. Implement controls for identified initial access vectors
5. Review supply chain security posture for sector-specific risks
"""
    with open(f"threat_landscape_{data['sector']}.md", "w") as f:
        f.write(report)
    print(f"[+] Sector report saved: threat_landscape_{data['sector']}.md")

generate_sector_report(assessment)
```

## Validation Criteria

- Sector-specific threat actors identified and profiled
- Common techniques across actors analyzed and ranked
- Attack vectors mapped for the target sector
- Emerging threats identified based on recent intelligence
- Comprehensive sector threat report generated
- Recommendations actionable for security investment decisions

## References

- [MITRE ATT&CK Groups](https://attack.mitre.org/groups/)
- [Verizon DBIR](https://www.verizon.com/business/resources/reports/dbir/)
- [CrowdStrike Global Threat Report](https://www.crowdstrike.com/global-threat-report/)
- [FS-ISAC Financial Sector](https://www.fsisac.com/)
- [H-ISAC Healthcare Sector](https://h-isac.org/)
- [CyCognito: Threat Intelligence Lifecycle](https://www.cycognito.com/learn/threat-intelligence/)

Related Skills

waddington-landscape

16
from plurigrid/asi

Waddington's epigenetic landscape: cell fate as gradient flow on potential surfaces, connecting developmental biology to dynamical systems, Schrödinger bridges, and fractional diffusion

tracking-threat-actor-infrastructure

16
from plurigrid/asi

Threat actor infrastructure tracking involves monitoring and mapping adversary-controlled assets including command-and-control (C2) servers, phishing domains, exploit kit hosts, bulletproof hosting, a

profiling-threat-actor-groups

16
from plurigrid/asi

Develops comprehensive threat actor profiles for APT groups, criminal organizations, and hacktivist collectives by aggregating TTP documentation, historical campaign data, tooling fingerprints, and attribution indicators from multiple intelligence sources. Use when briefing executives on sector-specific threats, updating threat model assumptions, or prioritizing defensive controls against specific adversaries. Activates for requests involving MITRE ATT&CK Groups, Mandiant APT profiles, CrowdStrike adversary naming, or sector-specific threat briefings.

performing-yara-rule-development-for-detection

16
from plurigrid/asi

Develop precise YARA rules for malware detection by identifying unique byte patterns, strings, and behavioral indicators in executable files while minimizing false positives.

performing-wireless-security-assessment-with-kismet

16
from plurigrid/asi

Conduct wireless network security assessments using Kismet to detect rogue access points, hidden SSIDs, weak encryption, and unauthorized clients through passive RF monitoring.

performing-wireless-network-penetration-test

16
from plurigrid/asi

Execute a wireless network penetration test to assess WiFi security by capturing handshakes, cracking WPA2/WPA3 keys, detecting rogue access points, and testing wireless segmentation using Aircrack-ng and related tools.

performing-windows-artifact-analysis-with-eric-zimmerman-tools

16
from plurigrid/asi

Perform comprehensive Windows forensic artifact analysis using Eric Zimmerman's open-source EZ Tools suite including KAPE, MFTECmd, PECmd, LECmd, JLECmd, and Timeline Explorer for parsing registry hives, prefetch files, event logs, and file system metadata.

performing-wifi-password-cracking-with-aircrack

16
from plurigrid/asi

Captures WPA/WPA2 handshakes and performs offline password cracking using aircrack-ng, hashcat, and dictionary attacks during authorized wireless security assessments to evaluate passphrase strength and wireless network security posture.

performing-web-cache-poisoning-attack

16
from plurigrid/asi

Exploiting web cache mechanisms to serve malicious content to other users by poisoning cached responses through unkeyed headers and parameters during authorized security tests.

performing-web-cache-deception-attack

16
from plurigrid/asi

Execute web cache deception attacks by exploiting path normalization discrepancies between CDN caching layers and origin servers to cache and retrieve sensitive authenticated content.

performing-web-application-vulnerability-triage

16
from plurigrid/asi

Triage web application vulnerability findings from DAST/SAST scanners using OWASP risk rating methodology to separate true positives from false positives and prioritize remediation.

performing-web-application-scanning-with-nikto

16
from plurigrid/asi

Nikto is an open-source web server and web application scanner that tests against over 7,000 potentially dangerous files/programs, checks for outdated versions of over 1,250 servers, and identifies ve