Partilhar via


Alinhamento de imagem do Ubuntu do Serviço Kubernetes do Azure (AKS) com o benchmark do Center for Internet Security (CIS)

Como um serviço seguro, o Serviço Kubernetes do Azure (AKS) está em conformidade com os padrões SOC, ISO, PCI DSS e HIPAA. Este artigo aborda a configuração do sistema operacional de segurança aplicada à imagem do Ubuntu usada pelo AKS. Essa configuração de segurança é baseada na linha de base de segurança do Linux do Azure, que se alinha com o benchmark CIS. Para obter mais informações sobre segurança AKS, consulte Conceitos de segurança para aplicativos e clusters no Serviço Kubernetes do Azure (AKS). Para obter mais informações sobre a segurança do AKS, consulte Conceitos de segurança para aplicativos e clusters no Serviço Kubernetes do Azure (AKS). Para obter mais informações sobre o benchmark CIS, consulte Center for Internet Security (CIS) Benchmarks. Para obter mais informações sobre as linhas de base de segurança do Azure para Linux, consulte Linha de base de segurança do Linux.

Ubuntu LTS 18,04

Os clusters AKS são implantados em máquinas virtuais host, que executam um sistema operacional com configurações seguras integradas. Este sistema operacional é usado para contêineres executados no AKS. Este sistema operacional host é baseado em uma imagem do Ubuntu 18.04.LTS com configurações de segurança aplicadas.

Como parte do sistema operacional otimizado para segurança:

  • O AKS fornece um sistema operacional host otimizado para segurança por padrão, mas nenhuma opção para selecionar um sistema operacional alternativo.
  • O sistema operacional host otimizado para segurança é construído e mantido especificamente para o AKS e não é suportado fora da plataforma AKS.
  • Alguns drivers de módulo do kernel desnecessários foram desativados no sistema operacional para reduzir a área da superfície de ataque.

Nota

Sem relação com os benchmarks do CIS, o Azure aplica patches diários, incluindo patches de segurança, a hosts de máquinas virtuais AKS.

O objetivo da configuração segura incorporada ao sistema operacional host é reduzir a área de superfície de ataque e otimizar a implantação de contêineres de forma segura.

A seguir estão os resultados do CIS Ubuntu 18.04 LTS Benchmark v2.1.0 recomendações.

As recomendações podem ter uma das seguintes razões:

  • Potencial impacto da operação - A recomendação não foi aplicada porque teria um efeito negativo no serviço.
  • Coberto em outro lugar - A recomendação é coberta por outro controle na computação em nuvem do Azure.

As regras do SIA aplicadas são as seguintes:

