Ir al contenido principal

Guía

OWASP ASVS v5.0.0: qué cubre realmente un escaneo SAST

ASVS tiene 348 requisitos en 17 capítulos. Ningún analizador estático — este incluido — verifica todos, y cualquier proveedor que afirme lo contrario no está siendo preciso. Aquí está exactamente a cuáles de los 44 StaticCodeAudit vincula una regla, capítulo por capítulo, y por qué el resto genuinamente necesita algo más que coincidencia de patrones en el código fuente.

ASVS en un párrafo

El OWASP Application Security Verification Standard (ASVS) es un catálogo de requisitos de seguridad para aplicaciones web, organizado en 17 capítulos (V1 a V17) y 3 niveles de verificación (L1: higiene básica, L2: la mayoría de aplicaciones, L3: objetivos de alto valor). La versión 5.0.0 define 348 requisitos individuales. Es una checklist tanto para personas y procesos como para herramientas — la mayoría de los requisitos describen un resultado ("verificar que X se aplica"), no un patrón de código, precisamente por eso un escaneo puramente estático no puede verificar mecánicamente cada línea.

El número honesto: 44 de 348

StaticCodeAudit vincula 44 requisitos ASVS v5.0.0 a al menos una regla de detección — cerca del 13% del estándar completo. No es un redondeo de marketing; es el conteo real del archivo de mapeo incluido con el escáner, y aparece idéntico en la sección de cumplimiento de cada informe generado.

Capítulo Cubierto
V1Codificación, Sanitización y Sandboxing 16 / 30
V3Seguridad del frontend web 11 / 31
V6Autenticación 4 / 48
V11Criptografía 4 / 25
V4Seguridad de API y servicios web 3 / 16
V5Manejo de archivos 2 / 13
V9Tokens autocontenidos 2 / 7
V12Comunicación segura 1 / 12
V16Registro de seguridad y manejo de errores 1 / 17

Por qué los otros 8 capítulos están en cero

V2 (Lógica de negocio), V7 (Gestión de sesión), V8 (Autorización), V10 (OAuth y OIDC), V13 (Configuración), V14 (Protección de datos), V15 (Codificación segura y arquitectura) y V17 (WebRTC) no tienen hoy ningún requisito vinculado a una regla. No es un descuido — la mayor parte de lo que piden esos capítulos no es visible como un patrón de código fuente: si un control de autorización es correcto para una regla de negocio dada, si un flujo OAuth está configurado con los scopes correctos en el proveedor de identidad, si un timeout de sesión está ajustado adecuadamente a la sensibilidad de los datos — esto requiere entender la intención y la configuración en tiempo de ejecución, no solo analizar sintaxis. El análisis estático es una entrada más para una evaluación ASVS, no un sustituto de la revisión humana que esos capítulos requieren.

Cómo un requisito se vincula a una regla real

Nueve ejemplos, directamente del archivo de mapeo — los identificadores de regla reales que producen un hallazgo cuando se disparan:

Requisito Nivel Qué verifica Regla(s)
1.2.4 L1 Las consultas SQL usan consultas parametrizadas u ORM sql_injection_fstring, sql_injection_concat…
1.5.1 L1 Los parsers XML están configurados para prevenir XXE xxe_injection, xxe_injection_csharp, xxe_injection_php
3.4.3 L1 El header CSP está configurado missing_csp_header
3.5.1 L1 Las protecciones CSRF están habilitadas django_csrf_exempt, spring_csrf_disabled
6.3.3 L2 MFA está disponible para operaciones sensibles missing_mfa_python, missing_mfa_javascript…
9.1.2 L1 El algoritmo JWT "none" es rechazado jwt_none_algorithm
11.3.1 L1 Se usan algoritmos criptográficos fuertes weak_crypto, weak_crypto_java…
11.5.1 L1 Se usan generadores aleatorios criptográficamente seguros weak_random_java, insecure_random…
12.2.1 L1 Todas las conexiones usan TLS http_no_tls, unencrypted_transfer

La columna Nivel es la clasificación propia de ASVS (L1 = básico, L2 = estándar, L3 = alta garantía) — StaticCodeAudit no la asigna, se lee directamente de la especificación de OWASP.

Dónde aparece esto en el informe

Cada informe HTML de escaneo incluye una sección "OWASP ASVS v5.0.0 Compliance" con una matriz por requisito: cada uno de los 44 requisitos vinculados aparece como cubierto-y-limpio, cubierto-con-hallazgos, o no cubierto — no solo un porcentaje único. Un requisito con un hallazgo HIGH activo (por ejemplo, un hash MD5 que dispara el 11.3.1) se distingue visualmente de uno que está cubierto y pasa limpio, para que un revisor no tenga que adivinar cuál del 13% importa realmente para un código dado.

Generarlo usted mismo

Sin flag separado — la matriz ASVS es parte de cada informe HTML estándar:

./staticcodeaudit-linux-x86_64 /path/to/project --fail-on-high

La misma ejecución también produce las matrices ISO 27001 Anexo A y NIST CSF 2.0 lado a lado. Vea la página de cobertura de estándares para el detalle interactivo de los cuatro marcos.

Preguntas frecuentes

¿44/348 significa que StaticCodeAudit solo cumple un 13% con ASVS?

No — ese planteamiento confunde dos cosas distintas. 44/348 mide cuánto de la checklist ASVS puede verificar mecánicamente un escaneo de código fuente, no cuánto de ella cumple su aplicación. Un código puede cumplir plenamente un requisito ASVS dado sin que ninguna herramienta lo detecte (p. ej. un timeout de sesión correctamente configurado), y los 304 requisitos restantes simplemente no son el tipo de cosa que verifica el análisis estático.

¿El número 44 aumentará con el tiempo?

Ya se ha movido antes y puede volver a moverse a medida que se añaden nuevas reglas — se lee de un archivo de mapeo incluido con el escáner, no está fijado en un texto de marketing. Consulte el changelog para ver cuándo se publican actualizaciones del mapeo de cumplimiento.

¿La cobertura ASVS difiere según el nivel ASVS (L1/L2/L3)?

Sí — el nivel mostrado en la matriz es el definido por OWASP para ese requisito específico, no algo que decida el escáner. La mayoría de los 44 requisitos cubiertos son L1 (higiene básica); algunos, como la disponibilidad de MFA (6.3.3), son L2. Actualmente no hay nada vinculado en L3, coherente con que los requisitos L3 se inclinan hacia la revisión de arquitectura y proceso.

¿Puede esto reemplazar una evaluación ASVS manual?

No, y no se presenta como tal. Es una primera pasada rápida, repetible y sin conexión sobre los requisitos que realmente son visibles como patrones de código — evidencia útil para adjuntar a una evaluación manual, no un sustituto de la revisión humana que requieren capítulos como Autorización o Lógica de negocio.

Vea la matriz de cumplimiento completa sobre código real

Abra el informe de demostración en vivo y desplácese hasta la sección OWASP ASVS — sin instalación, sin registro.

Abrir el informe en vivo Descargar el binario de demo