Implémenter la sécurité en amont

Last reviewed 2025-02-05 UTC

Ce principe du pilier de sécurité du Google Cloud framework Well-Architected vous aide à identifier les contrôles pratiques que vous pouvez implémenter dès le début du cycle de vie du développement logiciel pour améliorer votre posture de sécurité. Il fournit des recommandations qui vous aident à mettre en place des garde-fous de sécurité préventifs et des contrôles de sécurité post-déploiement.

Présentation des principes

La sécurité en amont consiste à adopter des pratiques de sécurité dès le début du cycle de vie du développement logiciel. Ce principe a les objectifs suivants:

  • Évitez les défauts de sécurité avant d'apporter des modifications au système. Implémentez des garde-fous de sécurité préventifs et adoptez des pratiques telles que l'Infrastructure as Code (IaC), le Policy as Code et les contrôles de sécurité dans le pipeline CI/CD. Vous pouvez également utiliser d'autres fonctionnalités spécifiques à la plate-forme, comme le service de règles d'administration et les clusters GKE renforcés dans Google Cloud.
  • Détectez et corrigez les bugs de sécurité de manière précoce, rapide et fiable après toute modification du système. Adoptez des pratiques telles que les revues de code, l'analyse des failles post-déploiement et les tests de sécurité.

Les principes de sécurité Implémenter la sécurité par conception et de sécurité shift-left sont liés, mais leur champ d'application diffère. Le principe de sécurité par conception vous aide à éviter les failles de conception fondamentales qui nécessiteraient de repenser l'ensemble du système. Par exemple, un exercice de modélisation des menaces révèle que la conception actuelle n'inclut pas de stratégie d'autorisation, et que tous les utilisateurs auraient le même niveau d'accès sans elle. La sécurité décalée vers la gauche vous aide à éviter les défauts d'implémentation (bugs et erreurs de configuration) avant l'application des modifications, et permet de corriger rapidement et de manière fiable les problèmes après le déploiement.

Recommandations

Pour implémenter le principe de sécurité shift-left pour vos charges de travail cloud, tenez compte des recommandations des sections suivantes:

Adopter des contrôles de sécurité préventifs

Cette recommandation s'applique aux axes d'action suivants:

  • Gestion de l'authentification et des accès
  • Gouvernance, risques et conformité dans le cloud

Les contrôles de sécurité préventifs sont essentiels pour maintenir un niveau de sécurité élevé dans le cloud. Ces contrôles vous aident à atténuer de manière proactive les risques. Vous pouvez éviter les erreurs de configuration et les accès non autorisés aux ressources, permettre aux développeurs de travailler efficacement et contribuer à garantir la conformité aux normes du secteur et aux règles internes.

Les contrôles de sécurité préventifs sont plus efficaces lorsqu'ils sont implémentés à l'aide de l'infrastructure as code (IaC). Avec l'IaC, les contrôles de sécurité préventifs peuvent inclure des vérifications plus personnalisées du code de l'infrastructure avant le déploiement des modifications. Associés à l'automatisation, les contrôles de sécurité préventifs peuvent s'exécuter dans le cadre des vérifications automatiques de votre pipeline CI/CD.

Les produits et fonctionnalités suivants peuvent vous aider à implémenter des contrôles préventifs dans votre environnement : Google Cloud

IAM vous permet d'autoriser qui peut agir sur des ressources spécifiques en fonction des autorisations. Pour en savoir plus, consultez la section Contrôle des accès aux ressources de l'organisation avec IAM.

Le service de règles d'administration vous permet de définir des restrictions sur les ressources pour spécifier leur configuration. Par exemple, vous pouvez utiliser une règle d'administration pour effectuer les opérations suivantes:

En plus d'utiliser des règles d'administration, vous pouvez restreindre l'accès aux ressources à l'aide des méthodes suivantes:

  • Tags avec IAM : attribuez un tag à un ensemble de ressources, puis définissez la définition d'accès pour le tag lui-même, plutôt que de définir les autorisations d'accès sur chaque ressource.
  • Conditions IAM : définissez un contrôle des accès conditionnel et basé sur des attributs pour les ressources.
  • Défense en profondeur: utilisez VPC Service Controls pour restreindre davantage l'accès aux ressources.

