UNPKG

ssvc

Version:

TypeScript implementation of SSVC (Stakeholder-Specific Vulnerability Categorization). A prioritization framework to triage CVE vulnerabilities as an alternative or compliment to CVSS

229 lines (184 loc) 5.07 kB
--- generated: true source: methodologies/cisa.yaml generator: scripts/generate-plugins.ts lastGenerated: 2025-09-01T14:11:02.851Z generatedFiles: typescript: path: /home/chris/github/typescript-ssvc/src/plugins/cisa-generated.ts checksum: 4bc4bb7cba265e5c63b26a8e44752b4d56d6bd6a --- # CISA CISA Stakeholder-Specific Vulnerability Categorization **Version:** 1.0 **URL:** https://www.cisa.gov/stakeholder-specific-vulnerability-categorization-ssvc ## Decision Tree ```mermaid flowchart LR 0{ExploitationStatus} 1{AutomatableStatus} 2{TechnicalImpactLevel} 3{MissionWellbeingImpactLevel} 4[ATTEND] 5{MissionWellbeingImpactLevel} 6[ATTEND] 7{TechnicalImpactLevel} 8{MissionWellbeingImpactLevel} 9[TRACK_STAR] 10{MissionWellbeingImpactLevel} 11[TRACK_STAR] 12{AutomatableStatus} 13{TechnicalImpactLevel} 14{MissionWellbeingImpactLevel} 15[TRACK_STAR] 16[ATTEND] 17{MissionWellbeingImpactLevel} 18[ATTEND] 19{TechnicalImpactLevel} 20{MissionWellbeingImpactLevel} 21[TRACK_STAR] 22{MissionWellbeingImpactLevel} 23[TRACK_STAR] 24[ATTEND] 25{AutomatableStatus} 26{TechnicalImpactLevel} 27{MissionWellbeingImpactLevel} 28[ATTEND] 29[ATTEND] 30[ACT] 31{MissionWellbeingImpactLevel} 32[ATTEND] 33[ACT] 34[ACT] 35{TechnicalImpactLevel} 36{MissionWellbeingImpactLevel} 37[ATTEND] 38{MissionWellbeingImpactLevel} 39[ATTEND] 40[ACT] 0 -->|NONE| 1 1 -->|YES| 2 2 -->|PARTIAL| 3 3 -->|HIGH| 4 2 -->|TOTAL| 5 5 -->|HIGH| 6 1 -->|NO| 7 7 -->|PARTIAL| 8 8 -->|HIGH| 9 7 -->|TOTAL| 10 10 -->|HIGH| 11 0 -->|POC| 12 12 -->|YES| 13 13 -->|TOTAL| 14 14 -->|MEDIUM| 15 14 -->|HIGH| 16 13 -->|PARTIAL| 17 17 -->|HIGH| 18 12 -->|NO| 19 19 -->|PARTIAL| 20 20 -->|HIGH| 21 19 -->|TOTAL| 22 22 -->|MEDIUM| 23 22 -->|HIGH| 24 0 -->|ACTIVE| 25 25 -->|YES| 26 26 -->|PARTIAL| 27 27 -->|LOW| 28 27 -->|MEDIUM| 29 27 -->|HIGH| 30 26 -->|TOTAL| 31 31 -->|LOW| 32 31 -->|MEDIUM| 33 31 -->|HIGH| 34 25 -->|NO| 35 35 -->|PARTIAL| 36 36 -->|HIGH| 37 35 -->|TOTAL| 38 38 -->|MEDIUM| 39 38 -->|HIGH| 40 ``` ## Enums ### ExploitationStatus - NONE - POC - ACTIVE ### AutomatableStatus - YES - NO ### TechnicalImpactLevel - PARTIAL - TOTAL ### MissionWellbeingImpactLevel - LOW - MEDIUM - HIGH ## Priority Mapping - **TRACK** → LOW - **TRACK_STAR** → MEDIUM - **ATTEND** → MEDIUM - **ACT** → IMMEDIATE ## Usage ### Direct Plugin Usage ```typescript import { DecisionCisa } from "ssvc"; const decision = new DecisionCisa({ // Add parameters based on methodology }); const outcome = decision.evaluate(); console.log(outcome.action, outcome.priority); ``` ### Using the Generic API ```typescript import { createDecision } from "ssvc"; const decision = createDecision("cisa", { // Add parameters based on methodology }); const outcome = decision.evaluate(); console.log(outcome.action, outcome.priority); ``` ## Vector String Support This methodology supports SSVC vector strings for compact representation and interchange. ### Parameter Abbreviations | Parameter | Abbreviation | Value Mappings | | ----------------- | ------------ | ----------------------- | | exploitation | E | NONE→N, POC→P, ACTIVE→A | | automatable | A | YES→Y, NO→N | | technical_impact | T | PARTIAL→P, TOTAL→T | | mission_wellbeing | M | LOW→L, MEDIUM→M, HIGH→H | ### Vector String Format ``` CISAv1/[parameters]/[timestamp]/ ``` ### Example Usage ```typescript import { DecisionCisa } from "ssvc"; // Generate vector string from decision const decision = new DecisionCisa({ exploitation: "NONE", automatable: "YES", technical_impact: "PARTIAL", mission_wellbeing: "LOW", }); const vectorString = decision.toVector(); console.log(vectorString); // Output: CISAv1/E:N/A:Y/T:P/M:L/2024-07-23T20:34:21.000Z/ // Parse vector string to create decision const parsedDecision = DecisionCisa.fromVector( "CISAv1/E:N/A:Y/T:P/M:L/2024-07-23T20:34:21.000Z/", ); const outcome = parsedDecision.evaluate(); ``` ## File Integrity Verification The generated files in this methodology have SHA1 checksums for verification: ### Checksum Verification Commands Verify the integrity of generated files using these commands: ```bash # Verify TypeScript plugin file echo "4bc4bb7cba265e5c63b26a8e44752b4d56d6bd6a /home/chris/github/typescript-ssvc/src/plugins/cisa-generated.ts" | sha1sum -c ``` **Why This Matters**: Checksum verification ensures that generated files haven't been tampered with or corrupted. This is important for: - **Security**: Detecting unauthorized modifications to generated code - **Integrity**: Ensuring files match their expected content exactly - **Trust**: Providing cryptographic proof that files are authentic - **Debugging**: Confirming file corruption isn't causing unexpected behavior Always verify checksums before deploying or using generated files in production environments.