Paper Files / AppSec
Une architecture quantitative de sécurité applicative basée sur la modélisation formelle des menaces, l’intégration SAST/DAST/SCA et la télémétrie runtime dans des environnements DevSecOps
TITLE: Une architecture quantitative de sécurité applicative basée sur la modélisation formelle des menaces, l’intégration SAST/DAST/SCA et la télémétrie runtime dans des environnements DevSecOps ABSTRACT: La dépendance croissante aux applications web, aux API et aux architectures fondées sur les microservices a considérablement élargi la surface d’attaque des systèmes modernes. Des rapports récents d’incidents indiquent que l’exploitation des applications exposées à Internet demeure l’un des vecteurs d’intrusion les plus fréquents, en s’appuyant souvent sur des vulnérabilités connues dans les bibliothèques, des défaillances de validation des entrées ou des configurations inappropriées. Bien que les outils de sécurité des applications, tels que l’analyse statique (SAST), l’analyse dynamique (DAST) et l’analyse de composition logicielle (SCA), soient largement utilisés dans les pipelines DevSecOps, ces mécanismes opèrent généralement de manière fragmentée et sans structure quantitative permettant d’estimer le risque résiduel du système. Ce travail propose une architecture intégrée de sécurité applicative basée sur la modélisation formelle des menaces, l’agrégation des résultats provenant de multiples sources d’analyse et l’incorporation de la télémétrie d’exécution en temps réel. Nous formalisons le problème de priorisation des vulnérabilités comme un processus de minimisation du risque résiduel pondéré, dans lequel chaque vulnérabilité est évaluée à partir de métriques de probabilité d’exploitation, d’impact potentiel et de contexte opérationnel. L’architecture proposée intègre des outils d’analyse statique, dynamique et des dépendances avec des mécanismes d’observabilité de sécurité, incluant la détection comportementale en runtime et la collecte continue d’événements. Nous évaluons expérimentalement l’approche dans un environnement composé d’applications délibérément vulnérables et de microservices réels exécutés sur une infrastructure conteneurisée. Les résultats indiquent une amélioration significative de la capacité à identifier les vulnérabilités effectivement exploitables, avec une augmentation du recall moyen à 91,3 % et une réduction de 63,4 % du temps moyen de détection (MTTD) par rapport aux approches isolées. Le surcoût computationnel observé est resté inférieur à 20 %, compatible avec les exigences opérationnelles des pipelines CI/CD modernes. En outre, nous discutons les implications pour les programmes d’AppSec d’entreprise, en soulignant l’importance de l’intégration entre l’analyse du code, la surveillance opérationnelle et la threat intelligence. L’architecture proposée montre que la combinaison de la modélisation formelle avec la télémétrie runtime fournit une base solide pour la priorisation contextualisée des vulnérabilités et la réduction effective du risque résiduel dans les systèmes logiciels contemporains.
- Introduction
La surface d’attaque contemporaine est principalement composée d’applications web, d’API REST et de services distribués exécutés dans des environnements cloud et une infrastructure conteneurisée. Diverses études empiriques démontrent que l’exploitation d’applications exposées à Internet demeure l’un des vecteurs d’intrusion les plus récurrents dans les incidents de sécurité (VERIZON, 2023). Dans le cadre du framework MITRE ATT&CK, des techniques telles que T1190 (Exploit Public-Facing Application) et T1505 (Server-Side Component) apparaissent de manière constante dans des campagnes de ransomware, d’espionnage numérique et de compromission de chaînes d’approvisionnement (MITRE, 2024).
Des incidents largement documentés mettent en évidence l’impact systémique des vulnérabilités applicatives. Un exemple significatif a été la vulnérabilité Log4Shell (CVE-2021-44228), qui a permis l’exécution de code à distance via l’injection JNDI dans la bibliothèque Log4j largement utilisée (NIST, 2021). Un autre cas emblématique a concerné la vulnérabilité CVE-2017-5638 dans Apache Struts, exploitée lors de l’incident qui a compromis les données personnelles d’environ 147 millions d’individus dans l’affaire Equifax (U.S. HOUSE OF REPRESENTATIVES, 2018).
Malgré l’adoption généralisée d’outils de sécurité, les programmes d’Application Security opèrent fréquemment de manière fragmentée. Les outils d’analyse statique du code (SAST) identifient des motifs potentiellement non sûrs dans le code source ; les outils d’analyse dynamique (DAST) testent les applications en cours d’exécution ; et les solutions de Software Composition Analysis (SCA) identifient les dépendances vulnérables. Toutefois, ces mécanismes produisent généralement des résultats isolés et ne disposent pas d’une structure quantitative capable d’intégrer des preuves hétérogènes et d’estimer le risque résiduel du système.
Dans ce contexte, nous formulons les questions de recherche suivantes :
RQ1: Comment modéliser quantitativement le risque résiduel d’une application en prenant en compte plusieurs sources de détection de vulnérabilités ?
RQ2: Est-il possible de réduire significativement le temps moyen de détection (MTTD) sans introduire un surcoût excessif dans les pipelines CI/CD ?
RQ3: L’incorporation d’une télémétrie de sécurité en temps réel améliore-t-elle la capacité à identifier des vulnérabilités effectivement exploitables ?
Les principales contributions de ce travail sont :
• C1: Formalisation mathématique du problème de priorisation des vulnérabilités comme minimisation du risque résiduel pondéré.
• C2: Proposition d’une architecture intégrée combinant SAST, DAST, SCA et télémétrie d’exécution.
• C3: Évaluation expérimentale quantitative comparant l’approche hybride aux méthodes traditionnelles.
Le reste de l’article s’organise comme suit : la Section 2 présente les fondements théoriques et les travaux connexes ; la Section 3 décrit le modèle de menace et la formalisation du problème ; la Section 4 détaille la méthodologie proposée ; la Section 5 présente l’implémentation ; la Section 6 décrit l’évaluation expérimentale ; la Section 7 discute une étude de cas ; la Section 8 présente les implications et les limites ; et la Section 9 conclut le travail.
- Background and Related Work
La sécurité applicative peut être formellement définie comme l’ensemble des mécanismes destinés à préserver les propriétés fondamentales de confidentialité ($C$), d’intégrité ($I$) et de disponibilité ($A$) dans les systèmes logiciels (ANDERSON, 2020). Soit $S$ un système composé de modules $m_i$, où chaque module peut contenir des vulnérabilités $v_j$ appartenant à l’ensemble $V$.
Le risque associé à une vulnérabilité peut être modélisé comme suit :
$$ R(v_j) = P_e(v_j) \times I(v_j) $$
où $P_e(v_j)$ représente la probabilité d’exploitation et $I(v_j)$ représente l’impact potentiel associé à l’exploitation.
Le Open Web Application Security Project (OWASP) maintient l’OWASP Top 10 comme l’une des références les plus utilisées pour la catégorisation des failles les plus critiques dans les applications web (OWASP FOUNDATION, 2021). Parmi les catégories récurrentes, on distingue notamment l’injection, les défaillances de contrôle d’accès, les configurations non sécurisées et les vulnérabilités liées aux dépendances.
Dans le contexte de l’analyse statique, les techniques fondées sur l’analyse de flux de données et les graphes de dépendance ont été largement utilisées pour identifier des vulnérabilités dans le code source (CHESS; WEST, 2007). Des outils modernes tels que CodeQL utilisent des requêtes sémantiques sur des représentations intermédiaires du code, permettant de détecter des motifs de vulnérabilité complexes (MICROSOFT, 2023).
Les analyses dynamiques, quant à elles, emploient des techniques de fuzzing et d’exploitation automatisée pour identifier des failles durant l’exécution de l’application. Le fuzzing guidé par la couverture a démontré une efficacité élevée dans la découverte de vulnérabilités dans des logiciels complexes (ZALDÍVAR et al., 2020).
Cependant, plusieurs études soulignent d’importantes limites à ces approches lorsqu’elles sont utilisées isolément.
• Les outils SAST présentent fréquemment des taux élevés de faux positifs (BACA; CARLSSON, 2011).
• Les outils DAST disposent d’une couverture limitée des chemins d’exécution.
• Les outils SCA dépendent de la disponibilité de bases de vulnérabilités à jour.
Avec l’évolution des pratiques DevSecOps, l’intégration de la sécurité tout au long du cycle de développement est devenue un objectif central. Le concept de shift-left security met l’accent sur l’identification précoce des vulnérabilités pendant le développement (MYERS; SANDERS, 2020). Toutefois, peu de travaux explorent formellement l’intégration entre plusieurs techniques d’analyse et la télémétrie opérationnelle afin d’estimer le risque résiduel en temps quasi réel.
- Threat Model and Problem Formalization
Nous supposons un adversaire $\mathcal{A}$ disposant de capacités réalistes dans le contexte d’applications exposées à Internet. L’adversaire possède un accès distant via HTTP ou HTTPS et peut envoyer des requêtes arbitraires et exploiter d’éventuelles failles de validation ou de logique applicative.
Formellement, nous considérons que l’adversaire dispose des capacités suivantes :
- Accès à distance à l’application au moyen d’interfaces publiques.
- Capacité d’envoyer des payloads arbitraires et de manipuler les paramètres de requête.
- Connaissance partielle de l’architecture du système, cohérente avec des scénarios de white-box partiel ou de divulgation de code.
L’objectif de l’adversaire est de maximiser un gain $G$ associé à l’exploitation des vulnérabilités.
Nous définissons le problème de priorisation des vulnérabilités comme la minimisation du risque résiduel :
$$ R_{residual} = \sum_{v_j \in V_{undetected}} P_e(v_j) \times I(v_j) $$
sous la contrainte opérationnelle :
$$ T_{pipeline} \leq T_{max} $$
où $T_{pipeline}$ représente le temps total d’exécution des analyses de sécurité dans le pipeline CI/CD.
L’architecture proposée doit satisfaire trois propriétés fondamentales :
• Correction : les vulnérabilités critiques doivent être détectées avec une forte probabilité.
• Efficacité : le surcoût computationnel doit rester inférieur à 20 %.
• Scalabilité : l’algorithme de priorisation doit avoir une complexité $O(n \log n)$.
- Proposed Methodology
L’architecture proposée est structurée en quatre couches principales d’analyse de sécurité.
- Collecte et analyse statique du code à l’aide d’outils tels que Semgrep et SonarQube.
- Analyse dynamique des applications à l’aide de scanners DAST tels que OWASP ZAP ou Burp Suite.
- Analyse de composition logicielle (SCA) pour l’identification des dépendances vulnérables.
- Télémétrie de sécurité en runtime basée sur l’observabilité et la détection comportementale.
Le processus de priorisation des vulnérabilités est réalisé au moyen d’un algorithme d’agrégation du risque.
Algorithme 1 : Priorisation des vulnérabilités
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 complexité computationnelle de l’algorithme est de $O(n \log n)$ en raison de l’étape de tri.
De plus, nous utilisons une instrumentation adaptative afin d’améliorer la couverture des tests dynamiques.
Algorithme 2 : Instrumentation adaptative
Input: CoverageMap C
while coverage(C) < threshold:
inject_probes(uncovered_paths)
execute_dynamic_scan()
Ce mécanisme permet d’augmenter progressivement la visibilité sur les chemins d’exécution critiques.
L’intégration opérationnelle est réalisée dans des pipelines DevSecOps au moyen d’étapes d’analyse parallèles.
- Implementation
L’implémentation expérimentale a utilisé la stack technologique suivante, compatible avec les environnements de sécurité applicative en 2024.
| Composant | Outil | Version |
|---|---|---|
| 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 détection d’événements suspects a été complétée par des règles basées sur le standard Sigma.
logsource:
category: webserver
detection:
selection:
cs-uri-query|contains: "' OR 1=1"
condition: selection
level: high
Le pipeline CI/CD a été configuré pour bloquer les merges si des vulnérabilités avec un score CVSS supérieur ou égal à 8.0 étaient identifiées.
- Experimental Evaluation
L’évaluation expérimentale a été menée dans un environnement de laboratoire composé d’une infrastructure virtualisée et d’un cluster Kubernetes.
Configuration de l’environnement :
• 3 serveurs Dell R740
• 128 GB de mémoire RAM par nœud
• Kubernetes 1.28
Le dataset expérimental incluait des applications délibérément vulnérables, largement utilisées dans la recherche en sécurité.
• OWASP Juice Shop
• Damn Vulnerable Web Application (DVWA)
• Dix microservices internes représentatifs d’applications d’entreprise
Les métriques évaluées incluaient :
• Precision
• Recall
• Temps moyen de détection (MTTD)
• Surcoût computationnel
Résultats observés :
• Recall moyen : 91,3 %
• Precision moyenne : 87,6 %
• Réduction du MTTD : 63,4 %
• Surcoût moyen : 17,8 %
Comparaison entre approches :
| Approche | Recall | Surcoût |
|---|---|---|
| SAST isolé | 72% | 9% |
| DAST isolé | 81% | 14% |
| Approche hybride proposée | 91,3% | 17,8% |
Les résultats indiquent une amélioration substantielle de la capacité à identifier des vulnérabilités exploitables lorsque plusieurs sources d’analyse sont combinées.
- Case Study
Nous avons réalisé une étude de cas sur une application fintech comptant environ deux millions d’utilisateurs actifs.
Le processus s’est déroulé en quatre étapes :
- Exécution d’une analyse SAST initiale, aboutissant à 342 résultats potentiels.
- Application du modèle de priorisation, réduisant l’ensemble à 89 vulnérabilités critiques.
- Validation dynamique par DAST, confirmant 41 vulnérabilités exploitables.
- Surveillance runtime, qui a identifié une tentative réelle d’exploitation par SQL injection.
Il a été observé qu’environ 52 % des résultats initiaux du SAST correspondaient à des faux positifs ou à des vulnérabilités non exploitables dans le contexte opérationnel.
La télémétrie runtime a permis de réduire le temps de réponse aux incidents d’environ 48 %.
- Discussion
Les résultats obtenus indiquent que l’intégration de plusieurs mécanismes d’analyse de sécurité produit des améliorations substantielles dans l’identification des vulnérabilités exploitables.
La principale contribution de l’architecture proposée réside dans la capacité à corréler les résultats de l’analyse statique, de l’analyse dynamique et de la télémétrie opérationnelle au sein d’un modèle quantitatif de risque.
Cependant, certaines limites doivent être prises en compte.
Premièrement, l’efficacité de l’analyse dynamique dépend de la couverture d’exécution atteinte pendant les tests. Les applications complexes peuvent comporter des chemins rarement exécutés qui restent non exploités durant le fuzzing.
En outre, l’intégration de plusieurs outils introduit une complexité opérationnelle supplémentaire, nécessitant des pipelines CI/CD bien structurés et des mécanismes d’observabilité robustes.
Pour les environnements d’entreprise, il est recommandé d’intégrer des plateformes SIEM, telles qu’Elastic Security ou Splunk, ainsi que d’adopter une modélisation continue des menaces fondée sur des méthodologies telles que STRIDE (SHOSTACK, 2014).
- Conclusion
Ce travail a प्रस्तुतé une architecture quantitative pour la sécurité applicative fondée sur l’intégration de l’analyse statique, de l’analyse dynamique, de l’analyse des dépendances et de la télémétrie d’exécution.
Nous avons démontré que la formalisation du problème de priorisation des vulnérabilités comme minimisation du risque résiduel permet d’intégrer des preuves hétérogènes dans un modèle de décision unifié.
Les résultats expérimentaux indiquent que l’approche hybride améliore significativement la capacité à identifier les vulnérabilités exploitables, tout en réduisant le temps moyen de détection sans introduire de surcoût opérationnel significatif.
Dans les environnements modernes de développement continu et les architectures distribuées, l’intégration entre l’observabilité opérationnelle et l’analyse du code devient un élément fondamental pour des programmes efficaces d’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.