Comparativo de mercado do Ubuntu da CIS

Neste documento, descrevemos o nível de conformidade que o GKE no VMware tem com o CIS Benchmark do Ubuntu.

Versões

Este documento se refere a estas versões:

Versão Anthos Versão do Ubuntu Versão do comparativo de mercado do Ubuntu da CIS Nível da CIS
1.14 20.04 LTS v1.0.0 Servidor de nível 2

Acessar o comparativo de mercado

O comparativo de mercado do Ubuntu da CIS está disponível no site da CIS:

Perfil de configuração

No documento do comparativo de mercado do Ubuntu da CIS, é possível ler sobre os perfis de configuração. As imagens do Ubuntu usadas pelo GKE no VMware são reforçadas para atender ao Nível 2: perfil do servidor.

Avaliação no GKE no VMware

Usamos os seguintes valores para especificar o status das recomendações do Ubuntu no GKE no VMware.

Status Descrição
Pass Está em conformidade com uma recomendação do comparativo de mercado.
Reprovado Não está em conformidade com uma recomendação do comparativo de mercado.
Controle equivalente Não está em conformidade com os termos exatos de uma recomendação de comparativo de mercado, mas outros mecanismos no GKE no VMware fornecem controles de segurança equivalentes.
Depende do ambiente O GKE no VMware não configura itens relacionados a uma recomendação de comparativo de mercado. A configuração determina se o ambiente está em conformidade com a recomendação.

Status do GKE no VMware

As imagens do Ubuntu usadas com o GKE no VMware são reforçadas para atender ao nível 2 do perfil do servidor do CIS. A tabela a seguir fornece justificativas para o motivo dos componentes do GKE no VMware não aprovarem determinadas recomendações.

# Recomendação Pontuou/Não pontuou Status Justificativa Componentes afetados
1.1.2 Verifique se /tmp está configurado. Pontuou Reprovado A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
1.1.10 Verifique se há uma partição separada para /var Pontuou Não corrigir A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
1.1.11 Verifique se há uma partição separada para /var/tmp Pontuou Não corrigir A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
1.1.15 Verifique se há uma partição separada para /var/log Pontuou Não corrigir A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
1.1.16 Verifique se há uma partição separada para /var/log/audit Pontuou Não corrigir A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
1.1.17 Verifique se existe uma partição separada para /home Pontuou Não corrigir A Canonical não tem o plano de modificar as partições de imagem em nuvem no momento. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
1.1.22 Certifique-se de que o bit fixo esteja definido em todos os diretórios graváveis globalmente Pontuou Reprovado Isso pode interferir na funcionalidade do Anthos e dos serviços dele e não é ativado por padrão. Todos os nós do cluster, estação de trabalho do administrador
1.5.1 Verifique se as permissões na configuração do carregador de inicialização estão definidas Pontuou Reprovado As permissões foram mantidas como padrão. Todos os nós de cluster, Seesaw
1.5.2 Verifique se a senha do carregador de inicialização está definida Pontuou Depende do ambiente Nenhuma senha raiz é definida nas imagens da nuvem do Ubuntu. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
1.5.3 Certifique-se de que o modo de usuário único seja autenticado Pontuou Depende do ambiente Nenhuma senha raiz é definida nas imagens da nuvem do Ubuntu. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
2.3.6 Verificar se a RPC não está instalada Pontuou Com falha O rpcbind é instalado na imagem da nuvem canônica, embora não esteja ativado por padrão. A regra está falhando porque exige que ela não seja instalada. Todos os nós do cluster
3.2.2 Verifique se o encaminhamento de IP está desativado Pontuou Reprovado O encaminhamento de IP é necessário para que o Kubernetes (GKE) funcione e encaminhe o tráfego corretamente Todos os nós do cluster, estação de trabalho do administrador, Seesaw
3.2.7 Verifique se a filtragem de caminho reverso está ativada Pontuou Depende do ambiente O roteamento assíncrono e a origem do caminho reverso são um requisito para o balanceamento de carga do cluster. Seesaw
3.5.3.2.1 Certifique-se de que a política de firewall de negação padrão Pontuou Depende do ambiente É recomendável que o GKE no VMware seja implantado em uma rede particular com as proteções de firewall apropriadas. As regras de firewall necessárias podem ser encontradas aqui. Todos os nós de cluster, a estação de trabalho do administrador e o Seesaw
3.5.3.2.2 Verifique se o tráfego de loopback está configurado Pontuou Depende do ambiente O uso da interface de loopback é limitado devido à funcionalidade de balanceamento de carga usada. Seesaw
3.5.3.2.4 Verifique se existem regras de firewall para todas as portas abertas Não pontuou Depende do ambiente É recomendável que o GKE no VMware seja implantado em uma rede particular com as proteções de firewall apropriadas. As regras de firewall necessárias podem ser encontradas aqui. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
3.5.3.3.1 Certifique-se de que a política de firewall de negação padrão IPv6 Pontuou Depende do ambiente É recomendável que o GKE no VMware seja implantado em uma rede particular com as proteções de firewall apropriadas. As regras de firewall necessárias podem ser encontradas aqui. Além disso, o Anthos não tem requisitos para IPv6 compatível com GA. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
3.5.3.3.2 Verifique se o tráfego de loopback do IPv6 está configurado Pontuou Depende do ambiente O Anthos não tem requisitos para IPv6 de acordo com o suporte do GA. Plano de controle de administrador, Seesaw
4.1.1.3 Verificar se a auditoria de processos iniciados antes da auditoria está ativada Pontuou Reprovado Um problema conhecido com nosso processo de compilação sinaliza isso como "Falha", mas isso deve ser considerado um alarme falso. Isso será corrigido no futuro. Todos os nós de cluster, Seesaw
4.1.11 Garantir que o uso de comandos com privilégios seja coletado Pontuou Reprovado Alguns binários são instalados no ambiente de execução. Portanto, a correção é necessária. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
4.2.1.5 Verificar se o rsyslog está configurado para enviar registros a um host de registro remoto Pontuou Depende do ambiente O GKE no VMWare atualmente coleta todos os registros gravados (dos serviços do sistema). Eles podem ser vistos em "k8s_node". Todos os nós do cluster, estação de trabalho do administrador, Seesaw
4.2.3 Verifique se as permissões em todos os arquivos de registro estão configuradas Pontuou Reprovado Esse teste específico é muito restritivo e pouco realista, porque muitos serviços podem exigir que um grupo grave arquivos de registros. Este item pode ser removido em um comparativo de mercado futuro. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
4.4 Verifique se o logrotate atribui as permissões apropriadas Pontuou Com falha O cumprimento dessa regra pode afetar a funcionalidade de geração de registros atual Todos os nós de cluster, Seesaw
5.2.18 Verifique se o acesso SSH está limitado Pontuou Depende do ambiente Isso não é configurado por padrão. Ele pode ser configurado para atender aos seus requisitos específicos. Todos os nós do cluster, estação de trabalho do administrador, Seesaw
5.2.20 Verifique se o SSH AllowTcpForwarding está desativado Pontuou Com falha O cumprimento dessa regra pode afetar a funcionalidade atual do túnel SSH Todos os nós do cluster
5.4.1.1 Garanta que a validade da senha seja de 365 dias ou menos Pontuou Controle equivalente As VMs do GKE no VMware dependem da chave SSH para login do usuário, em vez de senha Todos os nós do cluster
6.1.10 Verifique se não há arquivos graváveis mundiais Pontuou Reprovado As permissões foram mantidas como padrão. Todos os nós do cluster
6.1.11 Verifique se não há arquivos ou diretórios não proprietários Pontuou Reprovado As permissões foram mantidas como padrão. Todos os nós do cluster
6.1.12 Verifique se não há arquivos ou diretórios desagrupados Pontuou Reprovado As permissões foram mantidas como padrão. Todos os nós do cluster
6.2.7 Verifique se os arquivos dos pontos dos usuários não são graváveis ou agrupados Pontuou Reprovado As configurações padrão do Ubuntu aceitam permissões do grupo de arquivos de ponto devido à compatibilidade Estação de trabalho do administrador

Configurar cron job do AIDE

O AIDE é uma ferramenta de verificação de integridade de arquivos que garante a conformidade com a referência de servidor CIS L1 1.4 Filesystem Integrity Checking. No GKE no VMware, o processo do AIDE está causando problemas de alto uso de recursos.

A partir da versão 1.12, o processo AIDE nos nós é desativado por padrão para evitar problemas de recursos. Isso afetará a conformidade com o comparativo de mercado do servidor CIS L1 1.4.2: Ensure filesystem integrity is regularly checked.

Se você quiser ativar a execução do cron job do AIDE, conclua as etapas a seguir para reativá-lo:

  1. Crie um DaemonSet.

    Aqui está um manifesto para um BackendConfig.

    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: /
    

    No manifesto acima:

    • O job cron do AIDE só será executado no pool de nós pool-1 conforme especificado pelo nodeSelector cloud.google.com/gke-nodepool: pool-1. É possível configurar o processo do AIDE para ser executado em quantos pools de nós você quiser especificando os pools no campo nodeSelector. Para executar a mesma programação de cron jobs em diferentes pools de nós, remova o campo nodeSelector. No entanto, para evitar congestionamentos de recursos de host, recomendamos manter programações separadas.

    • O cron job está programado para ser executado diariamente às 5h30, conforme especificado pela configuração minute=30;hour=5. É possível configurar programações diferentes para o cron job do AIDE, conforme necessário.

  2. Copie o manifesto para um arquivo chamado enable-aide.yaml e crie o DaemonSet:

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

em que USER_CLUSTER_KUBECONFIG é o caminho do arquivo kubeconfig do cluster de usuário.