Guía
Comparativa de herramientas SAST: qué encuentran y qué se les escapa
Qué hacen las herramientas SAST, en qué se diferencian ocho de las más usadas en enfoque, lenguajes y licencia, y qué se le escapa al análisis estático en código de IA.
· 9 min de lectura · Por el equipo de vetkit


Qué es una herramienta SAST
Una herramienta SAST (static application security testing, pruebas estáticas de seguridad de aplicaciones) lee tu código fuente sin ejecutarlo e informa del código que parece vulnerable: datos de una petición que llegan a una consulta SQL, un comando de shell construido a partir de la entrada del usuario, una verificación de certificados desactivada, un hash débil usado para contraseñas. Como solo necesita el código fuente, puede ejecutarse en cada commit, mucho antes de que la aplicación se despliegue.
El SAST es uno de varios tipos de pruebas de seguridad. El SCA (software composition analysis, análisis de composición del software) revisa tus dependencias en busca de vulnerabilidades conocidas, el secret scanning busca credenciales commiteadas y el DAST (pruebas dinámicas) sondea una aplicación en ejecución. Una herramienta SAST no hace nada de eso, así que la mayoría de los equipos la combinan al menos con el escaneo de dependencias y de secretos.
En qué se diferencian las herramientas SAST
Cuatro diferencias explican la mayor parte de lo que notarás al probar dos herramientas sobre el mismo código.
- Qué profundidad tiene el análisis. El pattern matching encuentra código que se parece a una forma incorrecta conocida. El análisis de taint o de flujo de datos sigue un valor desde donde entra (una petición) hasta donde se usa (una consulta). Seguir los valores entre funciones y archivos encuentra más problemas reales, y suele ser donde las ediciones comerciales se diferencian de las gratuitas.
- Un lenguaje o muchos. Las herramientas de un solo lenguaje conocen bien su ecosistema. Las multilenguaje dan un único informe para un código con varios lenguajes.
- Dónde se ejecuta. Algunas son un comando que ejecutas en local o en CI. Otras son plataformas alojadas que se conectan a tu control de versiones y añaden dashboards, comentarios en las pull requests y políticas.
- Si puedes escribir tus propias reglas. Los formatos de reglas legibles hacen que sea viable codificar las convenciones de tu equipo.
Ocho herramientas SAST, una al lado de otra
Son herramientas muy usadas, ordenadas alfabéticamente dentro de cada grupo. La tabla recoge lo que dice la propia documentación de cada proyecto; no es un ranking y no las hemos sometido a benchmarks entre sí.
| Herramienta | Enfoque, según su documentación | Lenguajes | Licencia | Salida SARIF |
|---|---|---|---|---|
| CodeQL (GitHub code scanning) | Construye una base de datos a partir del código y ejecuta consultas semánticas sobre ella | C/C++, C#, Go, Java/Kotlin, JavaScript/TypeScript, Python, Ruby, Rust, Swift y workflows de GitHub Actions | CLI de uso gratuito en repositorios públicos; los repositorios privados requieren una licencia de GitHub Code Security | Sí |
| Checkmarx One SAST | Construye un grafo de elementos del código y flujos de datos y ejecuta consultas; admite consultas personalizadas | Multilenguaje, incluidos Java, C#, C/C++, PHP, JavaScript/TypeScript, Python y Go | Comercial | Sí |
| Opengrep | Reglas de patrones con análisis de taint; compatible con las reglas de Semgrep | Más de 30 lenguajes | Open source, LGPL 2.1 | Sí |
| Semgrep | Reglas de patrones que se parecen al código que detectan. Community Edition analiza dentro de una sola función o archivo; el comercial Semgrep Code añade análisis entre archivos y funciones | Más de 30 lenguajes | Motor open source, LGPL 2.1; AppSec Platform es propietaria | Sí |
| Snyk Code | Motor de análisis semántico con análisis de flujo de datos y de taint | Multilenguaje, incluidos Java/Kotlin, JavaScript/TypeScript, Python, Go, C#, PHP, Ruby y Swift | Servicio alojado comercial con plan gratuito | Sí |
| SonarQube | Reglas de calidad del código y de seguridad; el análisis de taint para las reglas de inyección está disponible en SonarQube Server y Cloud | Más de 40 lenguajes y frameworks entre todas las ediciones | Community Build es open source, LGPL 3.0; Server y Cloud son comerciales | Importa SARIF de otras herramientas |
| Bandit | Construye un árbol sintáctico de cada archivo y ejecuta plugins sobre él | Solo Python | Open source, Apache 2.0 | Sí, con un extra opcional |
| gosec | Reglas sobre el árbol sintáctico, analizadores basados en SSA y análisis de taint | Solo Go | Open source, Apache 2.0 | Sí |
Brakeman es otra conocida herramienta para un único framework, Ruby on Rails. Su repositorio la describe como gratuita para uso no comercial bajo su propia licencia de uso público, así que revisa los términos antes de integrarla en un servicio comercial.
Varias de ellas ofrecen ahora correcciones o triaje asistidos por IA con nombres propios, por ejemplo Copilot Autofix para las alertas de CodeQL, Semgrep Multimodal, Snyk Agent Fix y SonarQube AI CodeFix. Los nombres, las ediciones y los precios cambian a menudo en este terreno, así que lee la página actual de cada fabricante antes de decidir.
Cómo elegir
- Un solo lenguaje, equipo pequeño. Empieza con la herramienta específica para tu stack (Bandit para Python, gosec para Go). Son gratuitas, rápidas de ejecutar y fáciles de añadir a CI.
- Código con varios lenguajes y preferencia por el open source. Un motor multilenguaje basado en reglas, como Opengrep o Semgrep Community Edition, cubre muchos lenguajes con reglas que puedes leer y ampliar.
- Todo está en GitHub. CodeQL a través de GitHub code scanning muestra las alertas en las pull requests sin ningún servicio adicional. Consulta GitHub Advanced Security vs vetkit.
- Necesitas un análisis más profundo entre archivos, dashboards y políticas. Eso es lo que venden las plataformas comerciales. Compáralas con tu propio código, no con listas de funcionalidades. Consulta Semgrep vs vetkit y Snyk vs vetkit.
Elijas la que elijas, quédate con una herramienta que genere SARIF. Es el formato común que te permite enviar los hallazgos a GitHub code scanning o a otro dashboard, y cambiar de herramienta más adelante. La guía de SARIF explica cómo.
Qué se le escapa al SAST
El SAST encuentra patrones de código inseguro. Mucho de lo que sale mal en el software, sobre todo en el software escrito deprisa con un asistente de IA, no es un patrón dentro de un archivo.
| Problema | Por qué el SAST por sí solo no lo detecta | Qué lo detecta |
|---|---|---|
| Un paquete que no existe o que se registró la semana pasada | La sentencia import es código válido | Comprobaciones de dependencias contra los registros públicos |
| Credenciales commiteadas | La mayoría de las reglas SAST miran el comportamiento del código, no los formatos de secretos | Secret scanning |
| Vulnerabilidades conocidas en dependencias | El código vulnerable no está en tu repositorio | Análisis de composición del software |
| Falta de autorización entre usuarios | El código es sintácticamente correcto; la regla que falta forma parte del diseño de tu producto | Revisión y una prueba con dos cuentas |
| Implementaciones a medio terminar o de relleno | No es un patrón de seguridad | Checks de calidad del código y de riesgos de IA, y revisión |
| Sin timeouts, consultas dentro de bucles, sin reporte de errores | Son problemas de fiabilidad, fuera de la mayoría de los conjuntos de reglas de seguridad | Checks de preparación para producción |
| Hosting o permisos de base de datos mal configurados | El ajuste está en una consola, no en el código fuente | Revisar el entorno desplegado |
Por eso un informe SAST limpio no equivale a código listo para publicar. La guía sobre qué sale mal con el vibe coding y la guía sobre paquetes inventados repasan los casos que más importan en el código escrito con ayuda de IA.
Dónde encaja vetkit
vetkit no es un motor SAST propio. Es una auditoría de repositorios que ejecuta análisis estático como una parte de un informe más amplio. Para la seguridad del código usa Opengrep con 663 reglas propias, listadas en el catálogo público de checks, y añade Bandit para Python y gosec para Go cuando se seleccionan esos checks. Alrededor de eso ejecuta secret scanning, checks de vulnerabilidades en dependencias y de existencia de paquetes, checks de calidad del código, de riesgos del código generado por IA y de preparación para producción, y convierte los hallazgos en trabajo con seguimiento. Los hallazgos se pueden exportar como SARIF.
Si ya usas una de las herramientas de arriba y estás contento con ella, mantenla. vetkit resulta útil para las filas de la segunda tabla, y está en acceso anticipado con un Security Quick Scan gratuito que cubre secretos, vulnerabilidades conocidas en dependencias y la configuración de seguridad básica.
Fuentes
Leímos las afirmaciones sobre otras herramientas en su propia documentación o en sus repositorios el . Los productos cambian rápido, así que considera las páginas de cada proyecto como la referencia definitiva:
- Acerca del code scanning con CodeQL y Acerca de la CLI de CodeQL
- Escáner SAST de Checkmarx One
- Repositorio de Opengrep
- Semgrep Community Edition y AppSec Platform
- Documentación de Snyk Code
- Qué es SonarQube y repositorio de SonarQube Community Build
- Documentación de Bandit
- Repositorio de gosec
- Repositorio de Brakeman
Los nombres de productos son marcas comerciales de sus respectivos propietarios. vetkit no está afiliado a ellos ni cuenta con su respaldo o patrocinio; los nombres se usan solo para identificar las herramientas. ¿Has visto algo desactualizado? Escribe a contact@vetkit.dev y lo corregiremos.