Número do parágrafo do SIA Descrição da recomendação Status Razão
1 Configuração Inicial
1.1 Configuração do sistema de arquivos
1.1.1 Desativar sistemas de arquivos não utilizados
1.1.1.1 Verifique se a montagem de sistemas de arquivos cramfs está desativada Aprovação
1.1.1.2 Verifique se a montagem dos sistemas de arquivos freevxfs está desativada Aprovação
1.1.1.3 Verifique se a montagem de sistemas de arquivos jffs2 está desativada Aprovação
1.1.1.4 Verifique se a montagem de sistemas de arquivos hfs está desativada Aprovação
1.1.1.5 Verifique se a montagem de sistemas de arquivos hfsplus está desativada Aprovação
1.1.1.6 Verifique se a montagem de sistemas de arquivos udf está desativada Reprovado Potencial impacto operacional
1.1.2 Verifique se /tmp está configurado Reprovado
1.1.3 Verifique se a opção nodev está definida na partição /tmp Reprovado
1.1.4 Certifique-se de que a opção nosuid esteja definida na partição /tmp Aprovação
1.1.5 Certifique-se de que a opção noexec esteja definida na partição /tmp Aprovação
1.1.6 Verifique se /dev/shm está configurado Aprovação
1.1.7 Garantir que a opção nodev esteja definida na partição /dev/shm Aprovação
1.1.8 Certifique-se de que a opção nosuid esteja definida na partição /dev/shm Aprovação
1.1.9 Certifique-se de que a opção noexec esteja definida na partição /dev/shm Reprovado Potencial impacto operacional
1.1.12 Verifique se a partição /var/tmp inclui a opção nodev Aprovação
1.1.13 Verifique se a partição /var/tmp inclui a opção nosuid Aprovação
1.1.14 Verifique se a partição /var/tmp inclui a opção noexec Aprovação
1.1.18 Certifique-se de que a partição /home inclui a opção nodev Aprovação
1.1.19 Garantir a opção nodev definida em partições de mídia removíveis Não Aplicável
1.1.20 Garantir a opção nosuid definida em partições de mídia removíveis Não Aplicável
1.1.21 Verifique a opção noexec definida em partições de mídia removíveis Não Aplicável
1.1.22 Certifique-se de que o bit adesivo está definido em todos os diretórios graváveis do mundo Reprovado Potencial impacto da operação
1.1.23 Desativar a montagem automática Aprovação
1.1.24 Desativar armazenamento USB Aprovação
1.2 Configurar atualizações de software
1.2.1 Verifique se os repositórios do gerenciador de pacotes estão configurados Aprovação Coberto em outro lugar
1.2.2 Verifique se as chaves GPG estão configuradas Não Aplicável
1.3 Verificação da integridade do sistema de arquivos
1.3.1 Garantir que o AIDE esteja instalado Reprovado Coberto em outro lugar
1.3.2 Garantir que a integridade do sistema de arquivos seja verificada regularmente Reprovado Coberto em outro lugar
1.4 Configurações de Inicialização Segura
1.4.1 Verifique se as permissões na configuração do carregador de inicialização não foram substituídas Reprovado
1.4.2 Verifique se a senha do carregador de inicialização está definida Reprovado Não Aplicável
1.4.3 Verifique se as permissões na configuração do carregador de inicialização estão configuradas Reprovado
1.4.4 Garantir a autenticação necessária para o modo de usuário único Reprovado Não Aplicável
1.5 Endurecimento de processo adicional
1.5.1 Verifique se o suporte a XD/NX está ativado Não Aplicável
1.5.2 Verifique se a ASLR (randomização do layout do espaço de endereço) está habilitada Aprovação
1.5.3 Verifique se o pré-link está desativado Aprovação
1.5.4 Garantir que os dumps principais sejam restritos Aprovação
1.6 Controlo de Acessos Obrigatório
1.6.1 Configurar o AppArmor
1.6.1.1 Verifique se o AppArmor está instalado Aprovação
1.6.1.2 Verifique se o AppArmor está ativado na configuração do carregador de inicialização Reprovado Potencial impacto da operação
1.6.1.3 Verifique se todos os perfis do AppArmor estão no modo de imposição ou reclamação Aprovação
1.7 Banners de aviso de linha de comando
1.7.1 Verifique se a mensagem do dia está configurada corretamente Aprovação
1.7.2 Verifique se as permissões em /etc/issue.net estão configuradas Aprovação
1.7.3 Verifique se as permissões em /etc/issue estão configuradas Aprovação
1.7.4 Verifique se as permissões em /etc/motd estão configuradas Aprovação
1.7.5 Verifique se o banner de aviso de login remoto está configurado corretamente Aprovação
1.7.6 Verifique se o banner de aviso de login local está configurado corretamente Aprovação
1.8 Gerenciador de exibição do GNOME
1.8.2 Verifique se o banner de login do GDM está configurado Aprovação
1.8.3 Verifique se disable-user-list está ativado Aprovação
1.8.4 Verifique se o XDCMP não está habilitado Aprovação
1.9 Garantir que atualizações, patches e software de segurança adicional estejam instalados Êxito
2 Serviços
2.1 Serviços para fins especiais
2.1.1 Sincronização de tempo
2.1.1.1 Garantir que a sincronização de tempo esteja em uso Aprovação
2.1.1.2 Verifique se systemd-timesyncd está configurado Não Aplicável AKS usa ntpd para timesync
2.1.1.3 Verifique se a cronia está configurada Reprovado Coberto em outro lugar
2.1.1.4 Verifique se o ntp está configurado Aprovação
2.1.2 Verifique se o X Window System não está instalado Aprovação
2.1.3 Verifique se o Avahi Server não está instalado Aprovação
2.1.4 Verifique se o CUPS não está instalado Aprovação
2.1.5 Verifique se o Servidor DHCP não está instalado Aprovação
2.1.6 Verifique se o servidor LDAP não está instalado Aprovação
2.1.7 Verifique se o NFS não está instalado Aprovação
2.1.8 Verifique se o servidor DNS não está instalado Aprovação
2.1.9 Verifique se o servidor FTP não está instalado Aprovação
2.1.10 Verifique se o servidor HTTP não está instalado Aprovação
2.1.11 Verifique se o servidor IMAP e POP3 não está instalado Aprovação
2.1.12 Verifique se o Samba não está instalado Aprovação
2.1.13 Verifique se o Servidor Proxy HTTP não está instalado Aprovação
2.1.14 Verifique se o SNMP Server não está instalado Aprovação
2.1.15 Verifique se o agente de transferência de email está configurado para o modo somente local Aprovação
2.1.16 Verifique se o serviço rsync não está instalado Reprovado
2.1.17 Verifique se o Servidor NIS não está instalado Aprovação
2.2 Clientes de Serviços
2.2.1 Verifique se o NIS Client não está instalado Aprovação
2.2.2 Verifique se o cliente rsh não está instalado Aprovação
2.2.3 Verifique se o cliente de conversa não está instalado Aprovação
2.2.4 Verifique se o cliente telnet não está instalado Reprovado
2.2.5 Verifique se o cliente LDAP não está instalado Aprovação
2.2.6 Verifique se o RPC não está instalado Reprovado Potencial impacto operacional
2.3 Garantir que os serviços não essenciais sejam removidos ou mascarados Aprovação
3 Configuração da Rede
3.1 Desativar protocolos e dispositivos de rede não utilizados
3.1.2 Verifique se as interfaces sem fio estão desativadas Aprovação
3.2 Parâmetros de rede (somente host)
3.2.1 Verifique se o envio de redirecionamento de pacotes está desativado Aprovação
3.2.2 Verifique se o encaminhamento IP está desativado Reprovado Não Aplicável
3.3 Parâmetros de rede (host e roteador)
3.3.1 Verifique se os pacotes roteados de origem não são aceitos Aprovação
3.3.2 Verifique se os redirecionamentos ICMP não são aceitos Aprovação
3.3.3 Garantir que redirecionamentos ICMP seguros não sejam aceitos Aprovação
3.3.4 Garantir que pacotes suspeitos sejam registrados Aprovação
3.3.5 Verifique se as solicitações ICMP de difusão são ignoradas Aprovação
3.3.6 Garantir que respostas ICMP falsas sejam ignoradas Aprovação
3.3.7 Verifique se a Filtragem de Caminho Inverso está ativada Aprovação
3.3.8 Verifique se os cookies TCP SYN estão ativados Aprovação
3.3.9 Verifique se os anúncios do roteador IPv6 não são aceitos Aprovação
3.4 Protocolos de rede incomuns
3.5 Configuração de firewall
3.5.1 Configurar UncomplicatedFirewall
3.5.1.1 Certifique-se de que o ufw está instalado Aprovação
3.5.1.2 Verifique se iptables-persistent não está instalado com ufw Aprovação
3.5.1.3 Verifique se o serviço ufw está ativado Reprovado Coberto em outro lugar
3.5.1.4 Verifique se o tráfego de loopback ufw está configurado Reprovado Coberto em outro lugar
3.5.1.5 Verifique se as conexões de saída ufw estão configuradas Não Aplicável Coberto em outro lugar
3.5.1.6 Verifique se existem regras de firewall ufw para todas as portas abertas Não Aplicável Coberto em outro lugar
3.5.1.7 Garantir a política de firewall de negação padrão do ufw Reprovado Coberto em outro lugar
3.5.2 Configurar nftables
3.5.2.1 Verifique se o nftables está instalado Reprovado Coberto em outro lugar
3.5.2.2 Verifique se o ufw está desinstalado ou desativado com nftables Reprovado Coberto em outro lugar
3.5.2.3 Certifique-se de que os iptables estão limpos com nftables Não Aplicável Coberto em outro lugar
3.5.2.4 Verifique se existe uma tabela nftables Reprovado Coberto em outro lugar
3.5.2.5 Garantir a existência de cadeias de base nftables Reprovado Coberto em outro lugar
3.5.2.6 Verifique se o tráfego de loopback nftables está configurado Reprovado Coberto em outro lugar
3.5.2.7 Garantir que as conexões de saída e estabelecidas nftables estejam configuradas Não Aplicável Coberto em outro lugar
3.5.2.8 Garantir a política de firewall de negação padrão nftables Reprovado Coberto em outro lugar
3.5.2.9 Verifique se o serviço nftables está habilitado Reprovado Coberto em outro lugar
3.5.2.10 Garantir que as regras nftables sejam permanentes Reprovado Coberto em outro lugar
3.5.3 Configurar iptables
3.5.3.1 Configurar software iptables
3.5.3.1.1 Verifique se os pacotes iptables estão instalados Reprovado Coberto em outro lugar
3.5.3.1.2 Verifique se o nftables não está instalado com iptables Aprovação
3.5.3.1.3 Verifique se ufw está desinstalado ou desativado com iptables Reprovado Coberto em outro lugar
3.5.3.2 Configurar iptables IPv4
3.5.3.2.1 Garantir iptables padrão negar política de firewall Reprovado Coberto em outro lugar
3.5.3.2.2 Verifique se o tráfego de loopback iptables está configurado Reprovado Não Aplicável
3.5.3.2.3 Verifique se as conexões iptables de saída e estabelecidas estão configuradas Não Aplicável
3.5.3.2.4 Verifique se existem regras de firewall iptables para todas as portas abertas Reprovado Potencial impacto da operação
3.5.3.3 Configurar IPv6 ip6tables
3.5.3.3.1 Verifique se ip6tables padrão negam a política de firewall Reprovado Coberto em outro lugar
3.5.3.3.2 Verifique se o tráfego de loopback ip6tables está configurado Reprovado Coberto em outro lugar
3.5.3.3.3 Verifique se as conexões de saída e estabelecidas ip6tables estão configuradas Não Aplicável Coberto em outro lugar
3.5.3.3.4 Verifique se existem regras de firewall ip6tables para todas as portas abertas Reprovado Coberto em outro lugar
4 Registo e Auditoria
4.1 Configurar a contabilidade do sistema (auditado)
4.1.1.2 Garantir que a auditoria esteja ativada
4.1.2 Configurar retenção de dados
4.2 Configurar registro em log
4.2.1 Configurar rsyslog
4.2.1.1 Verifique se o rsyslog está instalado Aprovação
4.2.1.2 Verifique se o Serviço rsyslog está ativado Aprovação
4.2.1.3 Verifique se o registro em log está configurado Aprovação
4.2.1.4 Garantir que as permissões de arquivo padrão rsyslog estejam configuradas Aprovação
4.2.1.5 Verifique se o rsyslog está configurado para enviar logs para um host de log remoto Reprovado Coberto em outro lugar
4.2.1.6 Verifique se as mensagens rsyslog remotas só são aceitas em hosts de log designados. Não Aplicável
4.2.2 Configurar journald
4.2.2.1 Verifique se o journald está configurado para enviar logs para o rsyslog Aprovação
4.2.2.2 Verifique se o registro no diário está configurado para compactar arquivos de log grandes Reprovado
4.2.2.3 Verifique se o registro no diário está configurado para gravar arquivos de log em disco persistente Aprovação
4.2.3 Verifique se as permissões em todos os arquivos de log estão configuradas Reprovado
4.3 Verifique se o logrotate está configurado Aprovação
4.4 Verifique se o logrotate atribui as permissões apropriadas Reprovado
5 Acesso, autenticação e autorização
5.1 Configurar agendadores de trabalho baseados em tempo
5.1.1 Verifique se o daemon cron está ativado e em execução Aprovação
5.1.2 Verifique se as permissões em /etc/crontab estão configuradas Aprovação
5.1.3 Verifique se as permissões em /etc/cron.hourly estão configuradas Aprovação
5.1.4 Verifique se as permissões em /etc/cron.daily estão configuradas Aprovação
5.1.5 Verifique se as permissões em /etc/cron.weekly estão configuradas Aprovação
5.1.6 Verifique se as permissões em /etc/cron.monthly estão configuradas Aprovação
5.1.7 Verifique se as permissões em /etc/cron.d estão configuradas Aprovação
5.1.8 Certifique-se de que o cron é restrito a usuários autorizados Reprovado
5.1.9 Certifique-se de que é restrito a usuários autorizados Reprovado
5,2 Configurar sudo
5.2.1 Verifique se o sudo está instalado Aprovação
5.2.2 Certifique-se de que os comandos sudo usem pty Reprovado Potencial impacto operacional
5.2.3 Verifique se o arquivo de log sudo existe Reprovado
5.3 Configurar o Servidor SSH
5.3.1 Verifique se as permissões em /etc/ssh/sshd_config estão configuradas Aprovação
5.3.2 Verifique se as permissões nos arquivos de chave de host privado SSH estão configuradas Aprovação
5.3.3 Verifique se as permissões nos arquivos de chave de host pública SSH estão configuradas Aprovação
5.3.4 Garantir que o acesso SSH seja limitado Aprovação
5.3.5 Verifique se o SSH LogLevel é apropriado Aprovação
5.3.7 Verifique se o SSH MaxAuthTries está definido como 4 ou menos Aprovação
5.3.8 Verifique se o SSH IgnoreRhosts está habilitado Aprovação
5.3.9 Verifique se a autenticação baseada em host SSH está desabilitada Aprovação
5.3.10 Verifique se o login raiz SSH está desativado Aprovação
5.3.11 Verifique se o SSH PermitEmptyPasswords está desativado Aprovação
5.3.12 Verifique se o SSH PermitUserEnvironment está desativado Aprovação
5.3.13 Certifique-se de que apenas cifras fortes sejam usadas Aprovação
5.3.14 Certifique-se de que apenas algoritmos MAC fortes sejam usados Aprovação
5.3.15 Certifique-se de que apenas algoritmos fortes de troca de chaves sejam usados Aprovação
5.3.16 Verifique se o intervalo de tempo limite ocioso SSH está configurado Reprovado
5.3.17 Certifique-se de que SSH LoginGraceTime está definido para um minuto ou menos Aprovação
5.3.18 Verifique se o banner de aviso SSH está configurado Aprovação
5.3.19 Verifique se o SSH PAM está habilitado Aprovação
5.3.21 Verifique se o SSH MaxStartups está configurado Reprovado
5.3.22 Garantir que o SSH MaxSessions seja limitado Aprovação
5.4 Configurar o PAM
5.4.1 Verifique se os requisitos de criação de senha estão configurados Aprovação
5.4.2 Verifique se o bloqueio para tentativas de senha com falha está configurado Reprovado
5.4.3 Verifique se a reutilização da senha é limitada Reprovado
5.4.4 Verifique se o algoritmo de hash de senha é SHA-512 Aprovação
5,5 Contas de Utilizador e Ambiente
5.5.1 Definir parâmetros do Shadow Password Suite
5.5.1.1 Verifique se o mínimo de dias entre as alterações de senha está configurado Aprovação
5.5.1.2 Verifique se a expiração da senha é de 365 dias ou menos Aprovação
5.5.1.3 Verifique se os dias de aviso de expiração da senha são 7 ou mais Aprovação
5.5.1.4 Verifique se o bloqueio de senha inativo é de 30 dias ou menos Aprovação
5.5.1.5 Verifique se a data da última alteração de senha de todos os usuários está no passado Reprovado
5.5.2 Garantir que as contas do sistema estejam seguras Aprovação
5.5.3 Verifique se o grupo padrão para a conta raiz é GID 0 Aprovação
5.5.4 Verifique se o usuário padrão umask é 027 ou mais restritivo Aprovação
5.5.5 Verifique se o tempo limite padrão do shell do usuário é de 900 segundos ou menos Reprovado
5,6 Verifique se o login root está restrito ao console do sistema Não Aplicável
5.7 Verifique se o acesso ao comando su é restrito Reprovado Potencial impacto da operação
6 Manutenção do Sistema
6.1 Permissões de arquivo do sistema
6.1.2 Verifique se as permissões em /etc/passwd estão configuradas Aprovação
6.1.3 Verifique se as permissões em /etc/passwd- estão configuradas Aprovação
6.1.4 Verifique se as permissões em /etc/group estão configuradas Aprovação
6.1.5 Verifique se as permissões em /etc/group- estão configuradas Aprovação
6.1.6 Verifique se as permissões em /etc/shadow estão configuradas Aprovação
6.1.7 Verifique se as permissões em /etc/shadow- estão configuradas Aprovação
6.1.8 Verifique se as permissões em /etc/gshadow estão configuradas Aprovação
6.1.9 Verifique se as permissões em /etc/gshadow- estão configuradas Aprovação
6.1.10 Certifique-se de que não existem arquivos graváveis no mundo Reprovado Potencial impacto da operação
6.1.11 Certifique-se de que não existem arquivos ou diretórios sem propriedade Reprovado Potencial impacto da operação
6.1.12 Verifique se não existem arquivos ou diretórios desagrupados Reprovado Potencial impacto da operação
6.1.13 Auditar executáveis SUID Não Aplicável
6.1.14 Auditar executáveis SGID Não Aplicável
6.2 Configurações de usuário e grupo
6.2.1 Certifique-se de que as contas em /etc/passwd usem senhas sombreadas Aprovação
6.2.2 Verifique se os campos de senha não estão vazios Aprovação
6.2.3 Certifique-se de que todos os grupos em /etc/passwd existam em /etc/group Aprovação
6.2.4 Verifique se todos os diretórios base dos usuários existem Aprovação
6.2.5 Garantir que os usuários possuam seus diretórios base Aprovação
6.2.6 Verifique se as permissões dos diretórios base dos usuários são 750 ou mais restritivas Aprovação
6.2.7 Certifique-se de que os arquivos de pontos dos usuários não sejam graváveis em grupo ou no mundo Aprovação
6.2.8 Certifique-se de que nenhum usuário tenha arquivos .netrc Aprovação
6.2.9 Certifique-se de que nenhum usuário tenha arquivos .forward Aprovação
6.2.10 Certifique-se de que nenhum usuário tenha arquivos .rhosts Aprovação
6.2.11 Verifique se root é a única conta UID 0 Aprovação
6.2.12 Garantir a integridade do PATH raiz Aprovação
6.2.13 Certifique-se de que não existem UIDs duplicados Aprovação
6.2.14 Certifique-se de que não existem GIDs duplicados Aprovação
6.2.15 Certifique-se de que não existem nomes de utilizador duplicados Aprovação
6.2.16 Certifique-se de que não existem nomes de grupo duplicados Aprovação
6.2.17 Verifique se o grupo de sombras está vazio Aprovação

Próximos passos

Para obter mais informações sobre a segurança do AKS, consulte os seguintes artigos: