- Add validated mitre_attack frontmatter to all 754 skills (286 distinct
techniques), verified against MITRE ATT&CK v19.1 via the official
mitreattack-python library: 0 revoked, deprecated, or invalid IDs
- Curate precise per-skill technique IDs for forensics, malware-analysis,
threat-intel, and red-team skills (e.g. DCSync -> T1003.006,
Kerberoasting -> T1558.003, Pass-the-Ticket -> T1550.003)
- Reconcile v19.1 tactic restructuring: Defense Evasion split into
Stealth (TA0005) and Defense Impairment (TA0112); revoked T1562.*
family and T1070.001/.002 remapped to active equivalents (T1685.*)
- Normalize word-split tags across 35 skills (remove filename-derived
stopword tags, add semantic cybersecurity tags)
- Add api-reference.md for 3 skills that were missing it
- Update README ATT&CK section with accurate v19.1 tactic distribution
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.
cybersecurity
threat-intelligence
threat-landscape
sector-analysis
risk-assessment
threat-intelligence
industry-targeting
cti
strategic-intelligence
1.0
mahipal
Apache-2.0
File Metadata Consistency Validation
Application Protocol Command Analysis
Identifier Analysis
Content Format Conversion
Message Analysis
ID.RA-01
ID.RA-05
DE.CM-01
DE.AE-02
T1591
T1592
T1593
T1589
T1566
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)
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
fromattackctiimportattack_clientimportjsonclassSectorThreatAssessment: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":{},}defanalyze_sector_actors(self):"""Analyze threat actors known to target this sector."""target_groups=self.SECTOR_GROUPS.get(self.sector,[])actor_profiles=[]forgroup_nameintarget_groups:group=next((gforginself.groupsifg.get("name","").lower()==group_name.lower()orgroup_name.lower()in[a.lower()foraing.get("aliases",[])]),None)ifgroup:group_id=""forrefingroup.get("external_references",[]):ifref.get("source_name")=="mitre-attack":group_id=ref.get("external_id","")breaktechniques=[]ifgroup_id:techs=self.lift.get_techniques_used_by_group(group_id)fortintechs:forrefint.get("external_references",[]):ifref.get("source_name")=="mitre-attack":techniques.append({"id":ref.get("external_id",""),"name":t.get("name",""),})breakprofile={"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_profilesprint(f"[+] Profiled {len(actor_profiles)} threat actors for {self.sector}")returnactor_profilesdefidentify_common_techniques(self):"""Find the most commonly used techniques across sector actors."""fromcollectionsimportCountertechnique_counter=Counter()foractorinself.assessment["threat_actors"]:fortechinactor.get("techniques",[]):technique_counter[f"{tech['id']}:{tech['name']}"]+=1common=technique_counter.most_common(20)self.assessment["common_techniques"]=[{"technique":tech.split(":")[0],"name":tech.split(":")[1]if":"intechelse"","actor_count":count,"actors_using":[a["name"]forainself.assessment["threat_actors"]ifany(t["id"]==tech.split(":")[0]fortina.get("techniques",[]))],}fortech,countincommon]print(f"\n=== Top Techniques for {self.sector.upper()} ===")forentryinself.assessment["common_techniques"][:10]:print(f" {entry['technique']}{entry['name']}: "f"used by {entry['actor_count']} groups")returnself.assessment["common_techniques"]assessment=SectorThreatAssessment("financial")assessment.analyze_sector_actors()assessment.identify_common_techniques()
Step 2: Analyze Attack Vectors and Initial Access
defanalyze_attack_vectors(assessment):"""Analyze initial access vectors common for the sector."""initial_access_techniques=[tfortinassessment.assessment["common_techniques"]ift["technique"].startswith("T1566")ort["technique"].startswith("T1190")ort["technique"].startswith("T1133")ort["technique"].startswith("T1078")ort["technique"].startswith("T1195")]# Supplement with known sector-specific vectorssector_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"]=vectorsreturnvectors
Step 3: Generate Sector Threat Report
defgenerate_sector_report(assessment):data=assessment.assessmentreport=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 |
|-------|-----------|------------|-----------|
"""foractorindata["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 |
|------|-----------|------|-------------|
"""fori,techinenumerate(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
"""forvinvectors.get("primary",[]):report+=f"- {v}\n"report+="\n### Emerging Vectors\n"forvinvectors.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
"""withopen(f"threat_landscape_{data['sector']}.md","w")asf: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