DevOps_FR

Comment sécuriser la mise en œuvre du DevOps ?

DevOps prend de plus en plus de place dans les  entreprises. Cette démarche, véritable levier de compétitivité pour l’entreprise, vise à optimiser la mise à disposition des produits ou services sur le marché par l’accélération du rythme de mise en production des applications. Elle s’appuie sur un ensemble de pratiques et d’outils partagés par les équipes de développement (Dev) et les opérations (Ops).

Avec 96 % des vulnérabilités de l’entreprise présentes dans les applications, l’enjeu est majeur pour la sécurité. Sa mise en place est donc propice à l’introduction de la sécurité comme un pilier de cette nouvelle culture d’entreprise.

Les pré-requis d’une démarche DevOps réussie

S’il est si important de faire face aux risques liés aux développements d’une application, c’est avant tout parce que l’entreprise est de plus en plus ouverte sur le monde extérieur. Les stratégies d’entreprises visant à mettre en œuvre une démarche DevOps se développent et il apparaît primordial de préparer sa mise en place, de ne pas se précipiter et d’intégrer la sécurité dès le début.

Dans les faits, on constate que très régulièrement, DevOps est un prétexte pour permettre aux développeurs de demander des droits sur les environnements de production et d’agir directement pour « améliorer » la réactivité de l’entreprise. Cette solution de facilité comporte des risques accrus de sécurité pour l’entreprise. L’introduction de la sécurité dans une démarche DevOps doit vraiment s’imposer comme une nécessité pour l’entreprise pour faire de sa mise en place un succès.

DevOps est né de la nécessité de réduire le temps entre l’idée et la disponibilité du produit ou du service, pourtant ces concepts sont en général mal compris. De nombreux pré-requis sont nécessaires pour que la mise en place se fasse efficacement. Il faut notamment profiter des changements techniques et organisationnels pour intégrer la sécurité très en amont des développements applicatifs.

Par ailleurs, l’humain joue un rôle primordial dans le succès d’une telle démarche. Un changement culturel, voire philosophique des pratiques s’impose. Il faut donc mettre en place un dispositif de formation, de sensibilisation et de communication adapté. Pour  une démarche réussie, la sécurité doit faire partie de ces changements.  

Bien comprendre DevOps pour déterminer les nouveaux enjeux de sécurité

Une des idées principales dans le mouvement DevOps est le changement perpétuel du produit que l’on développe ; il paraît alors naturel que la phase de conception de l’architecture, des bases de données, de recueil des exigences notamment soient plus succincte que dans un cycle de type « waterfall ». L’analyse de risque telle qu’on la connait aujourd’hui apparaît alors inadaptée et trop lourde. L’ANSSI a d’ailleurs entamé récemment une démarche visant à adapter la gestion des risques au monde Agile (« intégrer la sécurité du numérique en démarche Agile »).

La phase de développement reprend les méthodes de développement agile et met en place une plateforme d’intégration continue. En termes de sécurité, pour éviter de ralentir le cycle de mise en production, il est nécessaire d’automatiser au maximum les tests de sécurité, d’intégrer un outil d’analyse de code statique dans les IDE des développeurs pour qu’ils puissent corriger les vulnérabilités au fil-de-l’eau et ne générer l’artefact que si les tests de sécurité ne remontent pas de point bloquant.

Le déploiement continu permet de mettre en place des mécanismes de déploiement complètement automatisés et assure une mise à jour avec un risque maîtrisé. Les outils existants sont aujourd’hui nombreux et rendent une validation continue difficile. La sécurité peut s’y intégrer grâce à la construction d’un environnement à la volée sur lesquels des scans de sécurité dynamiques (DAST) et des attaques automatisées peuvent être réalisées.

Pour faciliter la mise en œuvre de machines virtuelles pour les besoins de flexibilité des applications, DevOps a mis en avant les solutions d’outillage permettant de créer ces VMs (Virtual Machines) par programmation. Les responsables sécurité verront dans sa mise en place une véritable avancée car tous les environnements se ressemblent alors et, une fois le durcissement effectué, c’est cet environnement qui est distribué (Infrastructure as Code). Avec une politique de gestion adaptée, la gestion des patchs est aussi facilitée pour peu qu’elle suive le cycle de mise à jour applicatif.

Enfin, dans un environnement DevOps, les feedbacks constants et la qualité de la surveillance continue sont nécessaires pour pouvoir réagir au plus vite et mettre en place une démarche d’amélioration continue. Sans parler du suivi classique de la sécurité à travers un SIEM, la surveillance doit intégrer le contrôle de conformité, des vulnérabilités et le suivi des feedbacks en continu. Un outillage de détection automatique des changements doit assurer la stabilité de la plateforme.

Les cinq points clés pour une mise en œuvre réussie de la sécurité dans une démarche DEVOPS

Pour réussir l’intégration de DevOps de manière sécurisée dans son entreprise, il est nécessaire de mettre en place les 5 principes de fonctionnement suivants :

  1. Briser les silos et effacer les barrières entre la production, l’exploitation et la sécurité, pour permettre à l’ensemble des équipes de se connaître et travailler ensemble. On intègre donc dès le départ les acteurs de la sécurité dans le projet.
  2. Mettre en place une communication fluide et régulière sur l’ensemble du cycle. La mise en place de tableaux de bords, visibles par toutes les parties prenantes, des chantiers en cours et de leur état d’avancement facilite le pilotage global de l’ensemble.
  3. Intégrer dans la plateforme d’intégration continue un outillage d’audit de code bloquant la génération d’exécutables en cas de risque important.
  4. Mettre en place une plateforme de déploiement continu de façon à standardiser la chaîne de production du logiciel et éviter les customisations et éléments non standards. Une illustration de cette standardisation est l’utilisation d’environnements identiques pour les tests et la production.
  5. Déployer une démarche d’amélioration continue : à chaque itération le retour des utilisateurs permet d’être plus proche des attendus de ceux-ci. On profitera de ces itérations pour affiner la politique de gestion des patchs et sa stratégie de branching.

On l’a vu, pour s’intégrer dans une démarche DevOps, la sécurité a besoin de s’adapter et de s’industrialiser en termes d’outillage. Si ceux-ci existent, ils sont pour autant encore peu utilisés.

DevSecOps s’il n’est pas encore un buzzword devrait très rapidement le devenir. Plutôt qu’une version revisitée du DevOps, il est certainement préférable d’en parler comme les besoins de la sécurité dans une démarche DevOps. Un programme DevSecOps ce sont donc 4 axes d’investigations de la sécurité sur DevOps :

  1. Maîtrise des risques et contraintes
  2. Conception sécurité et test automatisés (quelquefois SECDEV)
  3. Déploiement sécurisé (quelquefois SECOPS)
  4. Surveillance continue de la sécurité
The following two tabs change content below.

Laurent Hareau

Responsable des activités Conseil & Intégration Cybersécurité

Latest posts by Laurent Hareau (see all)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *