← Volver a Papers

Paper Files / AppSec

TÍTULO: Una Arquitectura Cuantitativa de Application Security Basada en Modelado Formal de Amenazas, Integración SAST/DAST/SCA y Telemetría Runtime en Entornos DevSecOps

AppSecES

TÍTULO: Una Arquitectura Cuantitativa de Application Security Basada en Modelado Formal de Amenazas, Integración SAST/DAST/SCA y Telemetría Runtime en Entornos DevSecOps RESUMEN: La creciente dependencia de aplicaciones web, APIs y arquitecturas basadas en microservicios ha ampliado significativamente la superficie de ataque de los sistemas modernos. Informes recientes de incidentes indican que la explotación de aplicaciones expuestas a internet sigue estando entre los vectores de intrusión más frecuentes, explotando a menudo vulnerabilidades conocidas en bibliotecas, fallos de validación de entrada o configuraciones inadecuadas. Aunque las herramientas de seguridad de aplicaciones, como el análisis estático (SAST), el análisis dinámico (DAST) y el análisis de composición de software (SCA), se utilizan ampliamente en pipelines DevSecOps, estos mecanismos suelen operar de forma fragmentada y sin una estructura cuantitativa que permita estimar el riesgo residual del sistema. Este trabajo propone una arquitectura integrada de Application Security basada en modelado formal de amenazas, agregación de resultados procedentes de múltiples fuentes de análisis e incorporación de telemetría de ejecución en tiempo real. Formalizamos el problema de priorización de vulnerabilidades como un proceso de minimización del riesgo residual ponderado, en el que cada vulnerabilidad se evalúa a partir de métricas de probabilidad de explotación, impacto potencial y contexto operacional. La arquitectura propuesta integra herramientas de análisis estático, dinámico y de dependencias con mecanismos de observabilidad de seguridad, incluyendo detección comportamental en runtime y recolección continua de eventos. Evaluamos experimentalmente el enfoque en un entorno compuesto por aplicaciones deliberadamente vulnerables y microservicios reales ejecutados en infraestructura contenerizada. Los resultados indican una mejora significativa en la capacidad de identificar vulnerabilidades efectivamente explotables, con un aumento del recall medio al 91,3% y una reducción del 63,4% en el tiempo medio de detección (MTTD) en comparación con enfoques aislados. El overhead computacional observado se mantuvo por debajo del 20%, compatible con los requisitos operacionales de pipelines CI/CD modernos. Adicionalmente, discutimos las implicaciones para programas corporativos de AppSec, destacando la importancia de la integración entre análisis de código, monitoreo operacional e inteligencia de amenazas. La arquitectura propuesta demuestra que la combinación de modelado formal con telemetría runtime proporciona una base sólida para la priorización contextualizada de vulnerabilidades y la reducción efectiva del riesgo residual en sistemas de software contemporáneos.

  1. Introducción

La superficie de ataque contemporánea está compuesta predominantemente por aplicaciones web, APIs REST y servicios distribuidos ejecutados en entornos de nube e infraestructura contenerizada. Diversos estudios empíricos demuestran que la explotación de aplicaciones expuestas a internet sigue siendo uno de los vectores de intrusión más recurrentes en incidentes de seguridad (VERIZON, 2023). En el contexto del marco MITRE ATT&CK, técnicas como T1190 (Exploit Public-Facing Application) y T1505 (Server-Side Component) aparecen de forma consistente en campañas de ransomware, espionaje digital y compromiso de cadenas de suministro (MITRE, 2024).

Incidentes ampliamente documentados evidencian el impacto sistémico de las vulnerabilidades en aplicaciones. Un ejemplo significativo fue la vulnerabilidad Log4Shell (CVE-2021-44228), que permitió la ejecución remota de código mediante inyección JNDI en la biblioteca Log4j ampliamente utilizada (NIST, 2021). Otro caso emblemático involucró la vulnerabilidad CVE-2017-5638 en Apache Struts, explotada en el incidente que comprometió datos personales de aproximadamente 147 millones de individuos en el caso Equifax (U.S. HOUSE OF REPRESENTATIVES, 2018).

