Pourquoi les développeurs sont la clé de la sécurité cloud
30 septembre 2022
0 minutes de lectureÀ l’époque des centres de données sur site et des débuts de l’adoption du cloud, les rôles des développeurs d’applications, des équipes d’exploitation de l’infrastructure et des équipes de sécurité étaient largement cloisonnés. Dans le cloud, cette répartition du travail allonge les délais de mise sur le marché des innovations, réduit la productivité et expose inutilement les organisations aux risques.
La sécurité bouleversée par le passage des centres de données au cloud
Dans un environnement de centre de données, les développeurs créent des applications logicielles, les équipes informatiques mettent en place l’infrastructure nécessaire à leur exécution et les équipes de sécurité veillent à la sécurité des applications et de l’infrastructure. Les développeurs doivent créer leurs logiciels en tenant compte des contraintes de l’infrastructure et des systèmes d’exploitation sous-jacents, tandis que les processus de sécurité déterminent le rythme de travail de tous. Lorsqu’une vulnérabilité est détectée en production, sa correction mobilise généralement toutes les parties prenantes et entraîne un important travail de reprise.
En libérant les équipes des contraintes physiques des centres de données, le cloud provoque le plus grand bouleversement qu’ait connu le secteur informatique depuis des décennies. Pourtant, les organisations ont mis des années à commencer à exploiter le véritable potentiel du cloud comme plateforme de création et d’exécution d’applications, plutôt que comme simple plateforme d’hébergement d’applications tierces ou migrées depuis un centre de données. Quand le cloud sert uniquement de « centre de données distant », la répartition classique du travail perdure et une grande partie de son potentiel reste inexploité.
Le recours au cloud comme plateforme de création et d’exécution d’applications bouleverse profondément la sécurité. Du point de vue du client cloud, des plateformes comme Amazon Web Services (AWS), Microsoft Azure et Google Cloud sont entièrement logicielles, et les développeurs programment désormais la création et la gestion de l’infrastructure cloud dans le cadre même de leurs applications. Ils conçoivent donc l’architecture cloud et définissent des configurations essentielles à la sécurité, qu’ils modifient ensuite constamment.
Cette évolution représente une formidable occasion pour les organisations présentes dans des secteurs très concurrentiels : les équipes applicatives et cloud peuvent innover beaucoup plus rapidement qu’elles ne le pouvaient dans un centre de données. Mais elle pose un défi de taille aux équipes chargées de sécuriser des environnements cloud toujours plus complexes et dynamiques.
Faire des développeurs une priorité
Aujourd’hui, la seule approche efficace de la sécurité cloud consiste à donner aux développeurs qui créent et exploitent des solutions dans le cloud les outils nécessaires pour travailler en toute sécurité. Sans cela, la sécurité devient un frein au rythme de travail des équipes dans le cloud et à la réussite de la transformation numérique.
Pour comprendre comment aider les développeurs à renforcer la sécurité cloud, il faut définir ce que nous entendons par « développeur ». Ce terme général recouvre plusieurs fonctions, notamment :
Les développeurs d’applications qui créent dans le cloud et utilisent des services cloud natifs comme composants à part entière de leurs applications. Dans ce modèle, la frontière entre application et infrastructure est arbitraire et floue, voire inexistante.
Les ingénieurs cloud (c’est-à-dire DevOps) qui utilisent l’infrastructure as code (IaC) pour programmer la configuration, le déploiement et la gestion des environnements d’infrastructure cloud, puis fournir cette infrastructure aux développeurs d’applications.
Les ingénieurs en sécurité cloud qui utilisent les politiques as code (PaC) pour exprimer les règles de sécurité et de conformité dans un langage permettant à d’autres applications de valider automatiquement la sécurité, puis mettent ces bibliothèques PaC à la disposition des équipes de toute l’organisation.
Quel que soit leur intitulé de poste, les développeurs contrôlent l’infrastructure informatique cloud, car celle-ci est entièrement définie par logiciel. Lorsqu’ils créent des applications dans le cloud, ils construisent aussi leur infrastructure à l’aide de l’IaC et en sont responsables.
Le rôle de l’équipe de sécurité a donc évolué : elle apporte son expertise métier et transmet aux développeurs les connaissances et les règles nécessaires pour garantir un environnement de développement sécurisé. Au lieu de formuler ces règles dans un langage humain que les autres doivent comprendre et interpréter, elle utilise les PaC, qui vérifient la présence de conditions indésirables dans le code et les environnements en cours d’exécution. Les PaC permettent à toutes les parties prenantes du cloud de travailler en toute sécurité, sans ambiguïté ni désaccord sur les règles et leur application aux deux extrémités du cycle de vie du développement logiciel (SDLC).
Les organisations qui maîtrisent la sécurité cloud défendent le modèle DevSecOps et donnent aux développeurs les moyens de garantir la sécurité des applications après leur déploiement. IDC prévoit qu’un nombre croissant de développeurs — ils seront plus de 43 millions d’ici 2025 — seront entièrement responsables des performances et de la sécurité de leur code une fois celui-ci en exécution.
Les mauvaises configurations cloud sont des vulnérabilités
Depuis longtemps, le cycle de vie du développement logiciel des applications comprend les phases de création, de test, de déploiement et de surveillance. L’approche consistant à intégrer la sécurité des applications plus tôt dans le cycle génère un retour sur investissement considérable en matière de rapidité, de productivité et de sécurité, car corriger les problèmes en amont du SDLC est plus facile, plus rapide et plus sûr. Avec l’adoption de l’IaC, l’infrastructure cloud a désormais son propre SDLC. La sécurité cloud peut donc être prise en compte avant le déploiement, et doit l’être.
La mauvaise configuration est le principal problème de sécurité cloud. Il faut toutefois savoir qu’elle peut désigner tout élément de votre environnement cloud incapable d’empêcher efficacement les actes malveillants. Les mauvaises configurations d’une ressource unique, souvent mises en avant dans les articles sur les violations de données cloud, sont les plus connues : par exemple, laisser un port dangereux ouvert ou autoriser l’accès public à un service de stockage d’objets. Mais elles peuvent aussi concerner l’ensemble de l’environnement : des vulnérabilités architecturales qui permettent aux attaquants de découvrir des ressources, de se déplacer dans le système et d’exfiltrer des données.
Toutes les grandes violations de sécurité cloud exploitent des failles de conception de ces environnements ou compromettent le plan de contrôle. Le plan de contrôle est la surface d’API qui permet de configurer et d’exploiter le cloud. Il peut, par exemple, servir à créer un conteneur, à modifier une route réseau et à accéder à des bases de données ou à leurs instantanés — ces derniers étant davantage prisés des attaquants que les bases de données de production en temps réel. En d’autres termes, le plan de contrôle des API regroupe les API utilisées pour configurer et exploiter le cloud.
Les API sont au cœur du cloud computing. Elles éliminent la nécessité d’une architecture informatique fixe dans un centre de données centralisé. Les attaquants ne sont donc pas tenus de respecter les frontières arbitraires que les entreprises établissent autour des systèmes et des banques de données de leurs centres de données sur site. Repérer et corriger les mauvaises configurations est une priorité, mais il est essentiel de comprendre qu’elles ne sont qu’un moyen parmi d’autres pour atteindre l’objectif final des attaquants : compromettre le plan de contrôle. Cette compromission a joué un rôle central dans toutes les grandes violations de sécurité cloud à ce jour.
5 étapes pour favoriser un développement sécurisé dans le cloud
Il est essentiel de permettre aux développeurs de repérer et de corriger les mauvaises configurations cloud lorsqu’ils développent de l’IaC. Il est tout aussi important de leur fournir les outils nécessaires pour concevoir des architectures cloud intrinsèquement protégées contre les attaques actuelles visant à compromettre le plan de contrôle.
Voici cinq étapes que toute organisation peut suivre pour permettre efficacement aux développeurs de travailler en toute sécurité dans le cloud :
1. Comprendre votre environnement cloud et votre SDLC
Les équipes de sécurité doivent intégrer des ingénieurs aux équipes applicatives et DevOps afin de comprendre tout ce qui est en cours d’exécution, sa configuration, son développement et son déploiement, ainsi que les changements au moment où ils surviennent. Vous devez savoir quelles applications sont associées aux ressources cloud, quelles données y sont liées et comment elles sont utilisées. Pensez comme un attaquant pour repérer les risques de compromission du plan de contrôle.
2. Prioriser la conception sécurisée et prévenir les mauvaises configurations
Lorsqu’une attaque visant à compromettre le plan de contrôle est lancée, il est généralement trop tard pour l’arrêter. Une sécurité cloud efficace exige de prévenir les conditions qui rendent ces attaques possibles. Intégrez la sécurité à l’ensemble du SDLC cloud pour repérer les mauvaises configurations avant leur déploiement, et privilégiez la conception d’architectures intrinsèquement sécurisées.
3. Donner aux développeurs des outils qui les guident en matière de sécurité
Les développeurs avancent vite. Pour favoriser l’adoption des outils de sécurité sans ralentir leur rythme, ceux-ci doivent s’intégrer à leur façon de travailler. Les outils de sécurité cloud doivent leur fournir des retours utiles et exploitables sur les problèmes de sécurité et sur la manière de les corriger rapidement.
4. Adopter les politiques as code pour la sécurité cloud
Les PaC aident les équipes de sécurité à déployer leurs efforts à grande échelle avec les ressources dont elles disposent, en permettant à toutes les parties prenantes du cloud de travailler en toute sécurité, sans ambiguïté ni désaccord sur les règles à suivre et leur application. Elles alignent toutes les équipes sur une source de référence unique pour les politiques, éliminent les erreurs humaines liées à leur interprétation et à leur application, et permettent d’automatiser la sécurité — évaluation, mise en application, etc. — à chaque étape du SDLC.
5. Mesurer les résultats et améliorer les processus
La sécurité cloud consiste moins à détecter les intrusions et à surveiller les réseaux à la recherche d’activités malveillantes qu’à empêcher les attaques de se produire. Les équipes cloud performantes évaluent en continu les risques de leur environnement, ainsi que la productivité des développeurs et des équipes de sécurité, qui devrait progresser avec l’automatisation des tâches manuelles sujettes aux erreurs.
La sécurité cloud commence avec les développeurs
Les développeurs sont les mieux placés — et souvent les seuls — pour sécuriser leur code avant son déploiement, préserver son intégrité en production et déterminer où apporter des correctifs. Mais ce sont aussi des êtres humains, susceptibles de commettre des erreurs et confrontés à une expérimentation et à des échecs constants. L’automatisation fondée sur les PaC réduit le risque d’erreur humaine en automatisant la recherche et la détection des erreurs avant le déploiement.
Les organisations qui adoptent une approche de la sécurité cloud centrée sur les développeurs innoveront plus rapidement et plus sûrement que leurs concurrents.
Une sécurité IaC pensée pour les développeurs
Snyk sécurise votre infrastructure en tant que code, du cycle de développement logiciel à l’exécution dans le cloud, grâce à un moteur unifié de politiques sous forme de code. Chaque équipe peut ainsi développer, déployer et exploiter ses applications en toute sécurité.
