Auditorías, aplicaciones y software

¿Qué son SAST y DAST en ciberseguridad y cómo se complementan?

Publicado: 29 de octubre de 2025 | Actualizado: 30 de julio de 2026

En el desarrollo de software seguro, SAST y DAST son dos metodologías esenciales para detectar vulnerabilidades antes de que puedan ser explotadas.

SAST (Static Application Security Testing) analiza el código fuente sin ejecutar la aplicación, mientras que DAST (Dynamic Application Security Testing) examina su comportamiento cuando está en funcionamiento y simula ataques externos.

Ambas técnicas se complementan. Cuando se combinan con SCA, automatización CI/CD y prácticas DevSecOps, permiten proteger las aplicaciones de software durante todo su ciclo de vida.

¿Qué es SAST (Static Application Security Testing)?

SAST es una metodología de análisis estático que examina el código fuente, el código compilado, los binarios o determinados archivos de configuración sin necesidad de ejecutar la aplicación.

También se conoce como una prueba de caja blanca, ya que la herramienta dispone de visibilidad sobre la estructura interna del software.

Su objetivo es localizar patrones inseguros, errores de programación y vulnerabilidades introducidas durante el desarrollo. Dependiendo del lenguaje, el framework y las reglas configuradas, SAST puede ayudar a identificar problemas como:

  • Inyecciones SQL.
  • Cross-site scripting o XSS.
  • Desbordamientos de búfer.
  • Uso de funciones inseguras.
  • Validación incorrecta de datos.
  • Exposición de información sensible.
  • Problemas de autenticación o autorización presentes en el código.
  • Incumplimientos de políticas de codificación segura.

Una de sus principales ventajas es que permite aplicar el principio shift left: trasladar las pruebas de seguridad a las primeras etapas del ciclo de desarrollo.

¿Cómo funciona SAST?

El análisis SAST puede integrarse directamente en los entornos de desarrollo, repositorios de código y pipelines CI/CD.

Un proceso habitual sería el siguiente:

  1. Un desarrollador realiza un cambio y envía un commit al repositorio.
  2. La herramienta SAST analiza automáticamente el código modificado.
  3. Las reglas de seguridad identifican patrones potencialmente vulnerables.
  4. La plataforma genera un informe con la ubicación del problema, su gravedad y posibles recomendaciones.
  5. El equipo valida el hallazgo y corrige el código antes de compilarlo, fusionarlo o desplegarlo.

Según la configuración adoptada, también pueden establecerse controles para impedir que un cambio llegue a la rama principal cuando contiene vulnerabilidades críticas o de severidad alta.

Ejemplo: si un desarrollador construye una consulta SQL concatenando directamente datos introducidos por el usuario, SAST puede señalar la línea de código concreta antes de que la aplicación se despliegue.

Beneficios de usar SAST

Sus principales ventajas son:

  • Detecta errores desde las primeras fases.
  • Reduce el coste de remediación.
  • Identifica el archivo y la línea afectados.
  • Se integra con repositorios y pipelines CI/CD.
  • Ayuda a formar a los desarrolladores en codificación segura.
  • Facilita el seguimiento de métricas y vulnerabilidades.

Como limitación, puede generar falsos positivos y no detectar problemas que solo aparecen durante la ejecución.

¿Qué es DAST (Dynamic Application Security Testing)?

DAST es una metodología de análisis dinámico que evalúa una aplicación mientras está en ejecución.

Se considera una prueba de caja negra, ya que analiza el sistema desde una perspectiva externa, normalmente sin acceso directo al código fuente. La herramienta interactúa con la aplicación de una forma similar a como podría hacerlo un atacante.

DAST puede utilizarse para analizar:

  • Aplicaciones web.
  • APIs REST, SOAP o GraphQL.
  • Portales corporativos.
  • Servicios expuestos a Internet.
  • Aplicaciones desplegadas en entornos de prueba, staging o preproducción.

