Michael Landl, directeur principal de la sécurité chez Dynatrace, explique comment les services cloud et les pratiques de développement modernes ont brisé les approches existantes en matière de sécurité des applications et souligne pourquoi une nouvelle approche est nécessaire:
Sommaire
Comment les architectures cloud natives ont-elles rompu les approches existantes de la sécurité des applications?
À mesure que de plus en plus d’entreprises évoluent vers des architectures d’applications cloud natives, basées sur des microservices, des conteneurs et des plates-formes comme Kubernetes, il deviendra plus difficile d’identifier les vulnérabilités et de garantir une sécurité des applications robuste. En effet, ces environnements sont très dynamiques, où le changement est la seule constante. Notre recherche a révélé que 61% des entreprises déclarent que leur environnement change une fois par minute ou moins, et près d’un tiers disent qu’il change au moins une fois par seconde.
Cela expose les organisations à des milliers de vulnérabilités qu’elles ne voient jamais, car elles ne sont jamais dans le même état assez longtemps. Les approches traditionnelles de la gestion des vulnérabilités n’offrent qu’une vue statique à un moment donné, ce qui les rend inefficaces dans les environnements dynamiques. Les organisations doivent pouvoir détecter les vulnérabilités dès qu’elles apparaissent, sinon elles risquent d’être exposées.
Comment définissez-vous un «environnement dynamique»?
Un environnement dynamique n’est qu’un moyen simple de décrire la manière dont les applications d’aujourd’hui sont créées et exécutées. Les environnements applicatifs deviennent beaucoup plus dynamiques – évoluant plus souvent – en raison de l’utilisation croissante des architectures basées sur les API, de Kubernetes, des microservices et de l’informatique sans serveur dans les écosystèmes multicloud. Ces architectures sont définies en étant dans un état de mouvement constant – où le changement se produit en quelques secondes, voire en millisecondes, plutôt qu’en heures ou en jours.
Au lieu d’applications et d’infrastructures informatiques toujours en cours d’exécution, nous évoluons vers des environnements où les microservices tournent constamment de haut en bas et où l’infrastructure apparaît pour les prendre en charge en temps réel, à mesure que les clients et les employés utilisent les services numériques. C’est un moyen beaucoup plus efficace d’exécuter des applications dans le cloud, d’où la popularité de ces approches, mais il est également beaucoup plus difficile de surveiller et de gérer les vulnérabilités de sécurité et de protéger l’expérience utilisateur.
Quel impact les pratiques de développement modernes ont-elles sur la manière dont les organisations identifient les vulnérabilités de sécurité?
En plus d’utiliser une infrastructure et des architectures d’application plus dynamiques, les organisations sont également passées à des approches plus dynamiques de la livraison et de l’orchestration de logiciels. Les méthodologies agiles telles que DevSecOps et les processus de livraison continue ont conduit au lancement de nouvelles fonctionnalités d’application et de mises à jour logicielles dans des sprints rapides qui se terminent en quelques jours, voire quelques minutes, plutôt que des semaines ou des mois.
Cependant, ces processus modernes ont transféré la responsabilité aux développeurs de s’assurer que le code ne présente aucune vulnérabilité avant sa mise en ligne. Malgré les investissements dans plusieurs outils de sécurité, cela entraîne souvent plus d’angles morts et de lacunes, car les développeurs manquent de temps et ne sont pas en mesure de consacrer les cycles à la recherche manuelle des vulnérabilités. Il est également parfois difficile pour les analyses de pré-production de reproduire les conditions dans des environnements de production en direct. En tant que telles, même les vulnérabilités les plus courantes et les mieux documentées peuvent rester non détectées et passer de la pré-production aux environnements de production en direct, où elles sont ouvertes aux pirates informatiques.
Pouvez-vous citer des exemples de vulnérabilités ou d’incidents qui se sont produits à cause de cela?
IDC prévoit que d’ici 2022, 90% des nouvelles applications d’entreprise seront déployées en tant que cloud natif, à l’aide de méthodologies et d’architectures agiles – ce problème est donc énorme et ne fera que croître à l’avenir.
Il existe deux exemples notables de vulnérabilités ou d’incidents qui ont été influencés par l’utilisation d’environnements cloud dynamiques. Le premier est la faille Equifax en 2017, qui a vu les données personnelles de centaines de millions d’individus volées. Les attaquants ont pu accéder aux systèmes d’Equifax via un portail Web de plaintes des consommateurs, en utilisant une vulnérabilité largement connue de la bibliothèque Apache Struts. Cette vulnérabilité existe toujours dans d’innombrables applications Web à travers le monde, mais à mesure que de plus en plus d’entreprises passeront à des architectures cloud natives, elle deviendra de plus en plus difficile à identifier, ce qui en fera un problème croissant.
Un autre exemple notable est la vulnérabilité Ghostcat, qui a affecté toutes les versions actives d’Apache Tomcat. En tant que l’un des serveurs d’applications Web Java les plus populaires, Tomcat est largement présent dans les environnements cloud natifs, fonctionnant sur plus d’un million de serveurs et utilisé pour les applications publiques et internes. La vulnérabilité Ghostcat donne aux attaquants la possibilité de lire n’importe quel fichier stocké sur le serveur Web et, dans le pire des cas, leur permet d’exécuter du code à distance pour prendre le contrôle du serveur, ce qui constitue donc une menace importante.
Comment l’industrie devrait-elle réagir – que faut-il faire différemment?
Bien qu’ils aient investi dans plus d’outils au fil des ans, la dépendance continue à l’égard des processus manuels et des analyses de vulnérabilité ponctuelles signifie que de nombreuses équipes DevSecOps sont continuellement submergées d’alertes, dont beaucoup sont de faible priorité ou de faux positifs. Sans le contexte complet de l’impact d’une vulnérabilité particulière sur l’ensemble de la pile d’applications et des systèmes et données qu’elle met en danger, il est très difficile pour les équipes DevSecOps de hiérarchiser efficacement leurs actions pour accélérer et sécuriser les cycles de publication.
C’est pourquoi une nouvelle approche de la sécurité des applications est nécessaire, une approche qui utilise conjointement l’IA, l’automatisation et l’observabilité pour identifier, résoudre et prévenir les vulnérabilités d’exécution dans les environnements de production et de pré-production. Cette approche permet aux équipes DevSecOps d’analyser en continu l’ensemble de leur environnement cloud natif, y compris les applications, les bibliothèques et le code, pour identifier les changements, hiérarchiser les alertes et éliminer les faux positifs. Avec l’aide de l’IA, ils peuvent comprendre la source précise, la nature et la gravité de toute vulnérabilité d’exécution et identifier les vecteurs d’attaque post-déploiement, ce qui leur permet de gérer ces situations plus efficacement.
- Michael Landl, directeur principal de la sécurité chez Dynatrace.