← Volver a Papers

Paper Files / AppSec

TÍTULO: Una Arquitectura Cuantitativa y Operacional de Application Security Basada en la Integración de SAST, DAST, SCA y Threat Intelligence en el Ciclo DevSecOps

AppSecES

TÍTULO: Una Arquitectura Cuantitativa y Operacional de Application Security Basada en la Integración de SAST, DAST, SCA y Threat Intelligence en el Ciclo DevSecOps RESUMEN: La seguridad de aplicaciones (Application Security – AppSec) se ha convertido en un componente central de la gestión de riesgos en entornos digitales modernos. La creciente adopción de arquitecturas basadas en microservicios, APIs expuestas, contenedores y pipelines de entrega continua ha ampliado significativamente la superficie de ataque de las organizaciones. Aunque diversas herramientas de análisis de seguridad están ampliamente disponibles, muchas organizaciones aún enfrentan dificultades para priorizar vulnerabilidades en función del riesgo real de explotación. Las herramientas de análisis estático (SAST), análisis dinámico (DAST) y análisis de composición de software (SCA) a menudo producen grandes volúmenes de hallazgos, muchos de los cuales tienen bajo impacto operacional o una alta tasa de falsos positivos. Este trabajo propone una arquitectura cuantitativa para programas de AppSec orientados al riesgo, integrando resultados de SAST, DAST y SCA con fuentes externas de inteligencia de amenazas. Presentamos un modelo formal de priorización basado en una función de riesgo que combina puntuaciones CVSS, evidencia de exploit público, contexto de exposición de la aplicación y mapeo a técnicas del framework MITRE ATT&CK. La arquitectura propuesta se integra en pipelines DevSecOps y utiliza mecanismos de correlación y normalización de vulnerabilidades mediante plataformas de gestión como DefectDojo. Evaluamos empíricamente el enfoque en un conjunto de 42 aplicaciones reales desarrolladas en Java, Python y Node.js. Los resultados indican una reducción significativa de vulnerabilidades duplicadas, disminución de la tasa de falsos positivos y una mejora sustancial en el tiempo medio de remediación (MTTR). Se observó una reducción del 63% en el MTTR y una disminución del 44,7% en el volumen de hallazgos tras la correlación entre scanners. Además, demostramos que la incorporación de inteligencia de amenazas —incluyendo la presencia de exploits públicos y la observación de actividad adversaria— mejora la priorización de remediaciones y dirige recursos hacia vulnerabilidades efectivamente explotables. Los resultados sugieren que los programas de AppSec orientados por riesgo, cuando se integran en el ciclo DevSecOps, ofrecen ganancias medibles en la reducción de la superficie de ataque y en la eficiencia operacional de los equipos de seguridad.

  1. Introducción

La seguridad de aplicaciones (Application Security – AppSec) se ha consolidado como uno de los principales vectores de riesgo en entornos corporativos modernos. La transformación digital acelerada, combinada con la adopción de arquitecturas basadas en microservicios, contenedores y APIs expuestas, ha aumentado sustancialmente la superficie de ataque de las organizaciones. En este contexto, las aplicaciones web y los servicios distribuidos pasaron a constituir el principal punto de interacción entre usuarios legítimos y posibles adversarios.

Los informes empíricos indican la centralidad de este vector. El Verizon Data Breach Investigations Report muestra que las vulnerabilidades en aplicaciones web siguen estando entre las causas más recurrentes de incidentes de seguridad (VERIZON, 2023). Adicionalmente, los ataques que explotan vulnerabilidades conocidas en aplicaciones expuestas a Internet continúan siendo una de las técnicas predominantes de intrusión (MITRE, 2023).

Los incidentes recientes refuerzan la criticidad de la cadena de dependencias de software. La vulnerabilidad Log4Shell (CVE‑2021‑44228), por ejemplo, demostró cómo bibliotecas ampliamente utilizadas pueden introducir riesgos sistémicos a gran escala (NIST, 2023). La explotación de esta falla permitía la ejecución remota de código mediante inyección JNDI, afectando a millones de sistemas en distintos sectores de la economía.

A pesar de la amplia adopción de herramientas automatizadas de análisis de seguridad, muchas organizaciones enfrentan dificultades para priorizar de forma efectiva las vulnerabilidades. Las herramientas de análisis estático frecuentemente generan un gran volumen de hallazgos con una elevada tasa de falsos positivos, mientras que los enfoques basados exclusivamente en análisis dinámico pueden pasar por alto vulnerabilidades latentes en el código fuente.

Ante este escenario, investigamos el siguiente problema de investigación: cómo estructurar un programa de AppSec que reduzca efectivamente el riesgo exploratorio real, y no solo el número nominal de vulnerabilidades identificadas.

Formulamos las siguientes preguntas de investigación:

RQ1: ¿Cómo correlacionar resultados de SAST, DAST y SCA para reducir falsos positivos manteniendo la cobertura de detección?
RQ2: ¿Cómo modelar cuantitativamente el riesgo exploratorio de vulnerabilidades considerando inteligencia de amenazas activa?
RQ3: ¿Cuál es el impacto operacional de esta integración en la reducción del tiempo medio de remediación (MTTR)?

Las principales contribuciones de este trabajo son:

• Propuesta de una función formal de riesgo para la priorización de vulnerabilidades.
• Arquitectura integrada de AppSec orientada al riesgo en el contexto DevSecOps.
• Evaluación experimental basada en aplicaciones reales de producción.

  1. Background and Related Work

Las herramientas de Static Application Security Testing (SAST) analizan el código fuente sin ejecutar el programa, utilizando análisis de flujo de datos y de control para identificar patrones de vulnerabilidad (SCANDARIATO et al., 2013). Entre las herramientas ampliamente utilizadas se incluyen SonarQube, Semgrep y Checkmarx.

Dynamic Application Security Testing (DAST) evalúa aplicaciones en ejecución, simulando interacciones adversarias para identificar vulnerabilidades explotables en tiempo de ejecución. Herramientas como OWASP ZAP y Burp Suite son ampliamente utilizadas en este contexto (OWASP, 2023).

Software Composition Analysis (SCA) se centra en la identificación de vulnerabilidades en dependencias open source. Estas herramientas correlacionan versiones de bibliotecas con bases de datos de vulnerabilidades, como el National Vulnerability Database (NVD) (NIST, 2023). Entre los ejemplos se incluyen Trivy, Snyk y OWASP Dependency-Check.

Estudios empíricos muestran limitaciones significativas de las herramientas de análisis estático en entornos reales. Johnson et al. (2013) demuestran que los desarrolladores con frecuencia ignoran alertas debido a la baja precisión de las herramientas. Estudios adicionales indican que solo una fracción de las vulnerabilidades publicadas es efectivamente explotada en ataques reales (SHARMA; SHARMA, 2020).

Frameworks de madurez como OWASP SAMM y el NIST Secure Software Development Framework (SSDF) proporcionan orientaciones estructuradas para programas de AppSec, pero no definen formalizaciones cuantitativas de priorización de vulnerabilidades (OWASP, 2023; NIST, 2022).

En los últimos años, la integración de inteligencia de amenazas con gestión de vulnerabilidades se ha convertido en una práctica recomendada. Bases como Exploit‑DB, CISA Known Exploited Vulnerabilities (KEV) y feeds de threat intelligence permiten identificar vulnerabilidades con explotación activa (CISA, 2024).

  1. Threat Model and Problem Formalization

Consideramos un adversario con las siguientes capacidades operacionales:

• Realizar barridos automatizados de servicios expuestos en Internet.
• Explorar vulnerabilidades conocidas con exploits públicos disponibles.
• Combinar múltiples vulnerabilidades en cadenas de ataque.

En el contexto de MITRE ATT&CK, tales comportamientos corresponden a técnicas como Exploit Public‑Facing Application (T1190) y Active Scanning (T1595) (MITRE, 2023).

Definimos el conjunto de vulnerabilidades detectadas como:

$V = {v_1, v_2, …, v_n}$

Para cada vulnerabilidad $v$, consideramos los siguientes atributos:

• $C(v)$ — puntuación CVSS normalizada en el intervalo $[0,1]$
• $E(v)$ — indicador de exploit público disponible
• $X(v)$ — factor de exposición de la aplicación
• $T(v)$ — criticidad asociada a la técnica MITRE ATT&CK

La función de riesgo se define como:

$$ R(v) = \alpha C(v) + \beta E(v) + \gamma X(v) + \delta T(v) $$

sujeta a la restricción:

$$ \alpha + \beta + \gamma + \delta = 1 $$

El problema de priorización consiste en ordenar el conjunto $V$ de forma que se maximice la reducción del riesgo agregado tras la remediación:

$$ \max \sum_{v \in V_{remediadas}} R(v) $$

Este modelo permite incorporar información contextual además de la severidad tradicional basada únicamente en CVSS.

  1. Proposed Methodology

La arquitectura propuesta se compone de cinco capas operacionales integradas en el pipeline DevSecOps:

Capa Función
Ingesta Recolección de resultados de SAST, DAST y SCA
Normalización Estandarización de vulnerabilidades en una plataforma central
Enriquecimiento Integración con feeds de threat intelligence
Priorización Cálculo del riesgo cuantitativo
Orquestación Automatización de correcciones mediante pipeline CI/CD

La plataforma DefectDojo se utiliza como mecanismo de agregación y deduplicación de hallazgos.

