← Retour aux articles

Paper Files / AppSec

TITRE : Une architecture quantitative et opérationnelle de Application Security fondée sur l’intégration de SAST, DAST, SCA et de la Threat Intelligence dans le cycle DevSecOps

AppSecFR

TITRE : Une architecture quantitative et opérationnelle de Application Security fondée sur l’intégration de SAST, DAST, SCA et de la Threat Intelligence dans le cycle DevSecOps RÉSUMÉ : La sécurité des applications (Application Security – AppSec) est devenue un composant central de la gestion des risques dans les environnements numériques modernes. L’adoption croissante d’architectures fondées sur des microservices, des API exposées, des conteneurs et des pipelines de livraison continue a considérablement élargi la surface d’attaque des organisations. Bien que de nombreux outils d’analyse de sécurité soient largement disponibles, de nombreuses organisations rencontrent encore des difficultés à prioriser les vulnérabilités en fonction du risque réel d’exploitation. Les outils d’analyse statique (SAST), d’analyse dynamique (DAST) et d’analyse de composition logicielle (SCA) produisent fréquemment de grands volumes de résultats, dont beaucoup présentent un faible impact opérationnel ou un taux élevé de faux positifs. Ce travail propose une architecture quantitative pour des programmes AppSec orientés risque, intégrant les résultats de SAST, DAST et SCA avec des sources externes de Threat Intelligence. Nous présentons un modèle formel de priorisation fondé sur une fonction de risque qui combine les scores CVSS, la preuve d’un exploit public, le contexte d’exposition de l’application et le mappage vers des techniques du framework MITRE ATT&CK. L’architecture proposée est intégrée à des pipelines DevSecOps et utilise des mécanismes de corrélation et de normalisation des vulnérabilités au moyen de plateformes de gestion telles que DefectDojo. Nous évaluons empiriquement l’approche sur un ensemble de 42 applications réelles développées en Java, Python et Node.js. Les résultats indiquent une réduction significative des vulnérabilités dupliquées, une diminution du taux de faux positifs et une amélioration substantielle du temps moyen de remédiation (MTTR). Une réduction de 63 % du MTTR et une diminution de 44,7 % du volume de résultats après corrélation entre scanners ont été observées. Nous démontrons également que l’intégration de la Threat Intelligence — y compris la présence d’exploits publics et l’observation d’une activité adversaire — améliore la priorisation des remédiations et oriente les ressources vers les vulnérabilités effectivement exploitables. Les résultats suggèrent que les programmes AppSec orientés risque, lorsqu’ils sont intégrés au cycle DevSecOps, offrent des gains mesurables en matière de réduction de la surface d’attaque et d’efficacité opérationnelle des équipes de sécurité.

  1. Introduction

La sécurité des applications (Application Security – AppSec) s’est imposée comme l’un des principaux vecteurs de risque dans les environnements d’entreprise modernes. L’accélération de la transformation numérique, combinée à l’adoption d’architectures fondées sur les microservices, les conteneurs et les API exposées, a considérablement élargi la surface d’attaque des organisations. Dans ce contexte, les applications web et les services distribués sont devenus le principal point d’interaction entre les utilisateurs légitimes et les adversaires potentiels.

Les rapports empiriques indiquent la centralité de ce vecteur. Le Verizon Data Breach Investigations Report montre que les vulnérabilités des applications web demeurent parmi les causes les plus récurrentes d’incidents de sécurité (VERIZON, 2023). En outre, les attaques exploitant des vulnérabilités connues dans des applications exposées à Internet continuent de constituer l’une des techniques d’intrusion prédominantes (MITRE, 2023).

Les incidents récents renforcent le caractère critique de la chaîne de dépendances logicielles. La vulnérabilité Log4Shell (CVE‑2021‑44228), par exemple, a démontré comment des bibliothèques largement utilisées peuvent introduire des risques systémiques à grande échelle (NIST, 2023). L’exploitation de cette faille permettait l’exécution de code à distance via une injection JNDI, affectant des millions de systèmes dans différents secteurs de l’économie.

Malgré l’adoption généralisée d’outils automatisés d’analyse de sécurité, de nombreuses organisations éprouvent des difficultés à prioriser efficacement les vulnérabilités. Les outils d’analyse statique génèrent fréquemment un grand volume de résultats avec un taux élevé de faux positifs, tandis que les approches exclusivement fondées sur l’analyse dynamique peuvent négliger des vulnérabilités latentes dans le code source.

Dans ce contexte, nous examinons le problème de recherche suivant : comment structurer un programme d’AppSec qui réduise effectivement le risque d’exploitation réel, et pas seulement le nombre nominal de vulnérabilités identifiées.

Nous formulons les questions de recherche suivantes :

RQ1: Comment corréler les résultats de SAST, DAST et SCA afin de réduire les faux positifs tout en maintenant la couverture de détection ?
RQ2: Comment modéliser quantitativement le risque d’exploitation des vulnérabilités en tenant compte de l’intelligence active sur les menaces ?
RQ3: Quel est l’impact opérationnel de cette intégration sur la réduction du temps moyen de remédiation (MTTR) ?

