К основному содержанию
скилл CX Codex

performing-web-application-vulnerability-triage: скилл Claude Code

Разбирает отчёты DAST- и SAST-сканеров, отсекает ложные срабатывания и рассчитывает риски по OWASP. Помогает приоритизировать баги для разработчиков.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-web-application-vulnerability-triage -a claude-code
Открыть на GitHub

Что делает performing-web-application-vulnerability-triage

Скилл структурирует обработку уязвимостей, найденных сканерами DAST (Burp Suite, OWASP ZAP, Acunetix) и SAST (Semgrep, SonarQube, Checkmarx, Snyk Code). Процесс разбит на три этапа: сопоставление CWE с категориями OWASP Top 10, фильтрация ложных срабатываний и расчёт матрицы рисков. Информационные заголовки вроде отсутствующего Content-Security-Policy сразу помечаются как false_positive. При этом инъекции требуют ручной проверки исходного кода.

Для оценки угрозы используется методология OWASP Risk Rating. Формула перемножает вероятность атаки и потенциальный ущерб по девятибалльной шкале. Вероятность учитывает квалификацию атакующего, лёгкость эксплуатации и наличие WAF. Ущерб зависит от доступа к персональным данным, финансовых рисков или требований регуляторов вроде PCI DSS.

Без подготовленных файлов сканирования и локального окружения скилл бесполезен: для работы обязательны Python 3.9+ с пакетами requests и beautifulsoup4, а также Burp Suite или ZAP для ручной валидации.

Какие задачи решает

  • Отсеять информационные и ложные срабатывания сканеров безопасности
  • Сопоставить идентификаторы CWE с категориями OWASP Top 10
  • Рассчитать уровень риска дефекта по методологии OWASP
  • Приоритизировать исправление уязвимостей перед передачей в разработку

Примеры запросов агенту

  • Проанализируй выгрузку из Burp Suite и отсей ложные срабатывания
  • Рассчитай рейтинг риска OWASP для найденной CWE-89 в отчёте Semgrep
  • Сгруппируй уязвимости из ZAP по категориям OWASP Top 10

Как установить performing-web-application-vulnerability-triage

1Через Skills CLI (Vercel)

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-web-application-vulnerability-triage -a claude-code

2Вручную: положить файлы

~/.claude/skills/performing-web-application-vulnerability-triage/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/performing-web-application-vulnerability-triage/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора89

analyzing-ios-app-security-with-objection Скилл для runtime-тестирования iOS-приложений через Objection и Frida: дамп keychain, обход SSL pinning, проверка защиты от джейлбрейка. CX Codex +1 436установок implementing-secret-scanning-with-gitleaks Скилл помогает настроить Gitleaks для поиска секретов в Git-репозитории и блокировать их попадание в историю. Нужен для локальных хуков и CI/CD. CX Codex +1 439установок testing-for-json-web-token-vulnerabilities Пошаговое руководство для агента по аудиту JWT: поиск обхода проверки подписи, подмена RS256 на HS256, инъекции в kid и перебор секретов. CX Codex +1 431установок analyzing-network-traffic-for-incidents Скилл для разбора сетевого трафика во время инцидента: ищет C2-каналы, боковое перемещение и утечки данных по PCAP и flow-данным. CX Codex +1 430установок analyzing-cobaltstrike-malleable-c2-profiles Разбирает профили Cobalt Strike Malleable C2 и извлекает сетевые признаки для правил обнаружения. Нужен при исследовании профиля или проверке трафика Beacon. CX Codex +1 426установок analyzing-network-traffic-of-malware Разбирает PCAP с сетевой активностью малвари: ищет C2-протоколы, каналы утечки данных и загрузку полезной нагрузки. Пригодится при анализе песочницы или инцидента. CX Codex +1 413установок analyzing-malicious-url-with-urlscan Скилл прогоняет фишинговые и подозрительные URL через URLScan.io и вытаскивает из отчёта скриншот, DOM, цепочку редиректов и IOC. CX Codex +1 411установок analyzing-web-server-logs-for-intrusion Скилл разбирает логи Apache и Nginx, ищет признаки атак и собирает отчёт. Пригодится для расследований и проверки правил мониторинга. CX Codex +1 408установок

