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 tôt dans le cycle de vie du développement logiciel pour améliorer votre posture de sécurité. Il fournit des recommandations qui vous aident à mettre en œuvre 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 vise les objectifs suivants :
- Évitez les failles de sécurité avant d'apporter des modifications au système. Mettez en œuvre des garde-fous de sécurité préventifs et adoptez des pratiques telles que l'infrastructure as code (IaC), la stratégie 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, telles que 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 l'application de toute modification du système. Adoptez des pratiques telles que les revues de code, l'analyse des failles après le déploiement et les tests de sécurité.
Les principes Implémenter la sécurité dès la conception et Shift-left security sont liés, mais leur portée diffère. Le principe de sécurité par conception vous aide à éviter les défauts de conception fondamentaux 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 règle d'autorisation et que tous les utilisateurs auraient le même niveau d'accès sans elle. La sécurité "shift-left" vous aide à éviter les défauts d'implémentation (bugs et erreurs de configuration) avant l'application des modifications. Elle permet également d'effectuer des corrections rapides et fiables 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
- Automatiser le provisionnement et la gestion des ressources cloud
- Automatiser les versions sécurisées des applications
- Garantissez que les déploiements d'applications suivent les processus approuvés.
- Rechercher les failles connues avant le déploiement de l'application
- Détectez les failles connues dans votre code d'application.
Adopter des contrôles de sécurité préventifs
Cette recommandation concerne les domaines d'intérêt 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 à limiter les risques de manière proactive. 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 à assurer la conformité avec les normes du secteur et les 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 d'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 Google Cloud suivants peuvent vous aider à implémenter des contrôles préventifs dans votre environnement :
- Contraintes du service de règles d'administration : configurez des contraintes prédéfinies et personnalisées avec un contrôle centralisé.
- VPC Service Controls : créez des périmètres autour de vos services Google Cloud .
- Identity and Access Management (IAM), Privileged Access Manager et les stratégies de limites d'accès des principaux limitent l'accès aux ressources.
- Policy Controller et Open Policy Agent (OPA) : appliquez des contraintes IaC dans votre pipeline CI/CD et évitez les erreurs de configuration cloud.
IAM vous permet d'autoriser qui peut agir sur des ressources spécifiques en fonction des autorisations. Pour en savoir plus, consultez Contrôler l'accès aux ressources d'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 :
- Limiter le partage des ressources en fonction du domaine
- Limiter l'utilisation des comptes de service.
- Limiter l'emplacement physique des ressources nouvellement créées.
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 Choisir une hiérarchie de ressources pour votre zone de destination Google Cloud .
Automatiser le provisionnement et la gestion des ressources cloud
Cette recommandation concerne les domaines d'intérêt suivants :
- Sécurité des applications
- Gouvernance, risques et conformité dans le cloud
L'automatisation du provisionnement et de la gestion des ressources et 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 elle 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 fournit à votre équipe d'opérations un état correct connu. L'IaC améliore également l'efficacité des rollbacks, des modifications d'audit et du dépannage.
Combinée aux pipelines CI/CD et à l'automatisation, l'IaC vous permet également d'adopter des pratiques telles que la stratégie en tant que code avec des outils comme OPA. Vous pouvez auditer les modifications apportées à l'infrastructure au fil du temps et exécuter des vérifications automatiques sur le code d'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 une conception avisée 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 Cloud Build.
Vous pouvez modifier les scripts du plan de base pour les entreprises afin de 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 Architecture Center fournit d'autres plans pouvant être implémentés en plus du plan de base de l'entreprise. Voici quelques exemples de ces plans :
- Déployer une plate-forme de développeur d'entreprise sur Google Cloud
- Déployer une architecture sécurisée sans serveur à l'aide de Cloud Run
- Créez et déployez des modèles d'IA générative et de machine learning dans une entreprise
- Importer des données depuis Google Cloud dans un entrepôt de données BigQuery sécurisé
Automatiser les versions sécurisées des applications
Cette recommandation concerne le domaine d'intérêt suivant : sécurité des applications.
Sans outils automatisés, il peut s'avérer 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 efficaces des produits. 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 aide à mieux détecter et corriger les bugs de sécurité de manière précoce, rapide et fiable. Par exemple, vous pouvez rechercher automatiquement les failles de sécurité lors de la création des artefacts, limiter le champ d'application des vérifications de sécurité et revenir à une version connue et sûre. Vous pouvez également définir des règles pour différents environnements (développement, test, production, etc.) afin que seuls les artefacts validés soient déployés.
Pour vous aider à automatiser les versions d'applications et à intégrer des contrôles de sécurité dans votre pipeline CI/CD, Google Cloud fournit plusieurs outils, dont Cloud Build, Cloud Deploy, Web Security Scanner et Autorisation binaire.
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), qui a été défini par Google. SLSA exige des contrôles de sécurité pour le code source, le processus de compilation et la provenance du code. Bon nombre de ces exigences peuvent être incluses dans un pipeline CI/CD automatisé. Pour comprendre comment Google applique ces pratiques en interne, consultez l'approche deGoogle Cloudface au changement.
Garantissez que les déploiements d'applications suivent les processus approuvés.
Cette recommandation concerne le domaine d'intérêt suivant : 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 établir 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é effectué. 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 d'intégration continue (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é
En utilisant l'autorisation binaire, vous pouvez vous assurer que seul le code de confiance s'exécute sur vos plates-formes cibles.
Rechercher les failles connues avant le déploiement de l'application
Cette recommandation concerne le domaine d'intérêt suivant : 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 conteneurs. 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 concerne le domaine d'intérêt suivant : 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 produits et les fonctionnalités Google Cloud compatibles avec le top 10 des techniques d'atténuation OWASP, consultez 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 scanner explore votre application, suit 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 vous 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.