Su finalidad es identificar vulnerabilidades que se manifiestan cuando los componentes de la aplicación, el servidor, la base de datos y la infraestructura interactúan entre sí.

¿Cómo funciona DAST?

Para ejecutar un análisis DAST, la aplicación debe estar desplegada y accesible en un entorno controlado.

El proceso suele incluir las siguientes etapas:

  1. Se despliega la aplicación en un entorno de pruebas o staging.
  2. Se configuran las URLs, APIs, credenciales y flujos que deben analizarse.
  3. La herramienta rastrea las rutas y puntos de entrada disponibles.
  4. Se envían peticiones diseñadas para detectar comportamientos inseguros.
  5. Se analizan las respuestas HTTP, los códigos de estado y los cambios producidos.
  6. Se genera un informe con los hallazgos, evidencias, severidad y recomendaciones de remediación.

Las pruebas pueden incluir intentos de inyección, manipulación de parámetros, análisis de cabeceras, validación de sesiones o comprobación de controles de acceso.

Cuando la aplicación contiene áreas privadas, es importante configurar correctamente la autenticación. De lo contrario, la herramienta podría limitarse a las páginas públicas y dejar sin analizar funcionalidades relevantes.

Ejemplo: DAST puede comprobar si un usuario con permisos básicos consigue acceder a una funcionalidad administrativa manipulando un identificador o una URL.

Beneficios de usar DAST

DAST permite:

  • Analizar la aplicación en condiciones cercanas a producción.
  • Detectar configuraciones inseguras.
  • Evaluar sesiones, autenticación y controles de acceso.
  • Analizar APIs y endpoints expuestos.
  • Comprobar si una vulnerabilidad puede explotarse.
  • Verificar que los parches aplicados funcionan correctamente.

Sus principales limitaciones son que necesita una aplicación desplegada, los análisis pueden ser más lentos y no suele indicar la línea exacta de código que causa el problema.

¿Cuáles son las principales diferencias entre SAST y DAST?

La diferencia fundamental es la perspectiva desde la que se analiza la aplicación:

  • SAST observa el interior del software, examinando su código.
  • DAST comprueba el comportamiento exterior, interactuando con la aplicación en funcionamiento.

Momento de análisis

SAST se ejecuta en las primeras fases del ciclo de desarrollo. Puede activarse al escribir código, realizar un commit, abrir una pull request o lanzar una compilación.

DAST necesita que exista una versión desplegada y operativa, por lo que suele aplicarse en entornos de integración, pruebas, staging o preproducción.

En un pipeline DevSecOps maduro, ambos análisis se ejecutan de manera recurrente y no únicamente antes de publicar una nueva versión.

Acceso al código fuente

SAST necesita acceder al código fuente, a los binarios o a otros artefactos internos. Por este motivo, sus analizadores suelen estar especializados en determinados lenguajes y frameworks.

DAST no requiere acceso al código. Interactúa con las interfaces expuestas y analiza las respuestas de la aplicación, independientemente de si está desarrollada en Java, .NET, Python, PHP u otra tecnología.

Tipos de vulnerabilidades que detectan

SAST es especialmente útil para identificar:

  • Patrones de programación inseguros.
  • Validación incorrecta de entradas.
  • Funciones criptográficas débiles.
  • Credenciales o secretos incluidos en el código.
  • Errores en el tratamiento de datos.
  • Flujos potencialmente vulnerables.
  • Incumplimientos de estándares de codificación.

DAST puede detectar:

  • Configuraciones inseguras.
  • Problemas en las cabeceras HTTP.
  • Fallos de autenticación o gestión de sesiones.
  • Controles de acceso incorrectos.
  • Endpoints expuestos.
  • Errores observables en la lógica de negocio.
  • Vulnerabilidades que aparecen por la interacción entre varios componentes.
  • Comportamientos inseguros de APIs y servicios web.

Algunas vulnerabilidades, como determinados tipos de inyección o XSS, pueden ser identificadas por ambas metodologías, aunque desde perspectivas diferentes.

Herramientas SAST y DAST