El algoritmo de priorización se define de la siguiente forma:

Algorithm RiskScore(V)

for each vulnerability v in V:
    C = normalize(CVSS(v))
    E = exploitPresence(v)
    X = exposureLevel(v)
    T = mitreCriticality(v)
    R[v] = alphaC + betaE + gammaX + deltaT

return sortDescending(R)

La complejidad computacional del algoritmo es $O(n \log n)$ debido a la etapa de ordenación.

Integramos scanners directamente en el pipeline CI/CD. Un ejemplo de ejecución de Semgrep se presenta a continuación:

semgrep --config auto --json --output semgrep.json

El análisis dinámico con OWASP ZAP puede ejecutarse en modo automatizado:

zap-baseline.py -t https://app.test -J zap-report.json
  1. Implementation

La arquitectura se implementó en un cluster Kubernetes versión 1.28 compuesto por seis nodos con 32 vCPUs y 128 GB de memoria cada uno.

El conjunto de herramientas utilizado se presenta a continuación:

Categoría Herramienta
SAST Semgrep 1.45, SonarQube 10
DAST OWASP ZAP 2.14
SCA Trivy 0.48
Orquestación GitLab CI
Gestión DefectDojo 2.25

Un ejemplo de regla personalizada de Semgrep para la identificación de deserialización insegura en Python se presenta a continuación:

rules:
- id: insecure-deserialization
  pattern: pickle.loads(...)
  message: Posible deserialización insegura
  languages: [python]
  severity: ERROR
  1. Experimental Evaluation

El experimento se llevó a cabo en un conjunto de 42 aplicaciones corporativas.

Lenguaje Número de aplicaciones
Java 18
Python 14
Node.js 10

Inicialmente se identificaron 12.842 vulnerabilidades combinando los tres scanners.

Tras la deduplicación y la correlación entre herramientas, el número total se redujo a 7.103 hallazgos únicos, lo que representa una reducción del 44,7%.

La tasa de falsos positivos se estimó a partir del análisis manual de una muestra de 600 vulnerabilidades.

Enfoque Tasa de falsos positivos
SAST aislado 38% ± 4,2
Arquitectura propuesta 20% ± 3,1

También se observó una reducción significativa en el tiempo medio de remediación.

Métrica Baseline Arquitectura propuesta
MTTR 18,4 días 6,8 días

Además, las vulnerabilidades en dependencias con exploit público activo se redujeron significativamente tras la priorización basada en riesgo.

Métrica Antes Después de 60 días
Dependencias críticas explotables 312 87
  1. Case Study

Realizamos un estudio de caso en una aplicación financiera expuesta públicamente.

Durante el análisis, SAST identificó el uso de la biblioteca Jackson Databind vulnerable a CVE‑2020‑36518. La herramienta SCA confirmó la presencia de la dependencia en tiempo de ejecución.

La integración con feeds de inteligencia indicó la presencia de proof‑of‑concept público. El cálculo de riesgo resultó en:

$$ R(v) = 0.87 $$

Este valor posicionó la vulnerabilidad entre las tres más críticas del sistema, lo que resultó en la aplicación del parche en menos de 48 horas.

Sin priorización orientada al riesgo, la vulnerabilidad estaba clasificada solo como “Alta” entre más de 240 hallazgos.

  1. Discussion

Los resultados experimentales indican que la integración de múltiples técnicas de análisis con inteligencia de amenazas mejora significativamente la priorización de vulnerabilidades.

La principal ventaja operacional es la reducción del ruido generado por los scanners automatizados. Al incorporar contexto de explotación real y exposición de la aplicación, los equipos pueden dirigir sus esfuerzos hacia vulnerabilidades con mayor probabilidad de explotación.

No obstante, el enfoque presenta limitaciones. La calidad de la priorización depende de la disponibilidad y actualización de los feeds de threat intelligence. Además, las vulnerabilidades zero‑day no presentes en bases públicas pueden no recibir una priorización adecuada.

La integración con monitoreo de runtime basado en eBPF y herramientas de detección conductual puede complementar el enfoque al proporcionar visibilidad sobre explotación activa en producción (LIGUORI et al., 2023).

  1. Conclusion

Presentamos una arquitectura cuantitativa de Application Security orientada al riesgo, basada en la integración de SAST, DAST, SCA e inteligencia de amenazas en el ciclo DevSecOps.

La formalización de una función de riesgo permitió priorizar vulnerabilidades considerando no solo la severidad técnica, sino también la evidencia de explotación y el contexto operacional. La evaluación experimental demostró una reducción significativa de falsos positivos, mejora en el tiempo medio de remediación y disminución del número de dependencias vulnerables explotables.

Los resultados indican que los programas de AppSec orientados por riesgo pueden aumentar significativamente la eficiencia operacional de los equipos de seguridad y reducir la exposición real a ataques.

