Cette page explique comment analyser automatiquement les systèmes d'exploitation (OS) et les packages de langages dans vos charges de travail en cours d'exécution pour détecter les failles connues et obtenir des stratégies d'atténuation exploitables. L'analyse des failles des charges de travail fait partie du tableau de bord de stratégie de sécurité, un ensemble de fonctionnalités qui fournissent des informations et des recommandations pour améliorer la sécurité des clusters Google Kubernetes Engine (GKE) et des charges de travail.
Pour en savoir plus, consultez la page À propos de l'analyse des failles des charges de travail.
Tarification
Pour en savoir plus sur la tarification, consultez la page Tarifs du tableau de bord de stratégie de sécurité GKE.
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
- Activez l'API Google Kubernetes Engine. Activer l'API Google Kubernetes Engine
- Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande
gcloud components update
.
Activez l'API Container Security.
Pour utiliser Advanced Vulnerability Insights, activez l'API Container Analysis.
Conditions requises
-
Pour obtenir les autorisations nécessaires pour utiliser l'analyse des failles des charges de travail, demandez à votre administrateur de vous accorder le rôle IAM de lecteur de stratégie de sécurité (
roles/containersecurity.viewer
) sur votre projet Google Cloud. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.Ce rôle prédéfini contient les autorisations requises pour utiliser l'analyse des failles des charges de travail. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour utiliser l'analyse des failles des charges de travail :
-
resourcemanager.projects.get
-
resourcemanager.projects.list
-
containersecurity.locations.list
-
containersecurity.locations.get
-
containersecurity.clusterSummaries.list
-
containersecurity.findings.list
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
-
- Advanced Vulnerability Insights nécessite GKE version 1.27 ou ultérieure.
Niveaux d'analyse des failles des charges de travail
Vous activez l'analyse des failles par niveaux, qui ajoute des fonctionnalités d'analyse comme suit. Si vous gérez les parcs de clusters à l'aide de l'édition Enterprise Google Kubernetes Engine (GKE), vous pouvez également configurer les paramètres d'analyse des failles au niveau du parc qui s'appliquent à tous les clusters membres. Pour obtenir des instructions, consultez la page Configurer les fonctionnalités du tableau de bord de stratégie de sécurité GKE au niveau du parc.
Niveau | Fonctionnalités activées | Exigence de version GKE |
---|---|---|
Standardstandard |
Analyse des failles de Container OS |
|
Advanced Vulnerability Insightsenterprise |
|
|
Pour en savoir plus sur chaque fonctionnalité, consultez la page À propos de l'analyse des failles des charges de travail.
Activer l'analyse des failles de Container OS
L'analyse des failles de Container OS est activée par défaut dans les nouveaux clusters Autopilot exécutant les versions 1.27 et ultérieures. Cette section explique comment activer cette fonctionnalité dans les nouveaux clusters standards et dans les clusters Autopilot exécutant des versions antérieures à 1.27.
Activer l'analyse de Container OS sur un nouveau cluster
gcloud
Créez un cluster GKE à l'aide de la CLI gcloud :
gcloud container clusters create CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=standard
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre nouveau clusterLOCATION
: emplacement Compute Engine de votre cluster.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Accéder à Google Kubernetes Engine- Cliquez sur Créer.
- Dans la section GKE Standard, cliquez sur Configurer.
- Dans le volet de navigation, cliquez sur Sécurité.
- Dans la section Sécurité, cochez la case Analyse des failles.
- Sélectionnez l'option Basique.
- Configurez les autres options de votre cluster, puis cliquez sur Créer lorsque vous êtes prêt.
Activer l'analyse de Container OS sur un cluster existant
gcloud
Mettez à jour le cluster :
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=standard
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du clusterLOCATION
: emplacement Compute Engine du cluster
Console
Accédez à la page Stratégie de sécurité dans la console Google Cloud.
Accédez à la stratégie de sécurité- Cliquez sur l'onglet Paramètres.
- Dans la section Clusters activés pour l'analyse des failles, cliquez sur Sélectionner des clusters.
- Cochez les cases des clusters que vous souhaitez ajouter.
- Dans le menu déroulant Sélectionner une action, sélectionnez Définir sur "Basique".
- Cliquez sur Appliquer.
Activer les insights avancés sur les failles
Advanced Vulnerability Insights permet d'analyser en continu vos applications en cours d'exécution afin de détecter les types de failles suivants:
- Failles de Container OS
- Failles des packages de langages
Lorsque vous activez Advanced Vulnerability Insights, la fonctionnalité d'analyse des failles de Container OS est automatiquement activée et ne peut pas être désactivée séparément.
Conditions requises
Assurez-vous d'avoir activé l'API Container Analysis dans votre projet.
Activer l'API Container Analysis
Activer Advanced Vulnerability Insights sur un nouveau cluster
gcloud
Créez un cluster GKE à l'aide de la CLI gcloud :
gcloud container clusters create-auto CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=enterprise
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre nouveau clusterLOCATION
: emplacement Compute Engine de votre cluster.
Console
Accédez à la page Google Kubernetes Engine dans Google Cloud Console.
Accéder à Google Kubernetes Engine- Cliquez sur Créer.
- Dans la section GKE Autopilot, cliquez sur Configurer.
- Dans le volet de navigation, cliquez sur Paramètres avancés. Si vous créez un cluster standard, cliquez plutôt sur Sécurité.
- Dans la section Sécurité, cochez la case Analyse des failles.
- Sélectionnez l'option Avancé.
- Configurez les autres options de votre cluster, puis cliquez sur Créer lorsque vous êtes prêt.
Activer les insights avancés sur les failles sur un cluster existant
gcloud
Mettez à jour le cluster :
gcloud container clusters update CLUSTER_NAME \ --location=LOCATION \ --workload-vulnerability-scanning=enterprise
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du clusterLOCATION
: emplacement Compute Engine du cluster
Console
Accédez à la page Stratégie de sécurité dans la console Google Cloud.
Accédez à la stratégie de sécurité- Cliquez sur l'onglet Paramètres.
- Dans la section Clusters activés pour l'analyse des failles, cliquez sur Sélectionner des clusters.
- Cochez les cases des clusters que vous souhaitez ajouter.
- Dans le menu déroulant Sélectionner une action, sélectionnez Définir sur Avancé.
- Cliquez sur Appliquer.
Déployer une charge de travail de test
Les exemples de fichiers manifestes suivants présentent des failles connues à des fins de démonstration. En pratique, vous ne devriez probablement pas exécuter une application si vous savez qu'elle est vulnérable.
Enregistrez le manifeste suivant sous le nom
os-vuln-sample.yaml
:apiVersion: apps/v1 kind: Deployment metadata: name: frontend spec: replicas: 1 selector: matchLabels: app: guestbook tier: frontend template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend@sha256:dc8de8e0d569d2f828b187528c9317bd6b605c273ac5a282aebe471f630420fc env: - name: GET_HOSTS_FROM value: "dns" resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 80
Examinez le fichier manifeste suivant, qui contient une faille Maven connue :
Si vous le souhaitez, obtenez des identifiants pour votre cluster :
gcloud container clusters get-credentials CLUSTER_NAME \ --region=COMPUTE_REGION
Déployez les applications sur votre cluster :
kubectl apply -f os-vuln-sample.yaml kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/main/security/language-vulns/maven/deployment.yaml
Pour tester d'autres failles, essayez de déployer des versions plus anciennes d'images telles que nginx
dans des environnements de préproduction.
Afficher les résultats et agir en conséquence
L'analyse initiale prend au moins 15 minutes pour renvoyer les résultats, en fonction du nombre de charges de travail analysées. GKE affiche les résultats dans le tableau de bord de stratégie de sécurité et ajoute automatiquement des entrées à Logging.
Afficher les résultats
Pour afficher une vue d'ensemble des problèmes détectés sur les clusters et les charges de travail de votre projet, procédez comme suit :
Accédez à la page Stratégie de sécurité dans la console Google Cloud.
Cliquez sur l'onglet Problèmes.
Dans le volet Filtrer les problèmes de la section Type de problème, cochez la case Faille.
Afficher les détails et les recommandations
Pour afficher des informations détaillées sur une faille spécifique, cliquez sur la ligne contenant ce problème.
Le volet Problème de faille affiche les informations suivantes :
- Description : une description du problème, y compris un numéro CVE (le cas échéant) et une description détaillée de la faille et de son impact potentiel.
- Action recommandée : actions que vous pouvez entreprendre pour corriger les failles, telles que les versions de package corrigées et où appliquer le correctif.
Afficher les journaux pour les problèmes détectés
GKE ajoute des entrées à Logging pour chaque problème détecté.
Accédez à l'explorateur de journaux dans la console Google Cloud.
Dans le champ Requête, saisissez la requête suivante :
resource.type="k8s_cluster" jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding" jsonPayload.type="FINDING_TYPE_VULNERABILITY"
Cliquez sur Exécuter la requête.
Pour recevoir des notifications lorsque GKE ajoute de nouvelles découvertes à Logging, configurez des alertes basées sur les journaux pour cette requête. Pour en savoir plus, consultez la page Gérer les alertes basées sur les journaux.
Effectuer un nettoyage
Supprimez l'exemple de charge de travail que vous avez déployé :
kubectl delete deployment frontend
Vous pouvez également supprimer le cluster que vous avez utilisé :
gcloud container clusters delete CLUSTER_NAME \ --region=COMPUTE_REGION
Désactiver l'analyse des failles des charges de travail
Vous pouvez désactiver l'analyse des failles des charges de travail à l'aide de gcloud CLI ou de la console Google Cloud.
gcloud
Exécutez la commande ci-dessous.
gcloud container clusters update CLUSTER_NAME \ --region=LOCATION \ --workload-vulnerability-scanning=disabled
Remplacez les éléments suivants :
CLUSTER_NAME
: nom du clusterLOCATION
: région ou zone Compute Engine du cluster.
Console
Accédez à la page Stratégie de sécurité dans la console Google Cloud.
Accédez à la stratégie de sécurité- Cliquez sur l'onglet Paramètres.
- Dans la section Clusters activés pour l'analyse des failles, cliquez sur Sélectionner des clusters.
- Cochez les cases correspondant aux clusters que vous souhaitez supprimer.
- Dans le menu déroulant Sélectionner une action, sélectionnez D2finir sur désactivé.
- Cliquez sur Appliquer.
Étapes suivantes
- Découvrez le tableau de bord de stratégie de sécurité.
- Découvrez comment analyser vos charges de travail pour détecter des problèmes de configuration.