Skip to main content

triage-findings

Deduplicate, prioritize, and rank vulnerability findings using CVSS, EPSS, and business context. Use when processing scan results, correlating multiple findings, determining remediation priority, or when the agent needs to organize discovered vulnerabilities.

来源信息

仓库
zebbern/termstack
最近来源活动
2026年4月10日 22:53
检测到的 SKILL.md 语言
英语
星标
4
Forks
3

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
triage-findings
description
Deduplicate, prioritize, and rank vulnerability findings using CVSS, EPSS, and business context. Use when processing scan results, correlating multiple findings, determining remediation priority, or when the agent needs to organize discovered vulnerabilities.
tags
["security","triage","cvss","prioritization","deduplication"]
triggers
["triage findings","prioritize vulnerabilities","deduplicate findings","rank vulnerabilities"]
# triage-findings ## When to Use - Processing vulnerability scan results that need prioritization - Multiple findings need deduplication and correlation - Determining which vulnerabilities to report first - Correlating findings across different tools or endpoints - Creating actionable remediation priority lists - Filtering false positives from valid findings - Assessing business impact of discovered vulnerabilities ## Quick Start Basic triage workflow: ```markdown ## Findings Triage Summary ### Critical Priority (Immediate Action Required) | CVE | CVSS | EPSS | KEV | Finding | Affected | | -------------- | ---- | ----- | --- | --------- | -------- | | CVE-2024-XXXXX | 9.8 | 87.5% | Yes | RCE in... | server01 | ### High Priority | CVE | CVSS | EPSS | KEV | Finding | Affected | | -------------- | ---- | ----- | --- | ---------- | --------------- | | CVE-2024-YYYYY | 8.1 | 23.4% | No | SQLi in... | app.example.com | ### Deduplicated (Same Root Cause) - CVE-2024-ZZZZZ: Found on 5 endpoints (single patch needed) ### False Positives Identified - Finding X: Version mismatch (patched version detected) ``` ## Step-by-Step Process ### Step 1: Collect All Findings **Aggregate from multiple sources:** ```markdown Sources to consolidate: - Automated scanner results (Nuclei, Burp, etc.) - Manual testing findings - Exploit agent confirmed vulnerabilities - Recon-discovered exposures Capture for each finding: 1. Vulnerability type/name 2. CVE ID (if applicable) 3. Affected endpoint/asset 4. Evidence/proof 5. Tool that found it 6. Timestamp discovered ``` **Initial Data Structure:** ```json { "findings": [ { "id": "FIND-001", "cve": "CVE-2024-12345", "type": "SQL Injection", "endpoint": "https://example.com/api/search", "parameter": "q", "evidence": "Response time delay confirmed", "tool": "manual", "timestamp": "2024-01-15T10:30:00Z" } ] } ``` ### Step 2: Deduplicate Findings **Deduplication Strategies:** | Strategy | When to Use | Example | | ---------- | ------------------------------ | ---------------------------- | | CVE-based | Same CVE across hosts | Log4j on 10 servers | | Root cause | Different symptoms, same issue | Multiple XSS from one sink | | Endpoint | Same vuln, different params | SQLi in ?id= and ?user= | | Component | Shared vulnerable library | jQuery 2.x across subdomains | **Deduplication Process:** ```markdown 1. Group by CVE ID (exact match) 2. Group by vulnerability type + root cause 3. Group by affected component/library 4. Identify parent/child relationships 5. Mark as: - UNIQUE: Distinct vulnerability - DUPLICATE: Same as another finding - RELATED: Connected but separate ``` **Example Deduplication:** ```markdown ## Before Deduplication (15 findings) - CVE-2024-1234 on server01 - CVE-2024-1234 on server02 - CVE-2024-1234 on server03 - SQLi in /api/users?id= - SQLi in /api/orders?id= - SQLi in /api/products?id= - XSS in search field - XSS in comment field ... ## After Deduplication (5 unique findings) 1. CVE-2024-1234 (3 affected hosts) 2. SQLi in ID parameters (3 endpoints, same sink) 3. XSS - Stored (2 injection points, different handlers) ... ``` ### Step 3: Enrich with CVSS Scores **CVSS 3.1 Severity Levels:** | Score | Severity | Priority | | -------- | -------- | ------------- | | 9.0-10.0 | Critical | Immediate | | 7.0-8.9 | High | 24-48 hours | | 4.0-6.9 | Medium | 1-2 weeks | | 0.1-3.9 | Low | Scheduled | | 0.0 | None | Informational | **Calculating Custom CVSS:** ```markdown For findings without CVE, calculate CVSS manually: Base Metrics: - Attack Vector: N(etwork)/A(djacent)/L(ocal)/P(hysical) - Attack Complexity: L(ow)/H(igh) - Privileges Required: N(one)/L(ow)/H(igh) - User Interaction: N(one)/R(equired) - Scope: U(nchanged)/C(hanged) - Confidentiality: N(one)/L(ow)/H(igh) - Integrity: N(one)/L(ow)/H(igh) - Availability: N(one)/L(ow)/H(igh) Common Patterns: - Unauthenticated RCE: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H = 9.8 - Auth SQLi: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H = 8.8 - Reflected XSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N = 6.1 - Info Disclosure: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N = 5.3 ``` ### Step 4: Add EPSS Exploit Probability **EPSS Overview:** ```markdown Exploit Prediction Scoring System (EPSS) v4 - Probability score: 0% to 100% - Predicts likelihood of exploitation in next 30 days - Data-driven ML model updated daily - Higher = more likely to be exploited EPSS Thresholds: - > 50%: Very high likelihood, prioritize immediately - 10-50%: Significant likelihood, high priority - 1-10%: Moderate likelihood, standard priority - < 1%: Low likelihood, can be scheduled ``` **Fetching EPSS Scores:** ```bash # Single CVE lookup curl -s "https://api.first.org/data/v1/epss?cve=CVE-2024-12345" # Multiple CVEs curl -s "https://api.first.org/data/v1/epss?cve=CVE-2024-12345,CVE-2024-67890" # Response format { "data": [ { "cve": "CVE-2024-12345", "epss": "0.87523", "percentile": "0.99421" } ] } ``` **EPSS Integration:** ```markdown | CVE | CVSS Base | EPSS Score | EPSS Percentile | Priority | | ------------- | --------- | ---------- | --------------- | ----------- | | CVE-2024-1234 | 9.8 | 87.5% | 99th | CRITICAL | | CVE-2024-5678 | 7.5 | 2.1% | 65th | MEDIUM | | CVE-2024-9012 | 9.1 | 0.3% | 32nd | HIGH (CVSS) | ``` ### Step 5: Check CISA KEV Catalog **Known Exploited Vulnerabilities:** ```markdown CISA KEV Catalog Importance: - Vulnerabilities actively exploited in the wild - Federal agencies must remediate by deadline - Highest priority for any organization - If in KEV = Critical priority regardless of CVSS KEV Check Process: 1. Download current KEV catalog (JSON) 2. Match CVE IDs against findings 3. Note remediation deadline 4. Flag as CRITICAL priority ``` **KEV Catalog Check:** ```bash # Download KEV catalog curl -s "https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json" \ -o kev.json # Check if CVE is in KEV jq '.vulnerabilities[] | select(.cveID=="CVE-2024-12345")' kev.json ``` **KEV Match Format:** ```markdown ## CISA KEV Match Found **CVE-2024-12345** is in CISA Known Exploited Vulnerabilities catalog - Vendor: Example Corp - Product: Example Server - Vulnerability: Remote Code Execution - Date Added: 2024-01-10 - Due Date: 2024-01-31 - Notes: Active exploitation observed **ACTION REQUIRED**: Remediate immediately (federal deadline applies) ``` ### Step 6: Apply Prioritization Matrix **Combined Scoring Matrix:** ```markdown Priority Calculation: CRITICAL (Score 100): - In CISA KEV catalog, OR - CVSS >= 9.0 AND EPSS > 50% HIGH (Score 75-99): - CVSS >= 9.0 with any EPSS, OR - CVSS 7.0-8.9 AND EPSS > 10%, OR - Confirmed exploitation in the wild MEDIUM (Score 50-74): - CVSS 7.0-8.9 with EPSS < 10%, OR - CVSS 4.0-6.9 with any exploitation evidence, OR - High business impact asset LOW (Score 25-49): - CVSS 4.0-6.9 with no exploitation evidence, OR - CVSS < 4.0 on important assets INFORMATIONAL (Score 0-24): - CVSS < 4.0 on non-critical assets, OR - Best practice violations ``` **Priority Score Formula:** ```markdown Base Score = CVSS_Score \* 10 Multipliers: - KEV listed: +50 (automatic CRITICAL) - EPSS > 50%: +30 - EPSS 10-50%: +20 - EPSS 1-10%: +10 - High-value asset: +15 - Internet-facing: +10 - Contains sensitive data: +10 Final Priority = min(Base Score + Multipliers, 100) ``` ### Step 7: Generate Triage Report **Triage Output Template:** ```markdown # Vulnerability Triage Report **Date:** YYYY-MM-DD **Scope:** [Target description] **Total Findings:** X **Unique Vulnerabilities:** Y **Duplicates Removed:** Z --- ## Executive Summary | Priority | Count | % of Total | | -------- | ----- | ---------- | | Critical | X | X% | | High | X | X% | | Medium | X | X% | | Low | X | X% | | Info | X | X% | --- ## Critical Findings (Immediate Action) ### CRIT-001: [Vulnerability Name] | Attribute | Value | | --------- | --------------------- | | CVE | CVE-YYYY-NNNNN | | CVSS | 9.8 (Critical) | | EPSS | 87.5% | | KEV | Yes (Due: YYYY-MM-DD) | | Affected | [endpoints] | **Evidence:** [Proof of vulnerability] **Recommendation:** [Specific fix] --- ## High Priority Findings [Similar format for High priority items] --- ## Deduplicated Findings Summary | Finding | Occurrences | Root Cause | | -------------- | ----------- | --------------- | | CVE-2024-XXXXX | 5 servers | Single patch | | XSS variants | 3 endpoints | Output encoding | --- ## False Positives Excluded | Finding | Reason for Exclusion | | --------- | -------------------- | | [Finding] | [Justification] | --- ## Remediation Priority Order 1. [CRIT-001] - CVE-2024-XXXXX - Patch immediately
在 GitHub 查看
这个 SKILL.md 很大,SkillsMP 这里只预览前一段内容。 在 GitHub 查看