Importar advisories¶
RedBench puede generar checks automáticamente a partir de la URL de un advisory de seguridad (NVD, Adobe APSB, GitHub Advisory, PrestaShop, etc.).
Uso básico¶
Ejemplo¶
Fetching advisory https://nvd.nist.gov/vuln/detail/CVE-2024-34102…
Title Adobe Commerce XML External Entity Injection
CVEs CVE-2024-34102
Platform magento2
Severity critical
Affected < 2.4.7-p1
✓ Check generated:
adobe_commerce_xml_external_entity_injec.yml (definition)
adobe_commerce_xml_external_entity_injec.py (logic)
Directory: src/redbench/checks/magento2
Qué extrae automáticamente¶
El importador fetch la URL y parsea:
| Campo | Fuente |
|---|---|
| CVE IDs | Regex CVE-YYYY-NNNNN en el texto |
| Plataforma | Detección por keywords (magento, prestashop, adobe commerce) |
| Severidad | Keywords: critical, high, medium, low |
| Versiones afectadas | Patrones "affected versions", "before X", "prior to X" |
| Título | <h1>, <h2>, og:title (filtra títulos genéricos) |
| Remediación | Patrones "upgrade to", "apply patch", "remediation" |
| Fuente | Detecta: adobe-apsb, nvd, github-advisory, prestashop |
Qué genera¶
Dos archivos en la carpeta de la plataforma correspondiente:
Definición YAML¶
id: RB-M2-016
name: "Adobe Commerce XML External Entity Injection"
description: >
Verification for CVE-2024-34102. Source: https://nvd.nist.gov/...
platform: magento2
type: cve-verification
severity: critical
safe_modes:
- passive
- safe-active
- authenticated
tags:
- advisory
- cve
- nvd
Lógica Python¶
El check generado compara la versión detectada por el fingerprint contra el rango de versiones afectadas. Es un scaffold — funciona tal cual para detección basada en versión, pero puedes editarlo para añadir detección más específica (endpoints, patrones en respuestas, etc.).
Opciones¶
# Forzar ID del check
redbench advisory import <url> --id RB-M2-042
# Forzar plataforma (cuando no la detecta automáticamente)
redbench advisory import <url> --platform prestashop
Listar checks importados¶
Muestra todos los checks que tienen el tag advisory o cve.
Fuentes soportadas¶
| Fuente | URL pattern | Notas |
|---|---|---|
| NVD | nvd.nist.gov/vuln/detail/CVE-* |
Puede tener protección de iframe |
| Adobe APSB | helpx.adobe.com/security/* |
Buena extracción de versiones |
| GitHub Advisory | github.com/advisories/GHSA-* |
SPA — título puede ser genérico |
| PrestaShop | prestashop-project.org/security/* |
Detecta plataforma automáticamente |
| Cualquier otra | Cualquier URL | Extracción best-effort |
URLs problemáticas
Algunos sitios (NVD, GitHub) usan SPAs o protección de iframe que dificulta el scraping. Si el título sale genérico, el importador usa el CVE ID como nombre del archivo. Puedes editar el YAML después para ponerle un título mejor.
Flujo recomendado¶
- Importar —
redbench advisory import <url>genera el scaffold - Revisar — verifica el YAML (severidad, plataforma, versiones)
- Mejorar — edita el
.pypara añadir detección específica si la hay - Probar —
redbench scan <target>ejecuta el nuevo check automáticamente - Iterar — cada advisory que importes amplía la cobertura del scanner