Benchmark CIS d'Ubuntu

Ce document décrit le niveau de conformité de GKE sur VMware avec le benchmark CIS d'Ubuntu.

Accéder au benchmark

Le benchmark CIS d'Ubuntu est disponible sur le site Web du CIS :

Profil de configuration

Dans le document Benchmark CIS d'Ubuntu, vous pouvez en savoir plus sur les profils de configuration. Les images Ubuntu utilisées par GKE sur VMware sont renforcées pour correspondre au profil Niveau 2 : Serveur.

Évaluation sur GKE sur VMware

Nous utilisons les valeurs suivantes pour spécifier l'état des recommandations Ubuntu dans GKE sur VMware.

État Description
Réussite Respecte une recommandation du benchmark.
Échec Ne respecte pas une recommandation du benchmark.
Contrôle équivalent Ne respecte pas les termes exacts d'une recommandation d'analyse comparative, mais d'autres mécanismes dans GKE sur VMware fournissent des contrôles de sécurité équivalents.
Dépend de l'environnement GKE sur VMware ne configure pas d'éléments liés à une recommandation d'analyse comparative. Votre configuration détermine si votre environnement respecte les recommandations.

État de GKE sur VMware

Les images Ubuntu utilisées avec GKE sur VMware sont renforcées pour respecter le profil CIS de niveau 2 : serveur. Le tableau suivant explique pourquoi les composants GKE sur VMware n'ont pas respecté certaines recommandations.

GKE sur VMware 1.29

Bientôt disponible.

GKE sur VMware 1.28

Versions

Cette section fait référence aux versions suivantes:

Version de GKE sur VMware Version Ubuntu Version du benchmark CIS d'Ubuntu Niveau CIS
1.28 22.04 LTS v1.0.0 Serveur de niveau 2

État de GKE sur VMware

Les images Ubuntu utilisées avec GKE sur VMware sont renforcées pour respecter le profil CIS de niveau 2 : serveur. Le tableau suivant explique pourquoi les composants GKE sur VMware n'ont pas respecté certaines recommandations.

# Recommandation État Justification Composants concernés
1.1.2.1 Assurez-vous que /tmp se trouve sur une partition distincte Échec Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.3.1 Assurez-vous que /var est situé sur une partition distincte Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.4.1 Assurez-vous que /var/tmp est situé sur une partition distincte Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.5.1 Assurez-vous que /var/log se trouve sur une partition distincte Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.6.1 Assurez-vous que /var/log/audit est situé sur une partition distincte Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.7.1 Assurez-vous que /home est situé sur une partition distincte Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.4.1 Définir le mot de passe du chargeur de démarrage dans grub2 Dépend de l'environnement Aucun mot de passe racine n'est défini sur les images cloud Ubuntu. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.4.3 Assurez-vous que l'authentification est requise pour le mode mono-utilisateur Dépend de l'environnement Aucun mot de passe racine n'est défini sur les images cloud Ubuntu. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
2.3.6 Désinstaller le package rpcbind Échec rpcbind est installé sur l'image cloud canonique, mais n'est pas activé par défaut. La règle échoue car elle requiert que ce composant ne soit pas installé. Tous les nœuds du cluster Poste de travail administrateur, Seesaw
3.3.7 Activer le paramètre du noyau pour utiliser le filtrage par chemin inverse sur toutes les interfaces IPv4 Dépend de l'environnement Le routage asynchrone et l'origine du chemin inverse sont obligatoires pour assurer l'équilibrage de charge des clusters. Nœuds non-administrateurs maîtres Seesaw
3.5.2.6 Définir la configuration nftables pour le trafic de bouclage Impossible à corriger Le réseau Anthos a été affecté par cette règle. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
3.5.2.8 Assurez-vous que la stratégie de pare-feu de refus nftables par défaut Dépend de l'environnement Il est recommandé de déployer GKE sur VMware sur un réseau privé doté de protections de pare-feu appropriées. Les règles de pare-feu requises sont disponibles ici. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
4.2.3 Vérifier les autorisations des fichiers journaux Échec Ce test spécifique est trop restrictif et irréaliste, car de nombreux services peuvent nécessiter un groupe pour écrire des fichiers journaux. Cet élément peut être supprimé dans un benchmark ultérieur. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
5.2.18 Limiter l'accès SSH des utilisateurs Dépend de l'environnement Cette option n'est pas configurée par défaut. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
5.3.4 Assurez-vous que les utilisateurs se réauthentifient pour l'élévation des privilèges – sudo Dépend de l'environnement Cette option n'est pas configurée par défaut. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
5.5.1.2 Définir l'âge maximal du mot de passe Contrôle équivalent Les VM pour GKE sur VMware s'appuient sur une clé SSH pour la connexion des utilisateurs, au lieu d'utiliser un mot de passe Tous les nœuds de cluster
6.1.10 Assurez-vous que tous les fichiers appartiennent à un utilisateur Échec Les autorisations ont été laissées par défaut. Tous les nœuds de cluster

GKE sur VMware 1.16

Versions

Cette section fait référence aux versions suivantes:

Version de GKE sur VMware Version Ubuntu Version du benchmark CIS d'Ubuntu Niveau CIS
1.16 20.04 LTS v1.0.0 Serveur de niveau 2

État de GKE sur VMware

Les images Ubuntu utilisées avec GKE sur VMware sont renforcées pour respecter le profil CIS de niveau 2 : serveur. Le tableau suivant explique pourquoi les composants GKE sur VMware n'ont pas respecté certaines recommandations.

# Recommandation Évalué/Non évalué État Justification Composants concernés
1.1.2 Assurez-vous que /tmp est configuré Notés Échec Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.10 Assurez-vous qu'une partition distincte existe pour /var Notés Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.11 Assurez-vous qu'une partition distincte existe pour /var/tmp Notés Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.15 Assurez-vous qu'une partition distincte existe pour /var/log Notés Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.16 Assurez-vous qu'une partition distincte existe pour /var/log/audit. Notés Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.17 Assurez-vous qu'une partition distincte existe pour /home. Notés Impossible à corriger Canonical n'a pas l'intention de modifier les partitions des images cloud pour le moment. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.1.22 Assurez-vous que le bit persistant est défini sur tous les répertoires accessibles en écriture à l'échelle mondiale Notés Échec Cette fonctionnalité risque d'interférer avec les fonctionnalités d'Anthos et de ses services, et n'est pas activée par défaut. Tous les nœuds de cluster, poste de travail administrateur
1.5.1 Assurez-vous que les autorisations sur la configuration du bootloader sont configurées Notés Échec Les autorisations ont été laissées par défaut. Tous les nœuds de cluster, Seesaw
1.5.2 Assurez-vous que le mot de passe du bootloader est défini Notés Dépend de l'environnement Aucun mot de passe racine n'est défini sur les images cloud Ubuntu. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
1.5.3 Assurez-vous qu'une authentification est requise pour le mode mono-utilisateur Notés Dépend de l'environnement Aucun mot de passe racine n'est défini sur les images cloud Ubuntu. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
2.3.6 Vérifiez que RPC n'est pas installé Notés Échec rpcbind est installé sur l'image cloud canonique, mais n'est pas activé par défaut. La règle échoue car elle requiert que ce composant ne soit pas installé. Tous les nœuds de cluster
3.2.2 Assurez-vous que le transfert IP est désactivé Notés Échec Le transfert IP est obligatoire pour que Kubernetes (GKE) fonctionne et achemine le trafic correctement. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
3.2.7 Assurez-vous que le filtrage du chemin inverse est activé Notés Dépend de l'environnement Le routage asynchrone et l'origine inversée du chemin d'accès sont nécessaires pour fournir l'équilibrage de charge du cluster. Seesaw
3.5.3.2.1 Vérifiez que la stratégie de pare-feu de refus est définie par défaut Notés Dépend de l'environnement Il est recommandé de déployer GKE sur VMware sur un réseau privé doté de protections de pare-feu appropriées. Les règles de pare-feu requises sont disponibles ici. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
3.5.3.2.2 Assurez-vous que le trafic de rebouclage est configuré Notés Dépend de l'environnement L'utilisation de l'interface de rebouclage est limitée, selon la fonctionnalité d'équilibrage de charge utilisée. Seesaw
3.5.3.2.4 Assurez-vous qu'il existe des règles de pare-feu pour tous les ports ouverts Non évalué Dépend de l'environnement Il est recommandé de déployer GKE sur VMware sur un réseau privé doté de protections de pare-feu appropriées. Les règles de pare-feu requises sont disponibles ici. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
3.5.3.3.1 Vérifiez que la stratégie de pare-feu de refus du trafic IPv6 est définie par défaut Notés Dépend de l'environnement Il est recommandé de déployer GKE sur VMware sur un réseau privé doté de protections de pare-feu appropriées. Les règles de pare-feu requises sont disponibles ici. De plus, Anthos n'est pas nécessaire pour le protocole IPv6 selon la compatibilité de disponibilité générale. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
3.5.3.3.2 Assurez-vous que le trafic de bouclage IPv6 est configuré Notés Dépend de l'environnement Anthos n'est pas nécessaire pour le protocole IPv6 selon la compatibilité de disponibilité générale. Plan de contrôle d'administrateur, Seesaw
4.1.1.3 Assurez-vous que l'audit des processus commençant avant auditd est activé Notés Échec Un problème connu lié à notre processus de compilation signale un échec, mais il doit être considéré comme une fausse alerte. Ce problème sera résolu à l'avenir. Tous les nœuds de cluster, Seesaw
4.1.11 Vérifiez que les commandes privilégiées sont collectées. Notés Échec Certains fichiers binaires sont installés au moment de l'exécution, et une correction de l'environnement d'exécution est donc nécessaire. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
4.2.1.5 Vérifiez que rsyslog est configuré de manière à envoyer les journaux à un hôte de journal distant Notés Dépend de l'environnement GKE sur VMware collecte actuellement tous les journaux journald (à partir des services système). Ils peuvent afficher ces journaux sous "k8s_node" Tous les nœuds de cluster, poste de travail administrateur, Seesaw
4.2.3 Assurez-vous que les autorisations sur tous les fichiers journaux sont configurées Notés Échec Ce test spécifique est trop restrictif et irréaliste, car de nombreux services peuvent nécessiter un groupe pour écrire des fichiers journaux. Cet élément peut être supprimé dans un benchmark ultérieur. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
4.4 Assurez-vous que logrotate attribue les autorisations appropriées Notés Échec L'exécution de cette règle peut affecter la fonctionnalité de journalisation actuelle. Tous les nœuds de cluster, Seesaw
5.2.18 Vérifiez que l'accès SSH est limité Notés Dépend de l'environnement Cette option n'est pas configurée par défaut. Cette configuration peut être adaptée à vos besoins. Tous les nœuds de cluster, poste de travail administrateur, Seesaw
5.2.20 Assurez-vous que le protocole SSH AllowTcpForwarding est désactivé Notés Échec L'exécution de cette règle peut affecter la fonctionnalité de tunnel SSH actuelle. Tous les nœuds de cluster
5.4.1.1 Assurez-vous que le délai d'expiration du mot de passe est inférieur ou égal à 365 jours Notés Contrôle équivalent Les VM pour GKE sur VMware s'appuient sur une clé SSH pour la connexion des utilisateurs, au lieu d'utiliser un mot de passe Tous les nœuds de cluster
6.1.10 Assurez-vous qu'aucun fichier accessible en écriture n'existe Notés Échec Les autorisations ont été laissées par défaut. Tous les nœuds de cluster
6.1.11 Assurez-vous qu'il n'existe aucun fichier ou répertoire indépendant Notés Échec Les autorisations ont été laissées par défaut. Tous les nœuds de cluster
6.1.12 Assurez-vous qu'il n'existe aucun fichier ou répertoire non regroupé Notés Échec Les autorisations ont été laissées par défaut. Tous les nœuds de cluster
6.2.7 Assurez-vous que les fichiers dot ne sont pas accessibles en écriture pour le groupe ou en écriture à l'échelle mondiale Notés Échec Les paramètres par défaut d'Ubuntu autorisent les autorisations des groupes de fichiers .dot à cause de la compatibilité Poste de travail administrateur

Configurer la tâche Cron AIDE

AIDE est un outil de vérification de l'intégrité des fichiers qui garantit la conformité avec le benchmark de serveur CIS L1 de 1.4 Filesystem Integrity Checking. Dans GKE sur VMware, le processus AIDE a entraîné des problèmes d'utilisation élevée des ressources.

Le processus AIDE sur les nœuds est désactivé par défaut pour éviter les problèmes de ressources. Cela aura une incidence sur la conformité avec le benchmark de serveur CIS L1 1.4.2 : Ensure filesystem integrity is regularly checked..

Si vous souhaitez activer l'exécution de la tâche Cron AIDE, procédez comme suit pour réactiver AIDE:

  1. Créer un DaemonSet.

    Voici un fichier manifeste de DaemonSet.

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
    name: enable-aide-pool1
    spec:
    selector:
      matchLabels:
        app: enable-aide-pool1
    template:
      metadata:
        labels:
          app: enable-aide-pool1
      spec:
        hostIPC: true
        hostPID: true
        nodeSelector:
          cloud.google.com/gke-nodepool: pool-1
        containers:
        - name: update-audit-rule
          image: ubuntu
          command: ["chroot", "/host", "bash", "-c"]
          args:
          - |
            set -x
            while true; do
              # change daily cronjob schedule
              minute=30;hour=5
              sed -E "s/([0-9]+ [0-9]+)(.*run-parts --report \/etc\/cron.daily.*)/$minute $hour\2/g" -i /etc/crontab
    
              # enable aide
              chmod 755 /etc/cron.daily/aide
    
              sleep 3600
            done
          volumeMounts:
          - name: host
            mountPath: /host
          securityContext:
            privileged: true
        volumes:
        - name: host
          hostPath:
            path: /
    

    Dans le fichier manifeste ci-dessus:

    • La job Cron AIDE ne s'exécutera que sur le pool de nœuds pool-1, comme spécifié par le sélecteur de nœuds cloud.google.com/gke-nodepool: pool-1. Vous pouvez configurer le processus AIDE pour qu'il s'exécute sur autant de pools de nœuds que vous le souhaitez en spécifiant les pools dans le champ nodeSelector. Pour exécuter la même planification de job Cron sur différents pools de nœuds, supprimez le champ nodeSelector. Toutefois, pour éviter l'encombrement des ressources hôtes, nous vous recommandons de suivre des programmations distinctes.

    • La job Cron est planifiée pour s'exécuter tous les jours à 5h30, comme spécifié par la configuration minute=30;hour=5. Vous pouvez configurer différentes planifications pour la job Cron AIDE selon vos besoins.

  2. Copiez le fichier manifeste dans un fichier nommé enable-aide.yaml et créez le DaemonSet :

    kubectl apply --kubeconfig USER_CLUSTER_KUBECONFIG -f enable-aide.yaml
    

    USER_CLUSTER_KUBECONFIG représente le chemin d'accès au fichier kubeconfig de votre cluster d'utilisateur.