Catégories : Expertise DSIPar Commentaires fermés sur Cloud native : répondre aux enjeux de sécurité

Les applications Cloud Native (NCA) sont des solutions conçues dès le départ pour le Cloud et dont l’architecture repose sur des briques présentes au sein de ces plateformes. Ces dernières intègrent une automatisation de l’approvisionnement et de la configuration d’infrastructure au sein de cloud public, privé, multi-cloud ou hybride, allouant et réaffectant dynamiquement les ressources au moment du déploiement en fonction des besoins continus de l’application.

Parmi les nombreux avantages du développement d’applications Cloud Native on peut citer l’accélération de la mise sur le marché des produits, mais aussi une diminution des charges de conception et d’infrastructure.

Toutefois, il ne faut pas perdre de vue que la mise en œuvre d’applications Cloud Native présente des facteurs de risques notamment au niveau de l’intégration et de la sécurité entre les différents composants constitutifs de l’application.

Les pratiques et technologies de développement modernes, comme le CI/CD, les conteneurs et le serveless, requièrent en effet une sécurité au niveau des applications en fournissant une détection plus précoce, une protection immédiate et l’assurance que vos services cloud respectent les bonnes pratiques, tout en conservant leur agilité.

Les fournisseurs de Cloud public proposent un modèle de responsabilité partagée entre eux et le client. Il s’agit cependant d’un modèle de sécurité très différent de celui appliqué On Premise auquel les organisations sont habituées.

Intégrer la sécurité aux applications Cloud Native

De nombreuses pratiques de sécurité On Premise sont rendues obsolètes par le Cloud et ses services natifs. Continuer à les appliquer peut se révéler contre-productif, sans pour autant apporter la sécurité attendue. En essayant d’appliquer les pratiques internes de sécurité au Cloud, on crée des procédures inadaptées et on perd tous les bénéfices du cloud notamment le time to market ou la scalabilité.

Lorsque la sécurité est trop contraignante, tous les moyens pour la contourner sont bons. Pour être efficace sur le cloud, on peut conserver les fondamentaux à condition de les adapter aux exigences des équipes DevOps et notamment :

  • Remplacer les outils traditionnels par les fonctionnalités de sécurité déjà embarquées par défaut sur le Cloud
  • S’appuyer sur la souplesse du Cloud et les principes DevOps & Agile pour passer d’une logique manuelle (“right side”) à une logique automatisée (“shift left”).
  • Sécuriser l’accès à l’environnement cloud
  • Privilégier une sécurité distribuée plutôt que centralisée en un seul point
  • Réfléchir à la sécurité de chaque application en amont
  • Utiliser au maximum la sécurité du cloud comme 1ère couche mais établir les règles de communication entre les machines et restreindre les accès au strict nécessaire
  • Gérer la couche d’accès à l’infrastructure Cloud : définir en avance de phase l’architecture d’accès la plus adaptée aux utilisations, assurer le maillage entre compte cloud, utilisateurs cloud et accès applicatifs et réviser cette architecture régulièrement pour rester cohérent avec les nouveaux usages de l’organisation
  • Mettre en place une procédure d’attribution des droits
  • Avoir une politique de chiffrement adaptée : tout doit être chiffré… ou presque : bases de données, S3, communications entre instances, notamment les remontées de logs, dont les informations pourraient être exploitées si interceptées
  • Réaliser des tests de pénétration (pen tests) sur l’application.
  • Agréger l’ensemble des informations de logs pour permettre de superviser de manière unifiée l’ensemble des composants de l’application cloud native.
  • Sécuriser la chaine CICD : ce problème ne se posait pas avant la généralisation du CI/CD. La mise en production était gérée par les Ops. Dans ce nouveau paradigme, l’enjeu de la sécurité dans le Cloud est de bien segmenter les applications et de s’adapter aux nouvelles méthodes de développement et de déploiement. Cela demande également d’accompagner le changement des mentalités, puisque la tendance à “faire comme avant” reste très forte.

 

Automatisez la sécurité Cloud native

Automatisez la sécurité permet de ne pas dépendre des individus, de réduire les interactions et les interventions humaines.

L’automatisation de la sécurité des applications Cloud Native s’effectue dans le cadre du DevOps. En effet, la mise en place de méthodes agiles alignées sur les principes de DevOps, notamment la livraison et le déploiement continus, est un prérequis au développement d’une application Cloud Native.

Par conséquent, l’automatisation de la sécurité Cloud native passe par l’intégration de la sécurité au DevOps et son automatisation, mais aussi par :

  • L’utilisation d’un gestionnaire de secrets : qui permet de gérer les mots de passe et tokens, et évite ainsi de dévoiler ces informations sensibles. Les développeurs peuvent déployer en production sans connaître les mots de passe des bases de données, de la même façon il est également possible de générer des token à durée limitée, juste le temps du déploiement. Si le token est compromis, il le sera sur une durée très limitée
  • La mise en place des contrôles en continu et d’autres en mode “spot check”, et automatiser la surveillance, la remontée des alertes et, lorsque c’est pertinent, la remédiation. Ces contrôles seront appliqués à la fois sur l’infrastructure cloud, la chaîne CI/CD et le code développé.
  • L’application du concept sécurité as code. On parle de plus en plus d’infrastructure as Code comme l’un des piliers du DevOps. Iac est le fait d’appliquer les bonnes pratiques DevOps à l’infrastructure de sorte qu’elle soit automatisée, cohérente et reproductible. En appliquant le même concept à la sécurité, non seulement on rapproche les équipes mais surtout on élimine les processus de configuration manuels relatifs à la sécurité, particulièrement sources d’erreurs et on automatise la sécurité

 

La coopération et la formation pour une sécurité portée par tous

Avec l’avènement du Cloud, les grands principes de la sécurité n’ont pas changé si fondamentalement, mais ils s’appliquent désormais différemment. La sécurité, autrefois concentrée autour de l’infrastructure et l’affaire de spécialistes, est dorénavant distribuée. Les spécialistes ont toujours leur place, mais un transfert de compétences s’est opéré vers les DevOps. Concrètement, cela nécessite de former les équipes de sécurité au DevOps et inversement, de sorte d’intégrer en amont les concepts de sécurité et les bonnes pratiques en parfaite transparence avec les équipes de sécurité.

Cette transformation des pratiques Devops pour l’ensemble du cycle de vie des applications par l’intégration de la composante sécurité a donné naissance au concept de DevSecOps. Cette expression montre bien l’importante aujourd’hui de la sécurité dans le développement des applications Cloud Native.

Ne ratez plus aucunes actualités avec la newsletter mensuelle de SoftFluent