Existen herramientas comerciales, de código abierto y plataformas que combinan varias capacidades de seguridad.

La elección debe tener en cuenta los lenguajes utilizados, el tipo de aplicación, las necesidades de integración, el volumen de proyectos y los requisitos de cumplimiento.

HerramientaCategoríaCaracterísticas principales
SonarQubeSAST y calidad de códigoAnálisis de código, reglas de calidad, integración CI/CD y soporte para múltiples lenguajes
CheckmarxSASTAnálisis empresarial, reglas personalizables e integración con repositorios y pipelines
Fortify Static Code AnalyzerSASTAnálisis profundo del código, soporte multilenguaje e informes de cumplimiento
SemgrepSASTReglas flexibles, análisis rápido e integración sencilla en flujos de desarrollo
GitHub CodeQLSASTConsultas sobre el código, integración con GitHub y detección automatizada de vulnerabilidades
Veracode Static AnalysisSASTEscaneo centralizado en la nube y gestión de resultados
Burp SuiteDAST y pruebas manualesProxy de interceptación, escáner web, extensiones y funcionalidades para pruebas avanzadas
OWASP ZAPDASTHerramienta de código abierto para análisis automatizado y manual de aplicaciones web
InvictiDASTEscaneo automatizado de aplicaciones y APIs con validación de vulnerabilidades
AcunetixDASTAnálisis de aplicaciones web, APIs y configuraciones expuestas
HCL AppScanSAST y DASTPlataforma con diferentes modalidades de análisis e integración empresarial
GitLabSAST, DAST y otras pruebasIntegración de controles de seguridad dentro del ciclo DevSecOps

La herramienta por sí sola no garantiza la seguridad. Para obtener resultados útiles es necesario configurar correctamente las reglas, los activos, la autenticación, los umbrales de severidad y los responsables de remediación.

¿Por qué es recomendable combinar SAST, DAST y SCA?

SAST y DAST ofrecen una cobertura amplia, pero no abarcan por sí solos todos los riesgos de una aplicación moderna.

Gran parte del software actual se construye mediante librerías, frameworks, paquetes de código abierto, contenedores y otros componentes de terceros. Para analizar estos elementos se utiliza SCA (Software Composition Analysis).

El papel de SCA en la seguridad de las aplicaciones

SCA identifica los componentes y dependencias incluidos en una aplicación y los compara con bases de datos de vulnerabilidades conocidas.

Puede ayudar a detectar:

  • Librerías con vulnerabilidades publicadas.
  • Versiones obsoletas o sin soporte.
  • Dependencias transitivas vulnerables.
  • Componentes desconocidos.
  • Riesgos relacionados con licencias.
  • Paquetes introducidos en la cadena de suministro.
  • Dependencias que requieren una actualización urgente.

Este análisis también puede utilizarse para crear o mantener un SBOM (Software Bill of Materials), es decir, un inventario de los componentes que forman parte de una aplicación.

Cómo se complementan SAST, DAST y SCA

Las tres metodologías responden a preguntas diferentes:

  • SAST: ¿existen vulnerabilidades en el código desarrollado por el equipo?
  • SCA: ¿utilizamos componentes de terceros vulnerables o desactualizados?
  • DAST: ¿puede explotarse algún fallo mientras la aplicación está funcionando?

Su combinación mejora la cobertura durante todo el ciclo de vida:

MetodologíaÁrea principalMomento recomendado
SASTCódigo propioDesde las primeras fases de desarrollo
SCADependencias y componentes de tercerosDurante la instalación, compilación y actualización de dependencias
DASTAplicación desplegada y comportamiento externoEn pruebas, staging y antes de producción

La estrategia puede completarse con revisión manual de código, pentesting, análisis de infraestructura, pruebas de APIs y controles específicos sobre la gestión de identidades.

En aplicaciones que utilizan modelos de inteligencia artificial también es recomendable realizar evaluaciones específicas sobre prompts, datos, integraciones, permisos y comportamiento de los LLMs.