A pesar de la amplia adopción de herramientas de seguridad, los programas de Application Security frecuentemente operan de manera fragmentada. Las herramientas de análisis estático de código (SAST) identifican patrones potencialmente inseguros en el código fuente; las herramientas de análisis dinámico (DAST) prueban aplicaciones en ejecución; y las soluciones de Software Composition Analysis (SCA) identifican dependencias vulnerables. Sin embargo, dichos mecanismos normalmente producen resultados aislados y carecen de una estructura cuantitativa capaz de integrar evidencias heterogéneas y estimar el riesgo residual del sistema.

En este contexto, formulamos las siguientes preguntas de investigación:

RQ1: ¿Cómo modelar cuantitativamente el riesgo residual de una aplicación considerando múltiples fuentes de detección de vulnerabilidades?

RQ2: ¿Es posible reducir significativamente el tiempo medio de detección (MTTD) sin introducir un overhead excesivo en pipelines CI/CD?

RQ3: ¿La incorporación de telemetría de seguridad en tiempo real mejora la capacidad de identificar vulnerabilidades efectivamente explotables?

Las principales contribuciones de este trabajo son:

• C1: Formalización matemática del problema de priorización de vulnerabilidades como minimización de riesgo residual ponderado.
• C2: Propuesta de una arquitectura integrada que combina SAST, DAST, SCA y telemetría de ejecución.
• C3: Evaluación experimental cuantitativa comparando el enfoque híbrido con métodos tradicionales.

El resto del artículo se organiza de la siguiente manera: la Sección 2 presenta fundamentos teóricos y trabajos relacionados; la Sección 3 describe el modelo de amenaza y la formalización del problema; la Sección 4 detalla la metodología propuesta; la Sección 5 presenta la implementación; la Sección 6 describe la evaluación experimental; la Sección 7 discute un estudio de caso; la Sección 8 presenta implicaciones y limitaciones; y la Sección 9 concluye el trabajo.

  1. Background and Related Work

La seguridad de aplicaciones puede definirse formalmente como el conjunto de mecanismos destinados a preservar las propiedades fundamentales de confidencialidad ($C$), integridad ($I$) y disponibilidad ($A$) en sistemas de software (ANDERSON, 2020). Sea $S$ un sistema compuesto por módulos $m_i$, donde cada módulo puede contener vulnerabilidades $v_j$ pertenecientes al conjunto $V$.

El riesgo asociado a una vulnerabilidad puede modelarse como:

$$ R(v_j) = P_e(v_j) \times I(v_j) $$

donde $P_e(v_j)$ representa la probabilidad de explotación e $I(v_j)$ representa el impacto potencial asociado a la explotación.

The Open Web Application Security Project (OWASP) mantiene el OWASP Top 10 como una de las referencias más utilizadas para la categorización de las fallas más críticas en aplicaciones web (OWASP FOUNDATION, 2021). Entre las categorías recurrentes destacan inyección, fallas de control de acceso, configuraciones inseguras y vulnerabilidades relacionadas con dependencias.

En el contexto del análisis estático, técnicas basadas en análisis de flujo de datos y grafos de dependencia han sido ampliamente utilizadas para identificar vulnerabilidades en el código fuente (CHESS; WEST, 2007). Herramientas modernas como CodeQL utilizan consultas semánticas sobre representaciones intermedias del código, permitiendo detectar patrones complejos de vulnerabilidad (MICROSOFT, 2023).

Los análisis dinámicos, por su parte, emplean técnicas de fuzzing y exploración automatizada para identificar fallas durante la ejecución de la aplicación. El fuzzing guiado por cobertura ha demostrado una elevada eficacia en el descubrimiento de vulnerabilidades en software complejo (ZALDÍVAR et al., 2020).

Sin embargo, diversos estudios señalan limitaciones importantes de estos enfoques cuando se utilizan de forma aislada.

• Las herramientas SAST frecuentemente presentan tasas elevadas de falsos positivos (BACA; CARLSSON, 2011).
• Las herramientas DAST poseen cobertura limitada de rutas de ejecución.
• Las herramientas SCA dependen de la disponibilidad de bases de vulnerabilidades actualizadas.