Les principales contributions de ce travail sont :

• Proposition d’une fonction formelle de risque pour la priorisation des vulnérabilités.
• Architecture intégrée d’AppSec orientée risque dans le contexte DevSecOps.
• Évaluation expérimentale fondée sur des applications de production réelles.

  1. Background and Related Work

Les outils de Static Application Security Testing (SAST) analysent le code source sans exécution du programme, en utilisant l’analyse des flux de données et de contrôle pour identifier des schémas de vulnérabilité (SCANDARIATO et al., 2013). Parmi les outils largement utilisés figurent SonarQube, Semgrep et Checkmarx.

Le Dynamic Application Security Testing (DAST) évalue les applications en exécution, en simulant des interactions adversariales afin d’identifier des vulnérabilités exploitables à l’exécution. Des outils tels qu’OWASP ZAP et Burp Suite sont largement utilisés dans ce contexte (OWASP, 2023).

Le Software Composition Analysis (SCA) se concentre sur l’identification des vulnérabilités dans les dépendances open source. Ces outils corrèlent les versions des bibliothèques avec des bases de données de vulnérabilités, telles que la National Vulnerability Database (NVD) (NIST, 2023). Parmi les exemples figurent Trivy, Snyk et OWASP Dependency-Check.

Des études empiriques montrent des limites significatives des outils d’analyse statique dans des environnements réels. Johnson et al. (2013) démontrent que les développeurs ignorent souvent les alertes en raison de la faible précision des outils. D’autres études indiquent que seule une fraction des vulnérabilités publiées est effectivement exploitée dans des attaques réelles (SHARMA; SHARMA, 2020).

Des cadres de maturité tels qu’OWASP SAMM et le NIST Secure Software Development Framework (SSDF) fournissent des orientations structurées pour les programmes d’AppSec, mais ne définissent pas de formalisation quantitative de la priorisation des vulnérabilités (OWASP, 2023; NIST, 2022).

Ces dernières années, l’intégration de l’intelligence sur les menaces à la gestion des vulnérabilités est devenue une pratique recommandée. Des bases telles qu’Exploit‑DB, CISA Known Exploited Vulnerabilities (KEV) et les flux de threat intelligence permettent d’identifier les vulnérabilités faisant l’objet d’une exploitation active (CISA, 2024).

  1. Threat Model and Problem Formalization

Nous considérons un adversaire ayant les capacités opérationnelles suivantes :

• Réaliser des balayages automatisés des services exposés sur Internet.
• Exploiter des vulnérabilités connues au moyen d’exploits publics disponibles.
• Combiner plusieurs vulnérabilités en chaînes d’attaque.

Dans le contexte de MITRE ATT&CK, de tels comportements correspondent à des techniques telles que Exploit Public‑Facing Application (T1190) et Active Scanning (T1595) (MITRE, 2023).

Nous définissons l’ensemble des vulnérabilités détectées comme suit :

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

Pour chaque vulnérabilité $v$, nous considérons les attributs suivants :

• $C(v)$ — score CVSS normalisé dans l’intervalle $[0,1]$
• $E(v)$ — indicateur d’exploit public disponible
• $X(v)$ — facteur d’exposition de l’application
• $T(v)$ — criticité associée à la technique MITRE ATT&CK

La fonction de risque est définie comme suit :

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

sous la contrainte :

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

Le problème de priorisation consiste à ordonner l’ensemble $V$ de manière à maximiser la réduction du risque agrégé après remédiation :

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

Ce modèle permet d’intégrer des informations contextuelles au-delà de la sévérité traditionnelle fondée uniquement sur le CVSS.

  1. Proposed Methodology

L’architecture proposée est composée de cinq couches opérationnelles intégrées au pipeline DevSecOps :

Couche Fonction
Ingestion Collecte des résultats de SAST, DAST et SCA
Normalisation Standardisation des vulnérabilités sur une plateforme centrale
Enrichissement Intégration avec des flux de threat intelligence
Priorisation Calcul du risque quantitatif
Orchestration Automatisation des corrections via le pipeline CI/CD

La plateforme DefectDojo est utilisée comme mécanisme d’agrégation et de déduplication des résultats.

L’algorithme de priorisation est défini comme suit :

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 complexité computationnelle de l’algorithme est $O(n \log n)$ en raison de l’étape de tri.

Nous intégrons les scanners directement au pipeline CI/CD. Un exemple d’exécution de Semgrep est présenté ci-dessous :

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

L’analyse dynamique avec OWASP ZAP peut être exécutée en mode automatisé :

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

L’architecture a été implémentée dans un cluster Kubernetes version 1.28 composé de six nœuds avec 32 vCPU et 128 Go de mémoire chacun.

L’ensemble des outils utilisés est présenté ci-dessous :

