No puedes comparar herramientas SAST usando solo listas, suites de pruebas y benchmarks
Asaf Biton
Shani Gal
16 de junio de 2021
0 minutos de lecturaHay muchos desafíos al intentar identificar la mejor herramienta SAST para tu equipo. Pero ¿cómo mides algo que está diseñado para encontrar lo desconocido? ¿Cómo sabes si la herramienta es adecuada para tus necesidades? ¿Cómo comparas distintas herramientas? No es de extrañar que nos pregunten a menudo: «¿Snyk Code cubre OWASP Top 10?», seguido de «¿Cómo sugieren evaluar y comparar distintas herramientas SAST?»
Todos queremos respuestas sencillas, así que el «criterio de medición» que más vemos en el contexto de las comparaciones de SAST son documentos y listas de las vulnerabilidades más comunes contra las que hay que protegerse (OWASP Top 10, SANS-25, etc.). Puede parecer sencillo comparar los resultados de dos herramientas SAST usando estas listas, pero la respuesta no es tan simple. En este artículo exploraremos las limitaciones de estos criterios de medición.
Antes de profundizar en cada estándar, aclaremos algunos términos.
OWASP Top 10 es una lista de los diez principales riesgos que los desarrolladores deben tener en cuenta al crear una aplicación web. La publica The OWASP® Foundation y su última revisión es de 2017.
SANS-25 es una lista de los 25 tipos de errores de software más peligrosos. La publica el SANS Institute y su última revisión es de 2011.
CWE Top 25 es otra lista, muy similar a SANS-25, aunque se actualiza con más frecuencia. La publica CWE Team y su revisión es de 2020.
Benchmark es una suite de pruebas de código abierto, diseñada específicamente para probar herramientas SAST. Solo prueba Java y se mantiene activamente, aunque la última versión principal se publicó en 2016.
Las aplicaciones vulnerables intencionalmente son repositorios o proyectos que buscan educar y ofrecer ejemplos de vulnerabilidades. También pueden seguir uno de varios estándares. Estos proyectos no fueron creados pensando en las herramientas SAST. Algunos ejemplos son OWASP/NodeGoat, appsecco/dvna, WebGoat y juice-shop.
¡Empecemos!
Limitaciones de las listas de vulnerabilidades para medir herramientas SAST
Hay varias razones por las que las distintas listas de vulnerabilidades no son adecuadas para medir herramientas SAST ni para priorizar problemas detectados por SAST:
Alcance limitado: Algunas listas suelen limitarse a un ámbito específico. Por ejemplo, OWASP Top 10 solo se relaciona con la seguridad de las aplicaciones web.
Demasiado generales: Por otro lado, SANS-25 y CWE Top 25 no distinguen entre entornos o lenguajes, por lo que pueden incluir muchas vulnerabilidades (o CWE) que no son necesariamente relevantes para todos los lenguajes. Por ejemplo, CWE-416: Use After Free solo es relevante para lenguajes de bajo nivel como C, C++, Rust, entre otros.
Posiblemente desactualizadas: A menudo, estas listas no se actualizan con regularidad. OWASP Top 10 se actualizó por última vez en 2017 y SANS-25, en 2011. Esto significa que no necesariamente reflejan el estado actual de la seguridad de las aplicaciones. Un ejemplo notable es el reciente aumento de los ataques a la cadena de suministro y los ataques de typosquatting: ninguna de las dos listas menciona estos problemas.
Irrelevantes para SAST: algunos problemas no son necesariamente pertinentes en el contexto de SAST (aunque esto no significa que no sean importantes en general). Por ejemplo, OWASP Top 10 menciona registro y monitoreo insuficientes, que por sí solos no constituyen una vulnerabilidad.
Limitaciones de las suites de pruebas y las aplicaciones intencionalmente vulnerables para medir herramientas SAST
Las suites de pruebas como OWASP Benchmark y los repositorios vulnerables también tienen sus propias limitaciones:
Limitadas en cuanto a lenguajes: No existe una suite de pruebas ni aplicaciones intencionalmente vulnerables que puedan probar varios lenguajes. OWASP Benchmark, por ejemplo, solo incluye problemas de Java.
Sobreajuste: Contar con un conjunto de suites de pruebas o aplicaciones intencionalmente vulnerables considerado «estándar del mercado» permite que las empresas diseñen sus capacidades SAST en torno a esos problemas específicos. Como resultado, sus productos pueden tener un desempeño excepcional en esos benchmarks. Por desgracia, esto no necesariamente se traduce en precisión y profundidad en situaciones reales.
Holísticamente poco representativas: Los ejemplos incluidos en benchmarks y aplicaciones vulnerables a menudo no representan las aplicaciones reales, donde el flujo de datos suele ser más complejo.
Entonces... ¿cómo se comparan las herramientas SAST?
Exploramos las distintas herramientas disponibles y analizamos por qué no son ideales para evaluar herramientas SAST. Es importante señalar que esto no significa que esas listas, suites de pruebas y benchmarks sean inútiles. La mayoría se creó con el propósito de educar a los desarrolladores y crear conciencia sobre los problemas de seguridad más comunes. Aunque no son ideales para medir una herramienta SAST, creemos que pueden desempeñar un papel importante para mejorar los conocimientos sobre seguridad en tu organización.
Quizás te preguntes: si se ha demostrado que los estándares anteriores son insuficientes, ¿cuál es la forma de medir herramientas SAST? Lee nuestro artículo de seguimiento para conocer 3 parámetros para medir las pruebas SAST.
Comienza con Capture the Flag
Aprende a resolver desafíos de Capture the Flag con nuestro taller virtual 101 a pedido.