¿Cómo integrar SAST y DAST en el ciclo de desarrollo?

Para que SAST y DAST sean eficaces, deben formar parte del proceso habitual de desarrollo y no ejecutarse únicamente como una revisión aislada al final de cada proyecto.

El objetivo es obtener resultados frecuentes, priorizados y accesibles para los equipos de desarrollo, operaciones y seguridad.

Integración en procesos DevSecOps y CI/CD

Una posible distribución de controles sería:

Durante la programación

  • Análisis SAST desde el IDE.
  • Reglas de codificación segura.
  • Detección de secretos.
  • Revisión de dependencias mediante SCA.

Al enviar un commit o pull request

  • Escaneo SAST del código modificado.
  • Análisis de dependencias.
  • Comprobación de políticas.
  • Bloqueo de vulnerabilidades críticas.

Durante la compilación

  • Revisión de artefactos y binarios.
  • Análisis de imágenes de contenedores.
  • Generación o actualización del SBOM.
  • Validación de configuraciones.

En staging o preproducción

  • Ejecución de DAST.
  • Pruebas autenticadas.
  • Análisis de APIs.
  • Validación de cabeceras, sesiones y controles de acceso.
  • Verificación de vulnerabilidades previamente corregidas.

Antes del paso a producción

  • Revisión de excepciones.
  • Validación de riesgos pendientes.
  • Aprobación según criterios de severidad.
  • Comprobación de evidencias de seguridad.

Cuando la aplicación se despliega en infraestructuras externas, estos controles deben complementarse con medidas de seguridad en Cloud, revisión de configuraciones y análisis de permisos.

Automatización de las pruebas de seguridad

Para automatizar SAST y DAST es importante:

  1. Definir qué pruebas se ejecutarán en cada fase.
  2. Establecer niveles de severidad.
  3. Determinar qué vulnerabilidades bloquean un despliegue.
  4. Integrar los resultados con los sistemas de tickets.
  5. Asignar responsables y plazos de corrección.
  6. Ajustar reglas y falsos positivos.
  7. Medir la evolución del riesgo.

Algunas métricas útiles son el número de vulnerabilidades, el tiempo medio de remediación, la antigüedad de los hallazgos y el porcentaje de proyectos cubiertos.

¿Cómo implementamos SAST y DAST en Ciberso?

En Ciberso adaptamos la implantación de SAST y DAST a la tecnología, los procesos y el nivel de riesgo de cada organización.

Evaluación técnica

Analizamos la arquitectura, los repositorios, los pipelines CI/CD, las dependencias y los requisitos de seguridad para definir un plan de implantación adaptado.

Integración y automatización

Seleccionamos e integramos herramientas SAST, DAST y SCA, configurando escaneos, reglas de severidad, bloqueos automáticos y conexión con los sistemas de gestión de incidencias.

Informes y recomendaciones

Entregamos informes con las vulnerabilidades detectadas, su impacto, las evidencias técnicas y las acciones de remediación priorizadas.

Auditoría y cumplimiento

Complementamos los análisis automáticos con revisión manual de código, pentesting y validación de vulnerabilidades. También alineamos los resultados con ISO/IEC 27001, el Esquema Nacional de Seguridad y otros requisitos aplicables.

Conclusión

SAST y DAST son metodologías complementarias para proteger las aplicaciones desde el desarrollo hasta su ejecución.

SAST detecta errores en el código desde las primeras fases, mientras que DAST comprueba el comportamiento real de la aplicación desplegada.

Cuando se combinan con SCA, automatización CI/CD y procesos DevSecOps, permiten detectar vulnerabilidades antes, reducir los costes de corrección y evitar que fallos críticos lleguen a producción.

En Ciberso ayudamos a integrar estas metodologías en tus procesos de desarrollo mediante herramientas, automatización, informes accionables y acompañamiento especializado.

Solicita más información

Si necesitas contactar con nosotros puedes rellenar formulario a continuación. Nos pondremos en contacto contigo lo antes posible.