Présentation

Effectué

Les pratiques DevOps permettent aux équipes de développement de déployer des applications plus rapidement et plus fréquemment. Toutefois, la vitesse sans sécurité crée des risques. Le passage rapide vers une vulnérabilité de sécurité n’aide pas votre entreprise. Le défi est de maintenir la vitesse tout en garantissant que les applications restent sécurisées tout au long de leur cycle de vie.

Le défi de sécurité dans le développement moderne

Les équipes DevOps ont accès à une infrastructure sans précédent et à une mise à l’échelle via des plateformes cloud. Cette accessibilité offre des opportunités, mais expose également les organisations à des menaces de sécurité sophistiquées. Chaque déploiement d’application risque potentiellement de risquer la sécurité métier, les données client et la réputation organisationnelle.

Les approches de sécurité traditionnelles échouent dans les environnements modernes : Les modèles de sécurité basés sur le périmètre qui ont protégé les centres de données avec des pare-feu et des contrôles réseau ne se traduisent pas en environnements cloud distribués. Les applications s’étendent sur plusieurs services, régions et fournisseurs de cloud. Flux de données entre les microservices, les API et les intégrations externes. L’approche traditionnelle du château et du moat ne fournit plus une protection adéquate.

La sécurité moderne nécessite plusieurs couches de défense : Les organisations doivent adopter la sécurité à plusieurs niveaux, notamment le code d’application, l’infrastructure, le réseau, les données et l’identité. La sécurité ne peut pas exister en tant que point de contrôle unique. Elle doit être incorporée dans toute la couche avec plusieurs opportunités de détection et de prévention des menaces.

L’approche DevSecOps

Comment vérifier que les applications sont sécurisées et restent sécurisées grâce à l’intégration continue et à la livraison continue ? Comment trouver et résoudre les problèmes de sécurité au début du processus de développement ? La réponse réside dans les pratiques communément appelées DevSecOps.

Sécurité en tant que responsabilité partagée : DevSecOps intègre les équipes de sécurité et leurs fonctionnalités dans vos pratiques DevOps, ce qui rend la sécurité responsable de tous les membres de l’équipe plutôt que d’une fonction distincte. Les développeurs, les ingénieurs d’opérations et les spécialistes de la sécurité collaborent tout au long du cycle de vie du développement.

Déplacer la sécurité vers la gauche : La sécurité doit passer d'une évaluation effectuée à la fin du développement à une considération intégrée à chaque étape du processus. Cette approche de « décalage vers la gauche » intercepte les problèmes de sécurité dès qu’ils sont plus faciles et moins coûteux à résoudre. Une vulnérabilité trouvée lors de l’examen du code coûte beaucoup moins qu’une autre découverte en production.

Sécurité en tant que processus continu

La sécurisation des applications est un processus continu qui englobe plusieurs domaines :

Infrastructure sécurisée : Créez des bases sécurisées, notamment des systèmes d’exploitation renforcés, des réseaux correctement configurés, un stockage chiffré et une gestion sécurisée des identités.

Architecture avec sécurité en couches : Concevoir des applications avec une sécurité intégrée à l’architecture. Implémentez la défense en profondeur avec plusieurs couches de sécurité afin que si un contrôle échoue, d’autres restent efficaces.

Validation continue de la sécurité : Automatisez les tests de sécurité tout au long de votre pipeline. Exécutez des analyses de sécurité, des évaluations des vulnérabilités et des vérifications de conformité dans le cadre de l’intégration et du déploiement continus.

Surveillance et réponse : Surveillez les applications en production pour détecter les menaces de sécurité et le comportement anormal. Répondez rapidement aux problèmes détectés avec la correction automatisée, le cas échéant.

Diagramme en quatre parties montrant l’infrastructure, l’architecture d’application, la supervision et la validation continue en tant que composants de sécurité interconnectés.

Approche de sécurité holistique : La sécurité est la responsabilité de tout le monde et doit être traitée de manière holistique dans l’ensemble du cycle de vie de l’application, de la conception initiale à l’opération de production et de la désaffectation éventuelle.

Présentation de ce module

Ce module présente les concepts et pratiques DevSecOps qui intègrent la sécurité tout au long de votre cycle de vie de développement :

Vulnérabilités courantes : Vous découvrirez les attaques par injection SQL, l’une des vulnérabilités de sécurité les plus courantes et dangereuses. Comprendre le fonctionnement de ces attaques vous aide à les empêcher dans vos applications.

Principes DevSecOps : Vous allez comprendre comment DevSecOps diffère des approches de sécurité traditionnelles et comment intégrer des pratiques de sécurité dans vos flux de travail DevOps existants sans sacrifier la vitesse de développement.

Sécurité du pipeline : Vous découvrirez les points de validation critiques dans votre pipeline CI/CD où des vérifications de sécurité doivent se produire. Découvrez comment implémenter des tests de sécurité automatisés qui interceptent les vulnérabilités avant d’atteindre la production.

Modélisation des menaces : Vous allez apprendre des approches systématiques pour identifier, évaluer et hiérarchiser les menaces de sécurité. La modélisation des menaces vous aide à concentrer les efforts de sécurité sur les risques les plus importants pour vos applications et votre entreprise.

Analyse automatisée de la sécurité : Vous allez explorer des outils tels que GitHub CodeQL qui fournissent une analyse de sécurité automatisée. Ces outils analysent le code pour détecter les vulnérabilités et les modèles de sécurité, ce qui vous permet de trouver des problèmes au début sans révisions de sécurité manuelles pour chaque modification de code.

Accélération des équipes de sécurité : Les pipelines d’intégration et de déploiement continus peuvent réellement accélérer le travail des équipes de sécurité en automatisant les contrôles de sécurité répétitifs et en améliorant la collaboration avec les équipes de développement de logiciels. Les équipes de sécurité peuvent se concentrer sur les menaces complexes plutôt que sur l’examen manuel des modifications de routine.

Objectifs d’apprentissage

Une fois ce module terminé, vous pourrez :

  • Identifiez et comprenez les attaques par injection SQL et leur impact sur la sécurité des applications.
  • Expliquer les principes DevSecOps et comment la sécurité s’intègre tout au long du cycle de vie du développement.
  • Implémentez la validation de sécurité à des points clés dans votre pipeline DevOps.
  • Effectuez une modélisation des menaces pour identifier et hiérarchiser les risques de sécurité.
  • Utilisez GitHub CodeQL pour l’analyse automatisée de la sécurité et la détection des vulnérabilités.

Conditions préalables

  • Compréhension des concepts et des pratiques DevOps.
  • Connaissance des pipelines d’intégration continue et de déploiement continu.
  • Connaissance de base du développement d’applications et des concepts de sécurité courants.
  • Expérience avec les systèmes de contrôle de version tels que Git.
  • Avantageux d’avoir une expérience dans une organisation qui fournit des logiciels.