Paper Files / AppSec
TITRE : Une architecture quantitative pour la sécurité des applications fondée sur la modélisation formelle des menaces, l’intégration de SAST/DAST/SCA et la télémétrie en temps d’exécution dans des environnements DevSecOps
TITRE : Une architecture quantitative pour la sécurité des applications fondée sur la modélisation formelle des menaces, l’intégration de SAST/DAST/SCA et la télémétrie en temps d’exécution dans des environnements DevSecOps RÉSUMÉ : Une architecture quantitative pour la sécurité des applications fondée sur la modélisation formelle des menaces, l’intégration de SAST/DAST/SCA et la télémétrie en temps d’exécution dans des environnements DevSecOps RÉSUMÉ : 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 d’applications exposées à Internet demeure l’un des vecteurs d’intrusion les plus fréquents, exploitant souvent des vulnérabilités connues dans les bibliothèques, des failles de validation des entrées ou des configurations inadéquates. Bien que les outils de sécurité applicative, 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 fonctionnent 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 fondée sur la modélisation formelle des menaces, l’agrégation des résultats issus de multiples sources d’analyse et l’intégration 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 pondérée du risque résiduel, dans lequel chaque vulnérabilité est évaluée sur la base de métriques de probabilité d’exploitabilité, d’impact potentiel et de contexte opérationnel. L’architecture proposée intègre des outils d’analyse statique, dynamique et de dépendances à des mécanismes d’observabilité de la sécurité, notamment 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 moyenne du recall à 91,3 % et une réduction de 63,4 % du mean time to detect (MTTD) par rapport aux approches isolées. La surcharge computationnelle observée est restée inférieure à 20 %, compatible avec les exigences opérationnelles des pipelines CI/CD modernes. En outre, nous discutons des implications pour les programmes d’AppSec en entreprise, en soulignant l’importance d’intégrer l’analyse de code, la surveillance opérationnelle et la threat intelligence. L’architecture proposée démontre que la combinaison de la modélisation formelle et de la télémétrie en 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.
1. Introduction
La surface d’attaque contemporaine est composée principalement d’applications web, d’APIs REST et de services distribués exécutés dans des environnements cloud et sur des infrastructures conteneurisées. 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 contexte du cadre 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 la chaîne 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 au moyen d’une injection JNDI dans la bibliothèque Log4j, largement utilisée (NIST, 2021). Un autre cas emblématique a impliqué la vulnérabilité CVE-2017-5638 dans Apache Struts, exploitée lors de l’incident ayant 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 de Sécurité des Applications opèrent souvent 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 exécution ; et les solutions de Software Composition Analysis (SCA) identifient les dépendances vulnérables. Toutefois, ces mécanismes produisent typiquement des résultats isolés et manquent 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 le risque résiduel d’une application peut-il être modélisé quantitativement en prenant en compte de multiples sources de détection de vulnérabilités ?
RQ2 : Est-il possible de réduire significativement le délai moyen de détection (MTTD) sans introduire une surcharge excessive dans les pipelines CI/CD ?
RQ3 : L’incorporation de 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 est organisé 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.
2. Fondements et Travaux Connexes
La sécurité des applications peut être définie formellement 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$, dans lequel 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 catégoriser les failles les plus critiques dans les applications web (OWASP FOUNDATION, 2021). Parmi les catégories récurrentes, on peut citer 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 des flux de données et sur les graphes de dépendance ont été largement utilisées pour identifier des vulnérabilités dans le code source (CHESS; WEST, 2007). Les outils modernes tels que CodeQL utilisent des requêtes sémantiques sur des représentations intermédiaires du code, permettant la détection de 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 pendant l’exécution de l’application. Le fuzzing guidé par la couverture a démontré une grande efficacité dans la découverte de vulnérabilités dans des logiciels complexes (ZALDÍVAR et al., 2020).
Cependant, plusieurs études soulignent des limites importantes à 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 données 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 durant le développement (MYERS; SANDERS, 2020). Cependant, 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.
3. Modèle de Menace et Formalisation du Problème
Nous supposons un adversaire $\mathcal{A}$ doté de capacités réalistes dans le contexte d’applications exposées à Internet. L’adversaire dispose d’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 possède les capacités suivantes :
- Accès distant à 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 du code source.
L’objectif de l’adversaire est de maximiser un gain $G$ associé à l’exploitation de 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é : la surcharge computationnelle doit rester inférieure à 20 %.
• Scalabilité : l’algorithme de priorisation doit avoir une complexité $O(n \log n)$.
4. Méthodologie Proposée
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é à l’exécution.## 5. Implémentation
L’implémentation expérimentale a utilisé la pile 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 format 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.
6. Évaluation Expérimentale
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 Go de RAM par nœud
• Kubernetes 1.28
L’ensemble de données 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 :
• Précision
• Rappel
• Délai moyen de détection (MTTD)
• Surcharge computationnelle
Résultats observés :
• Rappel moyen : 91,3 %
• Précision moyenne : 87,6 %
• Réduction du MTTD : 63,4 %
• Surcharge moyenne : 17,8 %
Comparaison entre approches :
| Approche | Rappel | Surcharge |
|---|---|---|
| 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 les vulnérabilités exploitables lorsque plusieurs sources d’analyse sont combinées.
7. Étude de Cas
Nous avons mené 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 de l’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 via DAST, confirmant 41 vulnérabilités exploitables.
- Surveillance en temps d’exécution, ayant identifié une tentative réelle d’exploitation par injection SQL.
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 en temps d’exécution a permis de réduire le temps de réponse aux incidents d’environ 48 %.
8. Discussion
Les résultats obtenus indiquent que l’intégration de multiples mécanismes d’analyse de sécurité produit des améliorations substantielles dans l’identification de vulnérabilités exploitables.
La principale contribution de l’architecture proposée réside dans sa capacité à corréler les résultats de l’analyse statique, de l’analyse dynamique et de la télémétrie opérationnelle dans 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 lors des tests. Les applications complexes peuvent contenir des chemins rarement exécutés qui demeurent inexplorés pendant le fuzzing.
De plus, l’intégration de plusieurs outils introduit une complexité opérationnelle additionnelle, exigeant des pipelines CI/CD bien structurés et des mécanismes robustes d’observabilité.
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).
9. Conclusion
Ce travail a présenté une architecture quantitative pour la sécurité des applications, 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 une minimisation du risque résiduel rend possible l’intégration de 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 des vulnérabilités exploitables, tout en réduisant le délai moyen de détection sans introduire de surcharge opérationnelle significative.
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 de Sécurité des Applications.
Références
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 Apr. 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 Apr. 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 Apr. 2024.
BEHL, Abhishek. Cybersecurity analytics. Boca Raton: CRC Press, 2017. Available at: https://www.routledge.com. Accessed on: 13 Apr. 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 Apr. 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 Apr. 2024.
FIRST. Common Vulnerability Scoring System v3.1 specification. 2019. Available at: https://www.first.org/cvss/. Accessed on: 13 Apr. 2024.
GREEN, Matthew; SMITH, Matthew. The cryptopals crypto challenges. 2018. Available at: https://cryptopals.com. Accessed on: 13 Apr. 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 Apr. 2024.
MICROSOFT. CodeQL documentation. 2023. Available at: https://codeql.github.com/docs/. Accessed on: 13 Apr. 2024.
MITRE. MITRE ATT&CK framework. 2024. Available at: https://attack.mitre.org. Accessed on: 13 Apr. 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 Apr. 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 Apr. 2024.
OWASP FOUNDATION. OWASP Top 10:2021. 2021. Available at: https://owasp.org/Top10/. Accessed on: 13 Apr. 2024.
OWASP FOUNDATION. OWASP Juice Shop project. 2023. Available at: https://owasp.org/www-project-juice-shop/. Accessed on: 13 Apr. 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 Apr. 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 Apr. 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 Apr. 2024.
SOMMERVILLE, Ian. Software engineering. 10. ed. Boston: Pearson, 2016. Available at: https://www.pearson.com. Accessed on: 13 Apr. 2024.
STALLINGS, William; BROWN, Lawrie. Computer security: principles and practice. 4. ed. Boston: Pearson, 2018. Available at: https://www.pearson.com. Accessed on: 13 Apr. 2024.
VERIZON. 2023 data breach investigations report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 13 Apr. 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 Apr. 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 Apr. 2024.
CNCF. Falco runtime security project. 2024. Available at: https://falco.org. Accessed on: 13 Apr. 2024.
OPEN INFORMATION SECURITY FOUNDATION. Suricata intrusion detection system documentation. 2024. Available at: https://suricata.io. Accessed on: 13 Apr. 2024.