Este documento descreve o nível de conformidade que o Google Distributed Cloud tem com o comparativo de mercado CIS do Ubuntu.
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 Google Distributed Cloud são reforçadas para atender aos Nível 2: perfil do servidor.
Avaliação no Google Distributed Cloud
Usamos os seguintes valores para especificar o status das recomendações do Ubuntu no Google Distributed Cloud.
Status | Descrição |
---|---|
Aprovado | 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 estiver em conformidade com os termos exatos de uma recomendação de comparativo de mercado; mas outros mecanismos no Google Distributed Cloud oferecem controles de segurança. |
Depende do ambiente | O Google Distributed Cloud 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 Google Distributed Cloud
As imagens do Ubuntu usadas com o Google Distributed Cloud são reforçadas para atender à CIS Nível 2: perfil do servidor. A tabela a seguir fornece justificativas por que os componentes do Google Distributed Cloud não receberam determinadas recomendações.
Google Distributed Cloud 1.29
Em breve.Google Distributed Cloud 1.28
Versões
Esta seção se refere a estas versões:
Versão do Google Distributed Cloud | Versão do Ubuntu | Versão do comparativo de mercado do Ubuntu da CIS | Nível da CIS |
---|---|---|---|
1.28 | 22.04 LTS | v1.0.0 | Servidor de nível 2 |
Status do Google Distributed Cloud
As imagens do Ubuntu usadas com o Google Distributed Cloud são reforçadas para atender à CIS Nível 2: perfil do servidor. A tabela a seguir fornece justificativas por que os componentes do Google Distributed Cloud não receberam determinadas recomendações.
# | Recomendação | Status | Motivo | Componentes afetados |
---|---|---|---|---|
1.1.2.1 | Verifique se /tmp está localizado em uma partição separada | 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.3.1 | Verifique se /var está localizado em uma partição separada | 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.4.1 | Verifique se /var/tmp está localizado em uma partição separada | 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.5.1 | Verifique se /var/log está localizado em uma partição separada | 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.6.1 | Verifique se /var/log/audit está localizado em uma partição separada | 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.7.1 | Verifique se /home está localizado em uma partição separada | 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.4.1 | Definir a senha do carregador de inicialização no grub2 | 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.4.3 | Certifique-se de que o modo de usuário único seja autenticado | 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 | Desinstalar pacote rpcbind | 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, estação de trabalho do administrador, Seesaw |
3.3.7 | Ativar o parâmetro do kernel para usar a filtragem de caminho reverso em todas as interfaces IPv4 | Depende do ambiente | O roteamento assíncrono e a origem do caminho reverso são um requisito para o balanceamento de carga do cluster. | Nós mestres que não são administradores Gangorra |
3.5.2.6 | Definir configuração de nftables para tráfego de loopback | Não corrigir | A rede do Anthos foi afetada por essa regra. | Todos os nós de cluster, a estação de trabalho do administrador e o Seesaw |
3.5.2.8 | Verifique se a política de firewall de negação padrão de nftables | Depende do ambiente | Recomendamos implantar o Google Distributed Cloud em uma rede privada com proteções de firewall adequadas. 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 |
4.2.3 | Verificar as permissões dos arquivos de registro | 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 |
5.2.18 | Limitar usuários Acesso SSH | Depende do ambiente | Isso não é configurado por padrão. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
5.3.4 | Garanta que os usuários façam a autenticação novamente para escalonamento de privilégios – sudo | Depende do ambiente | Isso não é configurado por padrão. | Todos os nós do cluster, estação de trabalho do administrador, Seesaw |
5.5.1.2 | Definir idade máxima da senha | Controle equivalente | As VMs do Google Distributed Cloud dependem da chave SSH para o login do usuário em vez de usar a senha | Todos os nós do cluster |
6.1.10 | Verifique se todos os arquivos pertencem a um usuário | Reprovado | As permissões foram mantidas como padrão. | Todos os nós do cluster |
Google Distributed Cloud 1.16
Versões
Esta seção se refere a estas versões:
Versão do Google Distributed Cloud | Versão do Ubuntu | Versão do comparativo de mercado do Ubuntu da CIS | Nível da CIS |
---|---|---|---|
1.16 | 20.04 LTS | v1.0.0 | Servidor de nível 2 |
Status do Google Distributed Cloud
As imagens do Ubuntu usadas com o Google Distributed Cloud são reforçadas para atender à CIS Nível 2: perfil do servidor. A tabela a seguir fornece justificativas por que os componentes do Google Distributed Cloud não receberam determinadas recomendações.
# | Recomendação | Pontuou/Não pontuou | Status | Motivo | 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 | 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 | Recomendamos implantar o Google Distributed Cloud em uma rede privada com proteções de firewall adequadas. 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 | Recomendamos implantar o Google Distributed Cloud em uma rede privada com proteções de firewall adequadas. 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 | Recomendamos implantar o Google Distributed Cloud em uma rede privada com proteções de firewall adequadas. 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 Google Distributed Cloud atualmente coleta todos os registros com journald (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 | 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 | 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 Google Distributed Cloud dependem da chave SSH para o login do usuário em vez de usar a 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 Google Distributed Cloud,
o processo de AIDE causa problemas de uso elevado de recursos.
O processo AIDE em nós é desativado por padrão para evitar que recursos
problemas. 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:
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 nodeSelectorcloud.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 camponodeSelector
. Para executar a mesma programação de cron jobs em diferentes pools de nós, remova o camponodeSelector
. 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.
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.