Skip to main content

Améliorer la sécurité grâce au chaos engineering

Écrit par
blog feature fuzzing tools

3 août 2023

0 minutes de lecture

Quand vous comptez sur un outil pour vous aider dans une situation de crise, vous voulez probablement être rassuré : il a été testé dans des conditions extrêmes. Par exemple, si vous vous apprêtez à faire du parachutisme, vous voudrez savoir que le parachute fixé à votre dos a été soumis à des tests rigoureux et qu’il fonctionnera au moment où vous en aurez le plus besoin.

Il en va de même pour les systèmes qui soutiennent nos initiatives de sécurité. Que se passe-t-il lorsque ces systèmes sont soumis à une forte pression en situation d’urgence ?

Le chaos engineering répond à cette question en testant les systèmes jusqu’à leurs limites, de manière contrôlée et systématique. En menant des expériences ciblées, les équipes déterminent si leur système est prêt à résister à une situation de forte pression ou s’il doit être corrigé.

Qu’est-ce que le chaos engineering ?

Le chaos engineering s’appuie sur la théorie du chaos, selon laquelle il est possible d’identifier des schémas dans des événements apparemment aléatoires et inattendus. En menant des expériences stratégiques pour voir comment un système réagit à ces événements, les équipes peuvent mieux se préparer à ces circonstances exceptionnelles si elles se produisent dans la réalité.

Le chaos engineering appliqué à la sécurité vise spécifiquement à tester les systèmes de cybersécurité qui seraient les « premiers intervenants » en cas d’urgence, comme une fuite de données ou une attaque. Les équipes injectent ces événements potentiels dans le système, puis observent son comportement.

Aaron Rinehart, directeur technique et cofondateur de Verica, s’est entretenu avec Guy Podjarny, fondateur et président de Snyk, au sujet du chaos engineering dans l’épisode n° 67 du podcast The Secure Developer. Il a résumé le chaos engineering appliqué à la sécurité comme le fait « d’injecter de manière proactive les conditions dont vous pensez qu’elles déclencheront votre dispositif de sécurité ».

Kelly Shortridge, vice-présidente de la stratégie produit chez Capsule8, s’est également entretenue avec Guy dans l’épisode n° 63. Ils ont expliqué comment le chaos engineering appliqué à la sécurité teste les limites d’un système et nous rappelle que les programmes de sécurité réels n’existent pas dans le vide. Selon Kelly : « Le chaos engineering appliqué à la sécurité dit en substance : “Non, le monde ne fonctionne pas comme ça. Vous devez… adopter un modèle vraiment honnête sur le plan intellectuel, qui tient compte de toutes les informations apportées par les défaillances et les considère simplement comme une occasion d’apprendre.” »

Pourquoi le chaos engineering est-il indispensable à la sécurité ?

Le chaos engineering est essentiel à la sécurité, car il prouve que vos contrôles peuvent résister à l’imprévu et à l’imprévisible. Au final, ces expériences permettent de créer un produit plus résilient.

Aaron a évoqué plusieurs raisons pour lesquelles le chaos engineering appliqué à la sécurité est précieux pour les équipes de développement et de sécurité. D’abord, il renforce de manière proactive les systèmes face aux événements inattendus et donne ainsi confiance dans leur capacité à fonctionner comme prévu, quoi qu’il arrive. Ensuite, il permet aux équipes de sécurité de détecter les problèmes système avant qu’ils ne deviennent visibles du public.

Il compare cette approche à un brûlage dirigé : « J’ai grandi dans une ferme du Missouri, alors c’est un peu comme quand on procédait à un brûlage dirigé d’un champ. On ne se contente pas d’allumer une allumette et de mettre le feu. On prévient le comté, on fait venir les ambulanciers et les pompiers — tout le monde est là au cas où quelque chose arriverait, pas vrai ? C’est comme ça qu’on fait du chaos engineering… on ne panique pas, parce que lors de [véritables pannes], les gens paniquent. Toute leur capacité cognitive est mobilisée par des pensées comme : “Il pourrait s’agir d’une fuite de données. Le PDG m’appelle pour me dire que je dois remettre le système en marche ; quelqu’un va perdre son emploi à cause de ça.” »

Comment mettre en place le chaos engineering appliqué à la sécurité dans votre organisation

Si votre équipe de sécurité envisage de mener des expériences de chaos engineering, Aaron et Kelly ont quelques conseils à vous donner :

Concentrez-vous sur les erreurs d’ingénierie

Commencez par des expériences ciblées permettant de mettre au jour les erreurs d’ingénierie manuelles. Par exemple, une expérience de chaos engineering appliqué à la sécurité pourrait viser à exploiter un port mal configuré ou un compte doté de permissions excessives : deux problèmes courants dus à une erreur humaine.

Mais Aaron nous rappelle que « [ces erreurs humaines] ne sont la faute d’aucun ingénieur ; c’est simplement que la taille, l’ampleur, la complexité et la vitesse auxquelles nous construisons aujourd’hui rendent très difficile la modélisation mentale de ces systèmes par les humains ».

N’essayez pas de « vider l’océan »

Aaron met également en garde contre la tentation de vouloir en faire trop au cours d’une seule expérience (autrement dit, de « vider l’océan »). Les expériences de chaos engineering doivent se concentrer sur l’injection d’une seule défaillance, de manière ciblée et systématique. Ces injections stratégiques se distinguent des simulations d’attaque, car elles visent à tester un seul problème à la fois.

Aaron explique : « Quand vous commencez à examiner plusieurs vecteurs d’attaque et à envoyer une grande quantité de données au système, il devient très difficile de faire le tri : qu’est-ce qui a cassé, qu’est-ce qui n’a pas cassé, qu’est-ce qui a fonctionné, qu’est-ce qui n’a pas fonctionné… Vous perdez en visibilité à cause de tout ce bruit. »

Attendez-vous à des échecs

Lorsque vous commencerez vos expérimentations, il est également important de ne pas vous décourager si votre système ne résiste pas à l’épreuve. L’échec est l’un des outils les plus précieux du chaos engineering. Kelly explique : « Pour la sécurité, il faut opérer un changement de philosophie : accepter que l’échec soit inévitable et qu’il puisse être très utile. »

L’avenir du chaos engineering

À mesure que les entreprises adoptent la transformation cloud et que leurs systèmes gagnent en complexité, le chaos engineering deviendra plus crucial que jamais pour les équipes. Aaron explique que la transformation cloud ne devrait pas être un prérequis au chaos engineering. Ce devrait être l’inverse : le chaos engineering prépare les organisations à la transformation cloud. En testant dès le départ l’efficacité de leurs nouvelles capacités cloud, les équipes sont mieux armées pour les maintenir par la suite. Pour reprendre les mots d’Aaron : « La seule façon de comprendre un système complexe, c’est d’interagir avec lui. »

Vous souhaitez approfondir le chaos engineering appliqué à la sécurité et découvrir comment il pourrait vous être utile, à vous et à votre entreprise ? Écoutez les épisodes du podcast avec Aaron et Kelly :

  • Épisode 63 : sécurité des conteneurs, microservices et chaos engineering avec Kelly Shortridge

  • Épisode 67 : le chaos engineering appliqué à la sécurité : qu’est-ce que c’est et pourquoi s’y intéresser ? Avec Aaron Rinehart

Et pour découvrir d’autres contenus sur la sécurité des développeurs, l’AppSec et le DevSecOps, abonnez-vous à The Secure Developer dès aujourd’hui !