Похожие

senior-secops Alireza Rezvani Проверяет код, зависимости и контрольные меры безопасности. Пригодится перед аудитом, после CVE или при настройке проверок в CI/CD. 903установок vulnerability-scanning aj-geddes Скилл для поиска уязвимостей в зависимостях, коде, контейнерах и секретах. Пригодится перед деплоем и при аудитах безопасности. CX Codex +1 611установок finding-triage briiirussell Скилл разбирает отдельную уязвимость из отчёта сканера или аудита, оценивает её реальную опасность и оформляет решение для тикета. CX Codex +1 360установок vulnerability-scanner sickn33 Скилл обучает ИИ-агента поиску уязвимостей в коде по стандартам OWASP 2025 и оценке цепочки поставок. Пригодится при аудите репозитория перед релизом. CX Codex +1 1 300установок ghost-scan-code ghostsecurity Ищет уязвимости в исходниках: SQL-инъекции, XSS, SSRF и другие категории OWASP. Планирует проверки, потом прогоняет их по проекту. CX Codex +1 5 200установок web-pentest briiirussell Скилл ведёт агента по фазам тестирования живого веб-приложения: конфигурация, аутентификация, авторизация, ввод. Нужен, когда есть письменное разрешение на цель. CX Codex +1 545установок

Рядом в теме «Безопасность»

Всё по теме «Безопасность» →

Вопросы о performing-web-application-vulnerability-triage

Как установить performing-web-application-vulnerability-triage в Claude Code?

Выполните команду npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill performing-web-application-vulnerability-triage -a claude-code. Файл навыка будет сохранён по пути ~/.claude/skills/performing-web-application-vulnerability-triage/SKILL.md.

Что делает этот скилл?

Он автоматизирует первичный разбор отчётов безопасности. Скилл сопоставляет CWE с OWASP Top 10, отсеивает ложные срабатывания сканеров и вычисляет числовой рейтинг риска.

Что требуется подготовить перед запуском триажа?

Понадобятся готовые отчёты DAST или SAST, Python 3.9+ с библиотеками requests и beautifulsoup4, а также Burp Suite Professional или OWASP ZAP для подтверждения находок.

Исходный текст

SKILL.md · Apache-2.0
---
name: performing-web-application-vulnerability-triage
description: Triages web application vulnerability findings from DAST/SAST scanners
  such as Burp Suite and ZAP, using the OWASP Risk Rating Methodology to confirm
  true positives, dismiss false positives, and prioritize remediation. Use when
  reviewing scanner output to reduce alert fatigue and rank vulnerabilities for
  development teams to fix.
domain: cybersecurity
subdomain: vulnerability-management
tags:
- web-application
- vulnerability-triage
- owasp
- dast
- sast
- burp-suite
- zap
- false-positive
- risk-rating
version: '1.0'
author: mahipal
license: Apache-2.0
nist_csf:
- ID.RA-01
- ID.RA-02
- ID.IM-02
- ID.RA-06
mitre_attack:
- T1190
- T1203
- T1068
---

# Performing Web Application Vulnerability Triage

## Overview

Web application vulnerability triage is the process of reviewing findings from DAST (Dynamic Application Security Testing) and SAST (Static Application Security Testing) tools to validate true positives, dismiss false positives, assign risk ratings using the OWASP Risk Rating Methodology, and prioritize remediation. Effective triage reduces alert fatigue and focuses development teams on the vulnerabilities that matter most.


## When to Use

- When conducting security assessments that involve performing web application vulnerability triage
- 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