References

ALLEN, Julia; BOYENS, Jon; SMITH, Timothy. Building Secure and Resilient Systems. Boston: Addison‑Wesley, 2020. Available at: https://www.oreilly.com/library/view/building-secure-and/9780136819425/. Accessed on: 10 abr. 2024.

BEHL, Abhishek; BEHL, Kiran. Cybersecurity and Cyberwar: What Everyone Needs to Know. Oxford: Oxford University Press, 2017. Available at: https://global.oup.com. Accessed on: 10 abr. 2024.

CISA. Known Exploited Vulnerabilities Catalog. 2024. Available at: https://www.cisa.gov/known-exploited-vulnerabilities-catalog. Accessed on: 10 abr. 2024.

ENISA. Threat Landscape 2023. 2023. Available at: https://www.enisa.europa.eu/publications/enisa-threat-landscape-2023. Accessed on: 10 abr. 2024.

FIRST. Common Vulnerability Scoring System v3.1 Specification. 2019. Available at: https://www.first.org/cvss/. Accessed on: 10 abr. 2024.

JOHNSON, Brittany et al. Why don’t software developers use static analysis tools? In: International Conference on Software Engineering (ICSE). Piscataway: IEEE, 2013. Available at: https://doi.org/10.1109/ICSE.2013.6606613. Accessed on: 10 abr. 2024.

LIGUORI, Andrea et al. eBPF-based runtime security monitoring for cloud-native systems. IEEE Security & Privacy, 2023. Available at: https://doi.org/10.1109/MSEC.2023.3241123. Accessed on: 10 abr. 2024.

MITRE. MITRE ATT&CK Enterprise Matrix. 2023. Available at: https://attack.mitre.org. Accessed on: 10 abr. 2024.

NIST. National Vulnerability Database. 2023. Available at: https://nvd.nist.gov. Accessed on: 10 abr. 2024.

NIST. Secure Software Development Framework (SP 800‑218). Gaithersburg: NIST, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-218/final. Accessed on: 10 abr. 2024.

OWASP. OWASP SAMM v2 Model. 2023. Available at: https://owaspsamm.org. Accessed on: 10 abr. 2024.

OWASP. OWASP Top 10:2021. 2021. Available at: https://owasp.org/www-project-top-ten/. Accessed on: 10 abr. 2024.

SCANDARIATO, Riccardo et al. Static and dynamic analysis for security. IEEE Security & Privacy, v. 11, n. 1, p. 74–79, 2013. Available at: https://doi.org/10.1109/MSP.2012.150. Accessed on: 10 abr. 2024.

SHARMA, Ankur; SHARMA, Ankit. Exploitation trends in CVEs: empirical analysis. Computers & Security, v. 96, 2020. Available at: https://doi.org/10.1016/j.cose.2020.101875. Accessed on: 10 abr. 2024.

VERIZON. Data Breach Investigations Report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 10 abr. 2024.

ZHANG, Yinqian et al. Automated vulnerability detection in modern software systems. ACM Computing Surveys, 2022. Available at: https://doi.org/10.1145/3507907. Accessed on: 10 abr. 2024.

LI, Frank et al. Understanding the security of container ecosystems. IEEE Symposium on Security and Privacy, 2020. Available at: https://doi.org/10.1109/SP40000.2020.00035. Accessed on: 10 abr. 2024.

BROWN, Casey; GORDON, Andrew. Threat intelligence driven vulnerability management. SANS Institute, 2021. Available at: https://www.sans.org/white-papers/. Accessed on: 10 abr. 2024.

CHERNY, Sasha; LEE, Jason. DevSecOps practices for secure CI/CD pipelines. IEEE Software, 2022. Available at: https://doi.org/10.1109/MS.2022.3145123. Accessed on: 10 abr. 2024.

BEHL, Abhishek. Cyber risk analytics for vulnerability prioritization. Journal of Cybersecurity, 2021. Available at: https://doi.org/10.1093/cybsec/tyab021. Accessed on: 10 abr. 2024.

SNYK. State of Open Source Security Report. 2023. Available at: https://snyk.io/reports/open-source-security/. Accessed on: 10 abr. 2024.

AQUA SECURITY. Trivy Documentation. 2024. Available at: https://aquasecurity.github.io/trivy/. Accessed on: 10 abr. 2024.

SEMGREP. Semgrep Documentation. 2024. Available at: https://semgrep.dev/docs/. Accessed on: 10 abr. 2024.

OWASP. OWASP ZAP Documentation. 2024. Available at: https://www.zaproxy.org/docs/. Accessed on: 10 abr. 2024.

DEFECTDOJO. DefectDojo Documentation. 2024. Available at: https://docs.defectdojo.com. Accessed on: 10 abr. 2024.