Skip to main content

Guide de sécurité cloud-native pour créer des applications sûres

Écrit par:
0 minutes de lecture

Grâce à des technologies logicielles de pointe, les architectures cloud-natives peuvent donner aux entreprises les moyens requis pour déployer leurs applications à grande échelle en toute sécurité. La sécurité cloud-native vise à sécuriser ces applications en utilisant une approche moderne et pragmatique qui intègre des concepts tels que la défense en profondeur (DiD) et la stratégie zero trust. La sécurité des applications natives du cloud passe par des outils et des services conçus spécialement pour cette fonction.

Qu’est-ce que la sécurité cloud-native ?

La sécurité cloud-native est une stratégie qui consiste à sécuriser les applications, infrastructures et plateformes tout au long du processus de développement, jusqu’à la mise en production. Elle préconise d’appliquer plusieurs couches de sécurité et un monitoring continu pour repérer les vulnérabilités en temps réel.

Qu’entend-on par cloud natif ?

La conception cloud native rassemble les principes, les logiciels et les services qui visent à créer une architecture système hébergée principalement sur le cloud. Une application native du cloud se veut hautement évolutive, sûre et résiliente. Pour cela, elle peut compter sur les capacités offertes par les infrastructures cloud modernes et tirer parti des méthodes d’intégration continue pour réduire les délais de développement et de déploiement.

La stratégie cloud native simplifie aussi les opérations de gestion et de lancement des infrastructures serveur traditionnelles grâce à une automatisation poussée, basée sur des modèles d’infrastructure logiciels.

Pour approfondir les notions abordées dans cette description, vous pouvez vous tourner vers des organismes dédiés à ce thème, tel que la Cloud Native Computing Foundation (CNCF).

En règle générale, les termes cloud native et cloud first décrivent la même stratégie. Toutefois, la CNCF met en avant une approche plus neutre côté fournisseur, où les projets et les logiciels peuvent être portés entre différents prestataires cloud sans trop modifier la configuration. Les conteneurs, qui sont l’objet du plus grand projet (Kubernetes) mené par la CNCF, y occupent également une place centrale. Mais ce qui ressort, c’est qu’une entreprise peut remplir la définition générale de l’approche cloud native même en utilisant des services hébergés qui ne rentrent pas dans l’acception formulée par la CNCF. Libre à chaque équipe de choisir la définition qui convient le mieux à ses projets.

Qu’est-ce qu’une application native du cloud ?

Une application cloud native est un programme ou service logiciel qui est conçu et construit dans le contexte d’une architecture cloud. Une application native du cloud est une unité distincte et spécifique qui intègre les principes de conception, paradigmes de déploiement et processus opérationnels nécessaires pour fonctionner de façon à tirer parti des avantages du cloud.

Cela implique d’affiner les principes généraux du cloud natif afin de prendre des décisions d’implémentation claires et d’adopter des outils et des modèles – comme les artefacts immuables – pour renforcer la fonctionnalité cloud native du système dans son ensemble.

S’il est possible de concevoir et de déployer un logiciel qui répond à la définition du cloud natif de mille façons, certaines fonctionnalités générales sont communes à toutes les applications natives du cloud.

La plupart des applications cloud natives ont énormément recours à l’automatisation sous toutes ses formes : automatisation de la rédaction et de la réalisation des tests pour le code central, déploiement sans intervention humaine ou encore mise à l’échelle automatique de l’infrastructure sous-jacente. Certaines entreprises réalisent des milliers de déploiements par jour à l’aide d’un puissant système CI/CD natif du cloud et hautement automatisé. Notre rapport sur la sécurité cloud-native montre que les organisations utilisant davantage l’automatisation enregistrent une meilleure adoption des protocoles de test de la sécurité. Les entreprises possédant un pipeline de déploiement entièrement automatisé sont deux fois plus susceptibles d’intégrer des outils SAST et SCA dans leur cycle de développement logiciel pour sécuriser leurs applications natives du cloud.

Typiquement, les applications cloud natives emploient aussi une architecture basée sur des microservices, qui se caractérise par des composants découplés capables d’évoluer de façon individuelle pour s’adapter à une hausse de la demande. Plus généralement, les applications conçues selon les principes DevOps reposeront quasiment toujours – de façon implicite – sur une composante cloud native pour remplir leur fonction.

Les applications cloud natives sont plus rapides à construire et plus évolutives que les modèles traditionnels, avec à la clé une innovation et un délai de mise sur le marché accélérés pour les entreprises technologiques.  Toutefois, le modèle cloud natif introduit avec lui un changement fondamental : l’infrastructure fait désormais partie de l’application. C’est une contrainte que toute personne en charge de la sécurité et de l’exécution d’une application cloud doit garder à l’esprit.  En matière de sécurité tout particulièrement, les applications cloud natives bousculent les codes établis en matière d’opérations et de sécurité des applications : un nouveau modèle de sécurité est nécessaire.

Outils de sécurité cloud-native vs outils traditionnels

Les outils et les processus de sécurité développés à l’origine pour les structures d’hébergement traditionnelles n’intègrent pas les fonctions nécessaires pour protéger les architectures cloud, dynamiques et borderless, qui par définition sont plus exposées.

Pour faire simple : les outils de sécurité traditionnels ne sont pas faits pour répondre aux exigences du cloud moderne. Au moment de leur conception, beaucoup d’outils et de modèles qui sont monnaie courante dans les stacks logicielles d’aujourd’hui n’existaient pas encore.

Diagram showing the change from IT to cloud. Application security solutions replace IT.

C’est notamment le cas des outils d’infrastructure en tant que code (IaC) comme Terraform, dont l’usage s’est vraiment démocratisé ces dernières années. Certes, cela reste du code. Mais ils utilisent généralement un langage dédié avec des fonctionnalités uniques, ce qui corse le travail des outils de validation traditionnels – notamment ceux d’analyse statique – et les rend inefficaces. Or, comme les outils IaC peuvent soutenir des pans entiers d’une infrastructure avec peu d’efforts, il est critique de bien les sécuriser. Pour auditer du code et de la configuration IaC, il est impératif d’employer des outils et des meilleures pratiques qui ont vu le jour récemment.

Cet écueil, qui met en lumière les lacunes des solutions de sécurité ancienne génération, n’est hélas pas isolé : les défis à relever pour sécuriser les applications cloud natives sont nombreux.  Un changement fondamental est requis. Les concepts de sécurité qui étaient jusque-là l’apanage des équipes IT/Ops doivent être maillés dans le modèle de sécurité des applications. Aujourd’hui, la sécurité doit commencer dès la phase de conception avec les développeurs : elle ne peut plus entièrement reposer sur les équipes IT/Ops.

La sécurisation des applications cloud natives

La sécurité doit s’imbriquer dans la stratégie cloud native globale de l’organisation. Les applications natives du cloud doivent être sécurisées dans leur propre contexte et en suivant une approche moderne, qui tient compte de l’évolution des équipes, des processus et du modèle d’infrastructure utilisés pour leur conception et leur exécution.  La sécurité cloud-native repose donc sur la sécurité des applications natives du cloud : il faut veiller à ce que les vulnérabilités soient identifiées et corrigées durant la phase de développement.  Cette stratégie de sécurité doit imprégner chaque étape du cycle de vie du développement logiciel.

Pour créer des applications qui répondent aux objectifs métiers de l’entreprise et aux exigences du cloud natif, les développeurs auront tout intérêt à utiliser une plateforme de sécurité. Dans un contexte où toujours plus d’éléments de l’infrastructure sont définis lors de la phase de développement, vos équipes doivent comprendre qu’elles ont un grand rôle à jouer dans la sécurisation du code. Pour créer une application véritablement native du cloud, l’architecture cloud doit être au centre de toutes les attentions à chaque étape de son développement.

Lorsque les bases du design sont posées, le codage de l’application et de l’infrastructure peut commencer. À cette étape, il est primordial de tester le code aussitôt que possible dans le cycle de vie du développement logiciel. Pour les applications natives, une approche traditionnelle avec un seul type de vérification ne suffit plus. Il faut au minimum combiner tests statiques (SAST), tests dynamiques (DAST), tests interactifs (IAST) et tests mobiles (MAST) pour valider la sécurité du code d’une application cloud native.

La sécurisation de l’infrastructure cloud native

L’infrastructure cloud native d’une application présente son propre lot de défis. Les configurations IaC conduisant à la mise en production d’une infrastructure, les développeurs rédigent souvent le code de l’application et de l’infrastructure en tandem. Par conséquent, vous devez utiliser des outils de sécurité capables de répondre à cette problématique unique, de s’intégrer à vos workflows existants pour fournir des informations utiles et des conseils de correction aux développeurs directement dans leur IDE, et d’assurer les tests locaux via une CLI.

