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 ao perfil de servidor de nível 2.
Avaliação no Google Distributed Cloud
Usamos os valores a seguir para especificar o status das recomendações do Ubuntu no Google Distributed Cloud.
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 Google Distributed Cloud oferecem controles de segurança equivalentes. |
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 ao perfil de servidor nível 2 do CIS. Na tabela a seguir, há justificativas para os motivos pelos quais os componentes do Google Distributed Cloud não foram aprovados em 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 ao perfil de servidor nível 2 do CIS. Na tabela a seguir, há justificativas para os motivos pelos quais os componentes do Google Distributed Cloud não foram aprovados em determinadas recomendações.
# | Recomendação | Status | Justificativa | Componentes afetados |
---|---|---|---|---|
1.1.2.1 | Verifique se /tmp está localizado em 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 | Verifique se a autenticação é obrigatória para o modo de usuário único | 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 o 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 de caminho reverso são um requisito para fornecer balanceamento de carga de cluster. | Nodes mestres não administradores são Seesaw |
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 o acesso SSH dos usuários | 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 ao perfil de servidor nível 2 do CIS. Na tabela a seguir, há justificativas para os motivos pelos quais os componentes do Google Distributed Cloud não foram aprovados em 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 | 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 AIDE causa problemas de uso elevado de recursos.
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:
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 cron job do AIDE será executado somente no pool de nós
pool-1
, conforme especificado pelo nodeSelectorcloud.google.com/gke-nodepool: pool-1
. Configure o processo AIDE para ser executado em quantos pools de nós quiser. Basta especificar os pools no camponodeSelector
. Para executar a mesma programação do cron job em diferentes pools de nós, remova o camponodeSelector
. No entanto, para evitar congestionamentos de recursos do 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.