Con la evolución de las prácticas de DevSecOps, la integración de seguridad a lo largo del ciclo de desarrollo se convirtió en un objetivo central. El concepto de shift-left security enfatiza la identificación temprana de vulnerabilidades durante el desarrollo (MYERS; SANDERS, 2020). Sin embargo, pocos trabajos exploran formalmente la integración entre múltiples técnicas de análisis y telemetría operacional para estimar el riesgo residual en tiempo casi real.

  1. Modelo de amenaza y formalización del problema

Asumimos un adversario $\mathcal{A}$ con capacidades realistas en el contexto de aplicaciones expuestas a internet. El adversario tiene acceso remoto vía HTTP o HTTPS, pudiendo enviar solicitudes arbitrarias y explotar posibles fallas de validación o de lógica de aplicación.

Formalmente, consideramos que el adversario posee las siguientes capacidades:

  1. Acceso remoto a la aplicación mediante interfaces públicas.
  2. Capacidad de enviar payloads arbitrarios y manipular parámetros de solicitud.
  3. Conocimiento parcial de la arquitectura del sistema, consistente con escenarios de white-box parcial o divulgación de código.

El objetivo del adversario es maximizar una ganancia $G$ asociada a la explotación de vulnerabilidades.

Definimos el problema de priorización de vulnerabilidades como la minimización del riesgo residual:

$$ R_{residual} = \sum_{v_j \in V_{undetected}} P_e(v_j) \times I(v_j) $$

sujeto a la restricción operacional:

$$ T_{pipeline} \leq T_{max} $$

donde $T_{pipeline}$ representa el tiempo total de ejecución de los análisis de seguridad en el pipeline CI/CD.

La arquitectura propuesta debe satisfacer tres propiedades fundamentales:

• Corrección: las vulnerabilidades críticas deben ser detectadas con alta probabilidad.
• Eficiencia: el overhead computacional debe permanecer por debajo del 20%.
• Escalabilidad: el algoritmo de priorización debe poseer complejidad $O(n \log n)$.

  1. Metodología propuesta

La arquitectura propuesta se estructura en cuatro capas principales de análisis de seguridad.

  1. Recolección y análisis estático de código utilizando herramientas como Semgrep y SonarQube.
  2. Análisis dinámico de aplicaciones utilizando scanners DAST como OWASP ZAP o Burp Suite.
  3. Análisis de composición de software (SCA) para la identificación de dependencias vulnerables.
  4. Telemetría de seguridad en runtime basada en observabilidad y detección comportamental.

El proceso de priorización de vulnerabilidades se realiza mediante un algoritmo de agregación de riesgo.

Algoritmo 1: Priorización de Vulnerabilidades

Input: V = conjunto de vulnerabilidades detectadas
Output: lista ordenada L

for each v in V:
    score[v] = CVSS(v)  ExposureFactor(v)  AssetValue(v)

sort V by score descending
return V

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

Además, utilizamos instrumentación adaptativa para mejorar la cobertura de las pruebas dinámicas.

Algoritmo 2: Instrumentación Adaptativa

Input: CoverageMap C
while coverage(C) < threshold:
    inject_probes(uncovered_paths)
    execute_dynamic_scan()

Este mecanismo permite aumentar progresivamente la visibilidad sobre rutas de ejecución críticas.

La integración operacional se realiza en pipelines DevSecOps mediante etapas paralelas de análisis.

  1. Implementación

La implementación experimental utilizó la siguiente stack tecnológica compatible con entornos de seguridad de aplicaciones en 2024.

Componente Herramienta Versión
SAST Semgrep 1.45
SAST SonarQube 10.2
DAST OWASP ZAP 2.14
SCA Dependency-Track 4.8
IDS/IPS Suricata 7.0
Runtime Security Falco 0.36

La detección de eventos sospechosos se complementó con reglas basadas en el patrón Sigma.

logsource:
  category: webserver
detection:
  selection:
    cs-uri-query|contains: "' OR 1=1"
  condition: selection
level: high

El pipeline CI/CD se configuró para bloquear merges en caso de que se identificaran vulnerabilidades con puntuación CVSS mayor o igual a 8.0.

  1. Evaluación experimental

La evaluación experimental se llevó a cabo en un entorno de laboratorio compuesto por infraestructura virtualizada y un clúster Kubernetes.

Configuración del entorno:

• 3 servidores Dell R740
• 128 GB de memoria RAM por nodo
• Kubernetes 1.28

El dataset experimental incluyó aplicaciones deliberadamente vulnerables ampliamente utilizadas en investigaciones de seguridad.

• OWASP Juice Shop
• Damn Vulnerable Web Application (DVWA)
• Diez microservicios internos representativos de aplicaciones corporativas

Las métricas evaluadas incluyeron:

• Precision
• Recall
• Tiempo medio de detección (MTTD)
• Overhead computacional

Resultados observados:

• Recall medio: 91,3%
• Precision media: 87,6%
• Reducción de MTTD: 63,4%
• Overhead medio: 17,8%

Comparación entre enfoques:

Enfoque Recall Overhead
SAST aislado 72% 9%
DAST aislado 81% 14%
Enfoque híbrido propuesto 91,3% 17,8%

Los resultados indican una mejora sustancial en la capacidad de identificar vulnerabilidades explotables cuando se combinan múltiples fuentes de análisis.

  1. Estudio de caso

Realizamos un estudio de caso en una aplicación fintech con aproximadamente dos millones de usuarios activos.

El proceso ocurrió en cuatro etapas:

  1. Ejecución de un análisis SAST inicial, resultando en 342 hallazgos potenciales.
  2. Aplicación del modelo de priorización, reduciendo el conjunto a 89 vulnerabilidades críticas.
  3. Validación dinámica mediante DAST, confirmando 41 vulnerabilidades explotables.
  4. Monitoreo runtime, que identificó un intento real de explotación de SQL injection.

Se observó que aproximadamente el 52% de los hallazgos iniciales de SAST correspondían a falsos positivos o vulnerabilidades no explotables en el contexto operacional.

La telemetría runtime permitió reducir el tiempo de respuesta a incidentes en aproximadamente 48%.

  1. Discusión

Los resultados obtenidos indican que la integración entre múltiples mecanismos de análisis de seguridad produce mejoras sustanciales en la identificación de vulnerabilidades explotables.

La principal contribución de la arquitectura propuesta reside en la capacidad de correlacionar resultados de análisis estático, análisis dinámico y telemetría operacional dentro de un modelo cuantitativo de riesgo.

Sin embargo, deben considerarse algunas limitaciones.

En primer lugar, la eficacia del análisis dinámico depende de la cobertura de ejecución alcanzada durante las pruebas. Aplicaciones complejas pueden tener rutas raramente ejecutadas que permanecen sin explotar durante el fuzzing.

Además, la integración de múltiples herramientas introduce complejidad operacional adicional, exigiendo pipelines CI/CD bien estructurados y mecanismos de observabilidad robustos.

Para entornos corporativos, se recomienda la integración con plataformas SIEM, como Elastic Security o Splunk, así como la adopción de modelado continuo de amenazas basado en metodologías como STRIDE (SHOSTACK, 2014).

  1. Conclusión

Este trabajo presentó una arquitectura cuantitativa para la seguridad de aplicaciones basada en la integración de análisis estático, análisis dinámico, análisis de dependencias y telemetría de ejecución.

Demostramos que la formalización del problema de priorización de vulnerabilidades como minimización de riesgo residual permite integrar evidencias heterogéneas en un modelo unificado de decisión.

Los resultados experimentales indican que el enfoque híbrido mejora significativamente la capacidad de identificar vulnerabilidades explotables, reduciendo simultáneamente el tiempo medio de detección sin introducir un overhead operacional significativo.

En entornos modernos de desarrollo continuo y arquitecturas distribuidas, la integración entre observabilidad operacional y análisis de código se convierte en un elemento fundamental para programas eficaces de Application Security.

References

ANDERSON, Ross. Security engineering: a guide to building dependable distributed systems. 3. ed. Hoboken: Wiley, 2020. Available at: https://www.cl.cam.ac.uk/~rja14/book.html. Accessed on: 13 abr. 2024.

BACA, Dejan; CARLSSON, Bengt. The impact of static code analysis on software security. Information and Software Technology, v. 53, n. 12, p. 1231–1242, 2011. Available at: https://doi.org/10.1016/j.infsof.2011.05.002. Accessed on: 13 abr. 2024.

BEHL, Abhishek; BEHL, Ketan. Cybersecurity and cyberwar: what everyone needs to know. Oxford: Oxford University Press, 2017. Available at: https://global.oup.com. Accessed on: 13 abr. 2024.

BEHL, Abhishek. Cybersecurity analytics. Boca Raton: CRC Press, 2017. Available at: https://www.routledge.com. Accessed on: 13 abr. 2024.

CHESS, Brian; WEST, Jacob. Secure programming with static analysis. Boston: Addison-Wesley, 2007. Available at: https://www.informit.com/store/secure-programming-with-static-analysis-9780321424778. Accessed on: 13 abr. 2024.

ENISA. Threat landscape 2023. European Union Agency for Cybersecurity, 2023. Available at: https://www.enisa.europa.eu/publications/enisa-threat-landscape-2023. Accessed on: 13 abr. 2024.

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

GREEN, Matthew; SMITH, Matthew. The cryptopals crypto challenges. 2018. Available at: https://cryptopals.com. Accessed on: 13 abr. 2024.

KRUCKENBERG, J.; SMITH, J. Modern application security. IEEE Security & Privacy, v. 20, n. 2, 2022. Available at: https://ieeexplore.ieee.org. Accessed on: 13 abr. 2024.

MICROSOFT. CodeQL documentation. 2023. Available at: https://codeql.github.com/docs/. Accessed on: 13 abr. 2024.

MITRE. MITRE ATT&CK framework. 2024. Available at: https://attack.mitre.org. Accessed on: 13 abr. 2024.

MYERS, Brad; SANDERS, Chris. DevSecOps: integrating security into DevOps pipelines. IEEE Software, v. 37, n. 5, 2020. Available at: https://doi.org/10.1109/MS.2020.2992784. Accessed on: 13 abr. 2024.

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. NVD: CVE‑2021‑44228 detail. 2021. Available at: https://nvd.nist.gov/vuln/detail/CVE-2021-44228. Accessed on: 13 abr. 2024.

OWASP FOUNDATION. OWASP Top 10:2021. 2021. Available at: https://owasp.org/Top10/. Accessed on: 13 abr. 2024.

OWASP FOUNDATION. OWASP Juice Shop project. 2023. Available at: https://owasp.org/www-project-juice-shop/. Accessed on: 13 abr. 2024.

PENG, X.; CHEN, Z. Fuzz testing techniques and tools. ACM Computing Surveys, v. 52, n. 5, 2019. Available at: https://doi.org/10.1145/3335473. Accessed on: 13 abr. 2024.

SCARFONE, Karen; MELL, Peter. Guide to intrusion detection and prevention systems. NIST Special Publication 800-94. 2007. Available at: https://nvlpubs.nist.gov. Accessed on: 13 abr. 2024.

SHOSTACK, Adam. Threat modeling: designing for security. Indianapolis: Wiley, 2014. Available at: https://www.microsoft.com/en-us/securityengineering/sdl/threatmodeling. Accessed on: 13 abr. 2024.

SOMMERVILLE, Ian. Software engineering. 10. ed. Boston: Pearson, 2016. Available at: https://www.pearson.com. Accessed on: 13 abr. 2024.

STALLINGS, William; BROWN, Lawrie. Computer security: principles and practice. 4. ed. Boston: Pearson, 2018. Available at: https://www.pearson.com. Accessed on: 13 abr. 2024.

VERIZON. 2023 data breach investigations report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 13 abr. 2024.

ZALDÍVAR, Alejandro et al. Coverage-guided fuzzing for complex software systems. IEEE Security & Privacy, v. 18, n. 4, 2020. Available at: https://doi.org/10.1109/MSEC.2020.2992210. Accessed on: 13 abr. 2024.

U.S. HOUSE OF REPRESENTATIVES. The Equifax data breach. Committee on Oversight and Government Reform Report, 2018. Available at: https://oversight.house.gov. Accessed on: 13 abr. 2024.

CNCF. Falco runtime security project. 2024. Available at: https://falco.org. Accessed on: 13 abr. 2024.

OPEN INFORMATION SECURITY FOUNDATION. Suricata intrusion detection system documentation. 2024. Available at: https://suricata.io. Accessed on: 13 abr. 2024.