En plus de fournir des conseils de sécurité dans l’environnement de développement local, les outils de sécurité cloud-native doivent aussi s’intégrer dans chaque phase du cycle de vie logiciel. L’analyse automatique dans les systèmes de gestion du code source et la vérification dans les systèmes CI/CD des artefacts dérivés tels que les images de conteneurs, doivent être une priorité. Les résultats de ces analyses d’intégration doivent aussi fournir des conseils de correction pour permettre aux développeurs de prioriser les éléments les plus urgents.

Les infrastructures sur site ancienne génération reposaient souvent sur un périmètre de réseau logique servant à bloquer le trafic non autorisé sur certaines ressources internes mal sécurisées. Dans le cloud natif, la notion de périmètre n’a plus de raison d’être : quelques lignes de configuration ou un changement depuis l’interface utilisateur peuvent suffire à rendre la quasi-totalité des ressources accessibles au public, et ce pour la plupart des fournisseurs cloud. Des données qui semblent conserver le même domaine logique peuvent en réalité passer par plusieurs réseaux et emplacements physiques avant d’atteindre leur destination. En réponse, les entreprises doivent adopter un modèle zero-trust, où chaque composant ou service est perçu comme une cible potentielle à compromettre. Dans ce type de système, il y a authentification entre tous les nœuds ou les ressources, quel que soit l’emplacement réseau.

Si la sécurité des applications cloud natives prend une place accrue dans le processus de développement, elle reste aussi critique dans toutes les autres étapes, environnement de production inclus. Les architectures d’hier avaient souvent accès à une seule ressource informatique, à savoir le matériel du serveur, et les outils de sécurité traditionnels œuvraient pour sécuriser le périmètre autour de ces ressources en utilisant des pare-feu et des configurations réseau statiques pour contrôler l’accès et le trafic. À l’inverse, une infrastructure cloud native se veut par nature hautement dynamique, avec un déploiement rapide des nouvelles applications et une reconfiguration aisée des ressources.

Qu’est-ce qu’une architecture de sécurité cloud-native ?

Une architecture de sécurité cloud-native vise à garantir la visibilité de tous les éléments déployés et actifs dans le cloud qui sont utiles pour protéger les applications, l’infrastructure et les plateformes. En savoir plus sur l’architecture de sécurité du cloud.

Les applications cloud natives peuvent parfois employer une horde de ressources informatiques et d’environnements d'exécution, y compris des machines virtuelles, des conteneurs et des fonctions sans serveur. La surveillance et la sécurisation de l’environnement d’exécution des conteneurs, un autre produit de l’écosystème cloud natif, requièrent des outils de sécurité adaptés. L’analyse des artefacts et de la configuration lors de l'exécution est vitale pour maintenir une posture de sécurité indéfectible dans un environnement cloud natif.

Applications cloud natives et plateformes de sécurité cloud-native vont de pair

Si le cloud ne cesse d’évoluer, il n’est pas prêt de disparaître. Face à l’innovation accrue, de nouveaux outils et technologies vont voir le jour pour permettre aux entreprises de suivre le rythme. Trop souvent, les organisations se contentent de transposer leur infrastructure logicielle sur site dans le cloud, important dans son sillage des abstractions et des modèles de sécurité dépassés : cette pratique les prive des avantages des applications cloud natives.

Les outils et modèles de sécurité conçus à l’ère de l’hébergement sur site vous font courir un risque bien réel, car elles ne sont pas taillées pour assurer votre sécurité dans un nouveau monde où le cloud est omniprésent. Garantir l’évolutivité et, plus important encore, la sécurité de vos applications est primordial dans un environnement compétitif où tout va très vite. Les entreprises qui veulent garder l’ascendant sur la concurrence à l’ère du cloud moderne doivent fixer leur attention sur la conception d’applications cloud natives et utiliser des plateformes de sécurité pensées pour le cloud afin de les protéger.

« Beaucoup d’éléments entrent en jeu lors du déploiement d’un logiciel »\[...] « C’est très long de tout réaliser à la main. On traîne des pieds pour le faire et, en plus, le risque d’erreur est grand. C’est pourquoi nous avons choisi de tout automatiser, y compris la sécurité, avec Snyk. »

Alex Emery, Chef de produit plateforme cloud chez Coveo

Sécurisez chaque composant de vos applications cloud natives dans une même plateforme avec Snyk.