Pour en savoir plus sur la gestion des ressources, consultez la section Choisir une hiérarchie de ressources pour votre Google Cloud zone de destination.

Automatiser le provisionnement et la gestion des ressources cloud

Cette recommandation s'applique aux axes d'action suivants:

  • Sécurité des applications
  • Gouvernance, risques et conformité dans le cloud

L'automatisation du provisionnement et de la gestion des ressources et des charges de travail cloud est plus efficace lorsque vous adoptez également l'IaC déclarative, par opposition au script impératif. L'IaC n'est pas un outil ni une pratique de sécurité en soi, mais il vous aide à améliorer la sécurité de votre plate-forme. L'adoption de l'IaC vous permet de créer une infrastructure reproductible et de fournir à votre équipe d'exploitation un état correct connu. L'IaC améliore également l'efficacité des rollbacks, des modifications d'audit et du dépannage.

Combiné aux pipelines CI/CD et à l'automatisation, l'IaC vous permet également d'adopter des pratiques telles que les règles en tant que code avec des outils tels qu'OPA. Vous pouvez auditer les modifications de l'infrastructure au fil du temps et exécuter des vérifications automatiques sur le code de l'infrastructure avant le déploiement des modifications.

Pour automatiser le déploiement de l'infrastructure, vous pouvez utiliser des outils tels que Config Controller, Terraform, Jenkins et Cloud Build. Pour vous aider à créer un environnement d'application sécurisé à l'aide de l'IaC et de l'automatisation,Google Cloud fournit le plan de base d'entreprise. Ce plan est la conception subjective de Google, qui suit toutes nos pratiques et configurations recommandées. Le plan fournit des instructions détaillées pour configurer et déployer votre topologie Google Cloud à l'aide de Terraform et de Cloud Build.

Vous pouvez modifier les scripts du plan de base d'entreprise pour configurer un environnement qui suit les recommandations de Google et répond à vos propres exigences de sécurité. Vous pouvez vous appuyer sur ce plan en utilisant des plans supplémentaires ou en concevant votre propre automatisation. LeGoogle Cloud Centre d'architecture fournit d'autres modèles pouvant être implémentés sur le plan de base d'entreprise. Voici quelques exemples de ces modèles:

Automatiser les versions sécurisées des applications

Cette recommandation s'applique à la zone de concentration suivante : sécurité des applications.

Sans outils automatisés, il peut être difficile de déployer, de mettre à jour et d'appliquer des correctifs aux environnements applicatifs complexes pour satisfaire les exigences de sécurité. Nous vous recommandons de créer des pipelines CI/CD automatisés pour votre cycle de développement logiciel (SDLC). Les pipelines CI/CD automatisés vous aident à supprimer les erreurs manuelles, à fournir des boucles de rétroaction standardisées pour le développement et à permettre des itérations de produits efficaces. La livraison continue est l'une des bonnes pratiques recommandées par le framework DORA.

L'automatisation des versions d'applications à l'aide de pipelines CI/CD vous permet de détecter et de corriger les bugs de sécurité plus tôt, plus rapidement et plus efficacement. Par exemple, vous pouvez rechercher automatiquement les failles de sécurité lors de la création des artefacts, réduire la portée des examens de sécurité et revenir à une version connue et sûre. Vous pouvez également définir des règles pour différents environnements (tels que les environnements de développement, de test ou de production) afin que seuls les artefacts validés soient déployés.

Pour vous aider à automatiser les versions d'applications et à intégrer des vérifications de sécurité dans votre pipeline CI/CD, Google Cloud fournit plusieurs outils, y compris Cloud Build, Cloud Deploy, Web Security Scanner et Binary Authorization.

