Le principal souci d’une entreprise est la sécurité de tous ses outils IT (applications desktop, applications web, etc.). Une haute disponibilité est requise pour répondre aux enjeux de la concurrence et à la demande des clients. Ces entreprises disposent généralement d’une bonne stack de sécurité, qu’elle soit infra ou applicative, mais elles oublient parfois un point essentiel du cycle de vie d’une application : la sécurité de son déploiement.

Le déploiement d’une application est crucial car il implique l’utilisation de divers accès (login, mots de passe) ainsi que les livrables de l’équipe de développement. Dans cet article, nous allons aborder la sécurité des déploiements selon quatre axes : sécurité du livrable, préparation des environnements, sécurité des run et monitoring & tests.

1. Sécurité du livrable

  • Tests de sécurité automatisés : Intégrer des scanners de vulnérabilités et des outils d’analyse statique et dynamique dans le pipeline CI/CD.
  • Versionnage de l’artifact : Après les tests d’intégration et fonctionnels, créer un historique de versionnage de votre artifact (Docker registry, Nexus, Artifactory, etc…) est essentiel pour la gestion des rollback, que nous allons aborder dans l’étape « Sécurité du RUN ».

2. Préparation des environnements

Avant de jouer au foot, on vérifie l’état du terrain pour savoir s’il est jouable ou non, s’il est disponible et si les deux équipes sont aptes à jouer. De la même manière, la préparation de vos environnements consiste à vérifier la disponibilité des environnements de production (Prod) ou de préproduction (Preprod), et la compatibilité du livrable par rapport aux environnements. Pour une meilleure vérification de la compatibilité, les environnements de Prod et de Preprod doivent être identiques afin de juger si le livrable peut passer en production sur le plan fonctionnel et de réaliser des tests de performances pour la haute disponibilité et le comportement de l’application en environnement hors Prod (Preprod). Après des résultats satisfaisants, vous pouvez passer à l’étape suivante.

3. Sécurité du RUN

Dans le jargon DevOps, RUN signifie : mise en production, déploiement, mise en service, etc. C’est comme une transaction bancaire, où tout le processus doit être sécurisé, du solde avant envoi, à la vérification du compte du destinataire pour s’assurer qu’il peut recevoir, et la possibilité d’annuler la transaction en cas de dysfonctionnement ou d’envoi différé. De la même manière, la partie RUN doit être sécurisée sur cinq axes :

  • Sécurité des accès : Utiliser des outils comme HashiCorp Vault, AWS Secrets Manager ou Azure Key Vault pour gérer et stocker les clés API, les mots de passe et autres secrets de manière sécurisée. Mettre en place des politiques pour la rotation régulière des secrets.
  • Disponibilité de l’environnement de production : Quel que soit le type d’environnement que vous utilisez, effectuez toujours un test pour vérifier s’il est disponible pour recevoir. À vous de déterminer le niveau de disponibilité souhaité, même si un simple ping peut suffire.
  • Sauvegarde de la BDD : Mettre en place une stratégie de sauvegarde de la base de données (BDD) avant chaque déploiement ou l’inclure dans le script de déploiement avant le déploiement de la nouvelle version.
    Plan
  • Plan de Rollback : Mettre en place des plans de repli pour revenir rapidement à une version précédente en cas de problème avec le déploiement, en utilisant votre outil de versionnage d’artifact pour retrouver facilement la version précédente, et la sauvegarde de la BDD effectuée avant.
  • Automatisation : Automatiser les actions de déploiement pour éviter les erreurs ou l’oubli d’une action comme si cela était fait manuellement. Ne pas oublier l’automatisation des rollback (Ansible, Helm, etc.).

4. Surveillance et Audit

  • Logs et monitoring : Mettre en place des systèmes de journalisation et de surveillance pour détecter toute activité suspecte ou anormale pendant et après le déploiement.
  • Audit des changements : Garder une trace des changements déployés, des utilisateurs ayant effectué les déploiements et des résultats des déploiements.

Nous avons couvert les éléments essentiels de la sécurité des déploiements. À vous de jouer maintenant ! Restez connectés pour d’autres articles et partages.

Leave a Reply

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