- DAST scan results (OWASP ZAP, Burp Suite, Acunetix)
- SAST scan results (Semgrep, SonarQube, Checkmarx, Snyk Code)
- Python 3.9+ with `requests`, `beautifulsoup4`
- Burp Suite Professional or OWASP ZAP for manual validation
- DefectDojo or similar for finding management

## OWASP Risk Rating Methodology

### Risk Calculation
```
Risk = Likelihood x Impact
```

### Likelihood Factors (0-9 scale)
| Factor Group | Factor | Description |
|-------------|--------|------------|
| Threat Agent | Skill Level | How technically skilled is the attacker? |
| Threat Agent | Motive | How motivated is the attacker? |
| Threat Agent | Opportunity | What resources/access are needed? |
| Threat Agent | Size | How large is the potential threat agent group? |
| Vulnerability | Ease of Discovery | How easy is it to find the vulnerability? |
| Vulnerability | Ease of Exploit | How easy is it to exploit? |
| Vulnerability | Awareness | How well known is the vulnerability? |
| Vulnerability | Intrusion Detection | How likely is exploitation to be detected? |

### Impact Factors (0-9 scale)
| Factor Group | Factor | Description |
|-------------|--------|------------|
| Technical | Confidentiality | How much data could be disclosed? |
| Technical | Integrity | How much data could be corrupted? |
| Technical | Availability | How much service could be lost? |
| Technical | Accountability | Can actions be traced to attacker? |
| Business | Financial Damage | Revenue loss, regulatory fines |
| Business | Reputation Damage | Brand trust erosion |
| Business | Non-compliance | Regulatory violation exposure |
| Business | Privacy Violation | PII/PHI exposure volume |

### Risk Matrix
| | Low Impact (0-3) | Medium Impact (3-6) | High Impact (6-9) |
|---|---|---|---|
| **High Likelihood (6-9)** | Medium | High | Critical |
| **Medium Likelihood (3-6)** | Low | Medium | High |
| **Low Likelihood (0-3)** | Note | Low | Medium |

## Triage Process

### Step 1: Categorize by OWASP Top 10

```python
OWASP_TOP_10_2021 = {
    "A01": "Broken Access Control",
    "A02": "Cryptographic Failures",
    "A03": "Injection",
    "A04": "Insecure Design",
    "A05": "Security Misconfiguration",
    "A06": "Vulnerable and Outdated Components",
    "A07": "Identification and Authentication Failures",
    "A08": "Software and Data Integrity Failures",
    "A09": "Security Logging and Monitoring Failures",
    "A10": "Server-Side Request Forgery",
}

CWE_TO_OWASP = {
    "CWE-79": "A03",   # XSS -> Injection
    "CWE-89": "A03",   # SQL Injection
    "CWE-78": "A03",   # OS Command Injection
    "CWE-352": "A01",  # CSRF -> Access Control
    "CWE-22": "A01",   # Path Traversal
    "CWE-200": "A02",  # Information Exposure
    "CWE-327": "A02",  # Weak Cryptography
    "CWE-287": "A07",  # Authentication Issues
    "CWE-918": "A10",  # SSRF
    "CWE-502": "A08",  # Deserialization
    "CWE-611": "A05",  # XXE -> Misconfiguration
}
```

### Step 2: Validate True vs False Positives

```python
def triage_finding(finding):
    """Classify finding as true_positive, false_positive, or needs_review."""
    fp_indicators = [
        "Content-Security-Policy header not set",  # Often informational
        "X-Content-Type-Options header missing",    # Low severity header
        "Cookie without SameSite attribute",        # Context dependent
    ]

    for indicator in fp_indicators:
        if indicator.lower() in finding.get("title", "").lower():
            if finding.get("severity", "").lower() in ("info", "low"):
                return "false_positive", "Common informational finding"

    # Check for confirmed exploitation evidence
    if finding.get("evidence") and finding.get("confidence", "").lower() == "certain":
        return "true_positive", "Scanner confirmed exploitation"

    # SAST findings need manual code review
    if finding.get("source") == "sast":
        if finding.get("cwe") in ["CWE-89", "CWE-78", "CWE-79"]:
            return "needs_review", "Injection finding requires manual code review"

    return "needs_review", "Requires manual validation"
```

### Step 3: Risk Score Calculation

```python
def calculate_risk_score(finding, app_context):
    """Calculate OWASP risk rating for a web application finding."""
    # Likelihood factors
    likelihood = {
        "skill_level": 6 if finding["cwe"] in ["CWE-89", "CWE-79"] else 4,
        "motive": 7,  # Financial gain
        "opportunity": 7 if finding.get("authenticated") == False else 4,
        "size": 9 if finding.get("internet_facing") else 4,
        "ease_of_discovery": 8 if finding.get("scanner_detected") else 5,
        "ease_of_exploit": 7 if finding.get("exploit_available") else 4,
        "awareness": 6,
        "intrusion_detection": 3 if app_context.get("waf_enabled") else 8,
    }

    # Impact factors
    impact = {
        "confidentiality": 9 if "data_exposure" in finding.get("tags", []) else 5,
        "integrity": 9 if finding["cwe"] in ["CWE-89", "CWE-78"] else 4,
        "availability": 7 if "dos" in finding.get("tags", []) else 2,
        "accountability": 3 if app_context.get("logging_enabled") else 7,
        "financial": 7 if app_context.get("processes_payments") else 3,
        "reputation": 6 if app_context.get("customer_facing") else 2,
        "compliance": 8 if app_context.get("pci_scope") else 3,
        "privacy": 9 if app_context.get("handles_pii") else 2,
    }

    likelihood_score = sum(likelihood.values()) / len(likelihood)
    impact_score = sum(impact.values()) / len(impact)
    risk_score = likelihood_score * impact_score

    if risk_score >= 42:
        risk_level = "Critical"
    elif risk_score >= 24:
        risk_level = "High"
    elif risk_score >= 12:
        risk_level = "Medium"
    elif risk_score >= 3:
        risk_level = "Low"
    else:
        risk_level = "Note"

    return {
        "likelihood_score": round(likelihood_score, 1),
        "impact_score": round(impact_score, 1),
        "risk_score": round(risk_score, 1),
        "risk_level": risk_level,
    }
```

### Step 4: Generate Triage Report

```bash
# Process DAST/SAST results through triage pipeline
python3 scripts/process.py \
  --input zap_results.json \
  --format zap \
  --app-context app_config.json \
  --output triage_report.json
```

## Manual Validation Techniques

### SQL Injection Validation
```
# Test parameter with single quote
GET /search?q=test' HTTP/1.1

# Test with boolean-based payload
GET /search?q=test' AND 1=1-- HTTP/1.1
GET /search?q=test' AND 1=2-- HTTP/1.1

# Time-based verification
GET /search?q=test'; WAITFOR DELAY '0:0:5'-- HTTP/1.1
```

### XSS Validation
```
# Reflected XSS test
GET /search?q=<script>alert(document.domain)</script> HTTP/1.1

# Check if output is encoded
GET /search?q="><img src=x onerror=alert(1)> HTTP/1.1

# DOM-based XSS
GET /page#<img src=x onerror=alert(1)> HTTP/1.1
```

## References

- [OWASP Risk Rating Methodology](https://owasp.org/www-community/OWASP_Risk_Rating_Methodology)
- [OWASP Top 10 2021](https://owasp.org/www-project-top-ten/)
- [OWASP Testing Guide v4.2](https://owasp.org/www-project-web-security-testing-guide/)
- [CWE/SANS Top 25](https://cwe.mitre.org/top25/)

© mahipal · Apache-2.0 · mukul975/Anthropic-Cybersecurity-Skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой