Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Implement the CISA Zero Trust Maturity Model v2.0 across the five pillars of identity, devices, networks, applications, and data to achieve progressive organizational zero trust maturity.
.claude/skills/implementing-cisa-zero-trust-maturity-model/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-02 | ✗→✓ | ▲ Improved | — | — |
| case-11 | ✗→✓ | ▲ Improved | — | — |
| case-18 | ✗→✓ | ▲ Improved | — | — |
| case-14 | ✓→✓ | = Same ✓ | — | — |
The CISA Zero Trust Maturity Model (ZTMM) Version 2.0, released in April 2023, provides federal agencies and organizations with a structured roadmap for adopting zero trust architecture. The model defines five core pillars -- Identity, Devices, Networks, Applications & Workloads, and Data -- each progressing through four maturity stages: Traditional, Initial, Advanced, and Optimal. Three cross-cutting capabilities (Visibility and Analytics, Automation and Orchestration, and Governance) span all pillars. This skill covers assessment, gap analysis, and progressive implementation across all pillars and maturity levels.
Identity refers to attributes that uniquely describe an agency user or entity, including non-person entities (NPEs) such as service accounts and machine identities.
Traditional Stage:
Initial Stage:
Advanced Stage:
Optimal Stage:
Devices include any hardware, software, or firmware asset that connects to a network -- servers, laptops, mobile phones, IoT devices, and network equipment.
Traditional Stage:
Initial Stage:
Advanced Stage:
Optimal Stage:
Networks encompass all communications media including internal networks, wireless, and the internet.
Traditional Stage:
Initial Stage:
Advanced Stage:
Optimal Stage:
Applications and workloads include agency systems, programs, and services running on-premises, on mobile devices, and in cloud environments.
Traditional Stage:
Initial Stage:
Advanced Stage:
Optimal Stage:
Data encompasses all structured and unstructured information, at rest, in transit, and in use.
Traditional Stage:
Initial Stage:
Advanced Stage:
Optimal Stage:
Maturity Progression:
Traditional -> Manual log review, limited SIEM
Initial -> Centralized logging, basic SIEM correlation
Advanced -> UEBA, automated threat detection, data lake analytics
Optimal -> AI/ML-driven continuous monitoring, predictive analyticsMaturity Progression:
Traditional -> Manual incident response, ad-hoc scripts
Initial -> Basic SOAR playbooks, automated alerting
Advanced -> Integrated SOAR with multi-pillar orchestration
Optimal -> Fully autonomous response, self-healing infrastructureMaturity Progression:
Traditional -> Ad-hoc policies, manual compliance checks
Initial -> Documented zero trust strategy, basic policy framework
Advanced -> Policy-as-code, continuous compliance monitoring
Optimal -> Dynamic policy engine, real-time governance decisionspython# Example: CISA ZTMM Maturity Assessment Scoring class ZTMMAssessment: PILLARS = ['Identity', 'Devices', 'Networks', 'Applications', 'Data'] STAGES = ['Traditional', 'Initial', 'Advanced', 'Optimal'] CROSS_CUTTING = ['Visibility_Analytics', 'Automation_Orchestration', 'Governance'] def __init__(self): self.scores = {} def assess_pillar(self, pillar, capabilities): """ Assess a pillar against ZTMM criteria. capabilities: dict of capability_name -> maturity_stage """ stage_values = {stage: i for i, stage in enumerate(self.STAGES)} scores = [stage_values.get(stage, 0) for stage in capabilities.values()] avg_score = sum(scores) / len(scores) if scores else 0 overall_stage = self.STAGES[int(avg_score)] self.scores[pillar] = { 'capabilities': capabilities, 'average_score': avg_score, 'overall_stage': overall_stage } return self.scores[pillar] def generate_roadmap(self): """Generate prioritized improvement roadmap.""" roadmap = [] for pillar, data in self.scores.items(): for capability, stage in data['capabilities'].items(): stage_idx = self.STAGES.index(stage) if stage_idx < 3: # Not yet Optimal next_stage = self.STAGES[stage_idx + 1] roadmap.append({ 'pillar': pillar, 'capability': capability, 'current': stage, 'target': next_stage, 'priority': 3 - stage_idx # Higher priority for lower maturity }) return sorted(roadmap, key=lambda x: x['priority'], reverse=True)
| CISA ZTMM Pillar | OMB M-22-09 Requirement | NIST 800-207 Section | |---|---|---| | Identity | MFA for agency staff | 3.1.1 | | Devices | EDR for federal endpoints | 3.1.2 | | Networks | Encrypt DNS traffic | 3.1.3 | | Applications | Application security testing | 3.1.4 | | Data | Data categorization | 3.1.5 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +18 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.