Catégorie Outil
SAST Semgrep 1.45, SonarQube 10
DAST OWASP ZAP 2.14
SCA Trivy 0.48
Orchestration GitLab CI
Gestion DefectDojo 2.25

Un exemple de règle personnalisée Semgrep pour l’identification d’une désérialisation non sécurisée en Python est présenté ci-dessous :

rules:
- id: insecure-deserialization
  pattern: pickle.loads(...)
  message: Possible désérialisation non sécurisée
  languages: [python]
  severity: ERROR
  1. Experimental Evaluation

L’expérience a été menée sur un ensemble de 42 applications d’entreprise.

Langue Nombre d’applications
Java 18
Python 14
Node.js 10

Au départ, 12.842 vulnérabilités ont été identifiées en combinant les trois scanners.

Après déduplication et corrélation entre outils, le nombre total est tombé à 7.103 résultats uniques, ce qui représente une réduction de 44,7%.

Le taux de faux positifs a été estimé à partir de l’analyse manuelle d’un échantillon de 600 vulnérabilités.

Approche Taux de faux positifs
SAST isolé 38% ± 4,2
Architecture proposée 20% ± 3,1

Une réduction significative du temps moyen de remédiation a également été observée.

Métrique Baseline Architecture proposée
MTTR 18,4 jours 6,8 jours

En outre, les vulnérabilités dans des dépendances avec exploit public actif ont fortement diminué après une priorisation fondée sur le risque.

Métrique Avant Après 60 jours
Dépendances critiques exploitables 312 87
  1. Case Study

Nous avons réalisé une étude de cas sur une application financière exposée publiquement.

Au cours de l’analyse, le SAST a identifié l’utilisation de la bibliothèque Jackson Databind vulnérable à la CVE‑2020‑36518. L’outil SCA a confirmé la présence de la dépendance à l’exécution.

L’intégration avec les flux d’intelligence a indiqué la présence d’un proof‑of‑concept public. Le calcul du risque a donné :

$$ R(v) = 0.87 $$

Cette valeur a classé la vulnérabilité parmi les trois plus critiques du système, ce qui a conduit à l’application d’un correctif en moins de 48 heures.

Sans priorisation fondée sur le risque, la vulnérabilité était classée uniquement comme « Élevée » parmi plus de 240 résultats.

  1. Discussion

Les résultats expérimentaux indiquent que l’intégration de plusieurs techniques d’analyse avec l’intelligence sur les menaces améliore sensiblement la priorisation des vulnérabilités.

Le principal avantage opérationnel est la réduction du bruit généré par les scanners automatisés. En incorporant le contexte d’exploitation réelle et l’exposition de l’application, les équipes peuvent orienter leurs efforts vers les vulnérabilités présentant la plus forte probabilité d’exploitation.

Cependant, l’approche présente des limites. La qualité de la priorisation dépend de la disponibilité et de la mise à jour des flux de threat intelligence. De plus, les vulnérabilités zero-day absentes des bases publiques peuvent ne pas bénéficier d’une priorisation adéquate.

L’intégration avec la surveillance du runtime basée sur eBPF et des outils de détection comportementale peut compléter l’approche en fournissant une visibilité sur l’exploitation active en production (LIGUORI et al., 2023).

  1. Conclusion

Nous avons présenté une architecture quantitative de sécurité des applications orientée risque, fondée sur l’intégration de SAST, DAST, SCA et de l’intelligence sur les menaces dans le cycle DevSecOps.

La formalisation d’une fonction de risque a permis de prioriser les vulnérabilités en tenant compte non seulement de la sévérité technique, mais aussi des preuves d’exploitation et du contexte opérationnel. L’évaluation expérimentale a démontré une réduction significative des faux positifs, une amélioration du temps moyen de remédiation et une diminution du nombre de dépendances vulnérables exploitables.

Les résultats indiquent que les programmes d’AppSec orientés par le risque peuvent accroître significativement l’efficacité opérationnelle des équipes de sécurité et réduire l’exposition réelle aux attaques.

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 avr. 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 avr. 2024.

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

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

FIRST. Common Vulnerability Scoring System v3.1 Specification. 2019. Available at: https://www.first.org/cvss/. Accessed on: 10 avr. 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 avr. 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 avr. 2024.

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

NIST. National Vulnerability Database. 2023. Available at: https://nvd.nist.gov. Accessed on: 10 avr. 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 avr. 2024.

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

OWASP. OWASP Top 10:2021. 2021. Available at: https://owasp.org/www-project-top-ten/. Accessed on: 10 avr. 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 avr. 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 avr. 2024.

VERIZON. Data Breach Investigations Report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 10 avr. 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 avr. 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 avr. 2024.

BROWN, Casey; GORDON, Andrew. Threat intelligence driven vulnerability management. SANS Institute, 2021. Available at: https://www.sans.org/white-papers/. Accessed on: 10 avr. 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 avr. 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 avr. 2024.

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

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

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

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

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