Pour établir un processus qui vérifie plusieurs exigences de sécurité dans votre SDLC, utilisez le framework SLSA (Supply-chain Levels for Software Artifacts), défini par Google. SLSA nécessite des vérifications de sécurité pour le code source, le processus de compilation et la provenance du code. Un grand nombre de ces exigences peuvent être incluses dans un pipeline CI/CD automatisé. Pour comprendre comment Google applique ces pratiques en interne, consultez la section Approche deGoogle Cloudface au changement.

Garantissez que les déploiements d'applications suivent les processus approuvés.

Cette recommandation s'applique à la zone de concentration suivante : sécurité des applications.

Si un pirate informatique compromet votre pipeline CI/CD, l'ensemble de votre pile d'applications peut être affecté. Pour sécuriser le pipeline, vous devez appliquer un processus d'approbation bien défini avant de déployer le code en production.

Si vous utilisez Google Kubernetes Engine (GKE), GKE Enterprise ou Cloud Run, vous pouvez mettre en place un processus d'approbation à l'aide de l'autorisation binaire. L'autorisation binaire associe des signatures configurables aux images de conteneurs. Ces signatures (également appelées attestations) aident à valider l'image. Au moment du déploiement, l'autorisation binaire utilise ces attestations pour déterminer si un processus a été terminé. Par exemple, vous pouvez utiliser l'autorisation binaire pour effectuer les opérations suivantes:

  • Vérifier qu'un système de compilation ou un pipeline CI spécifique a bien créé une image de conteneur.
  • Vérifier qu'une image de conteneur est conforme aux règles de signature des failles.
  • Vérifier qu'une image de conteneur transmet les critères de promotion à l'environnement de déploiement suivant, par exemple de l'environnement de développement vers l'environnement de contrôle qualité

L'autorisation binaire vous permet d'exiger que seul du code approuvé s'exécute sur vos plates-formes cibles.

Rechercher les failles connues avant le déploiement de l'application

Cette recommandation s'applique à la zone de concentration suivante : sécurité des applications.

Nous vous recommandons d'utiliser des outils automatisés pour analyser en continu les failles des artefacts d'application avant leur déploiement en production.

Pour les applications conteneurisées, utilisez Artifact Analysis pour exécuter automatiquement des analyses de failles pour les images de conteneur. Artifact Analysis analyse les nouvelles images au fur et à mesure de leur importation dans Artifact Registry. Cette analyse extrait des informations sur les packages système du conteneur. Une fois l'analyse initiale terminée, Artifact Analysis surveille en permanence les métadonnées des images analysées dans Artifact Registry afin de détecter de nouvelles failles. Lorsque Artifact Analysis reçoit de nouvelles informations ou des informations actualisées sur les failles provenant de sources de failles, il effectue les opérations suivantes:

  • Mise à jour des métadonnées des images analysées afin de les actualiser.
  • Création d'occurrences de failles pour les nouvelles notes.
  • Suppression des occurrences de failles qui ne sont plus valides.

Détectez les failles connues dans votre code d'application.

Cette recommandation s'applique à la zone de concentration suivante : sécurité des applications.

Utilisez des outils automatisés pour surveiller en permanence le code de votre application afin de détecter les failles connues, comme le OWASP Top 10. Pour en savoir plus sur les Google Cloud produits et fonctionnalités compatibles avec le top 10 des techniques d'atténuation de l'OWASP, consultez la section Top 10 des options d'atténuation de l'OWASP sur Google Cloud.

Utilisez Web Security Scanner pour identifier les failles de sécurité dans vos applications Web App Engine, Compute Engine et GKE. Le service explore votre application et tous les liens associés à vos URL de démarrage, et tente de tester un maximum d'entrées utilisateur et de gestionnaires d'événements. Il recherche et détecte automatiquement les failles courantes, y compris les scripts intersites, les injections de code, les contenus mixtes et les bibliothèques obsolètes ou non sécurisées. Web Security Scanner permet d'identifier rapidement ces types de failles sans vous distraire avec de faux positifs.

De plus, si vous utilisez GKE Enterprise pour gérer des parcs de clusters Kubernetes, le tableau de bord de la stratégie de sécurité affiche des recommandations avisées et exploitables pour vous aider à améliorer la stratégie de sécurité de votre parc.