
Modelos de políticas baseados em OPA Gatekeeper para mitigar a CVE-2020-8554, restringindo os IPs externos de Serviços Kubernetes a uma lista de permissões, evitando a interceptação de tráfego em clusters multi-tenant.
Este repositório contém arquivos de configuração para usar o Policy Controller, que é baseado no projeto de código aberto OPA Gatekeeper, para bloquear o acesso de IP público a Serviços Kubernetes.
O aviso de segurança para este problema afirma:
Foi descoberto um problema de segurança com o Kubernetes afetando clusters multi-inquilinos. Se um potencial atacante já pode criar ou editar serviços e pods, então ele pode ser capaz de interceptar tráfego de outros pods (ou nós) no cluster.
Este problema foi classificado como gravidade média (CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L) e atribuído CVE-2020-8554.
Um atacante que consiga criar um serviço ClusterIP e definir o campo spec.externalIPs pode interceptar tráfego para esse IP. Um atacante que consiga alterar o status (considerada uma operação privilegiada e normalmente não concedida a usuários) de um serviço LoadBalancer pode definir status.loadBalancer.ingress.ip com efeito semelhante.
Este repositório contém um Template e uma Constraint que restringem Services a uma lista de permissões específica de IPs públicos, limitando assim a capacidade de um atacante adicionar IPs fora dos valores confiáveis.
Você pode aplicar essas políticas usando o Policy Controller, que está incluído como parte do Anthos Config Management. Para personalizar os endereços IP permitidos, edite ou adicione itens à lista "allowedIPs" em k8sExternalIPs_constraint.yaml.
Se você apenas deseja impedir um IP em um intervalo CIDR específico, use os arquivos e . Por exemplo, se você deseja impedir que um atacante especifique o campo para o CIDR padrão do Kubernetes Services.
k8sExternalIPsCIDR_constraint.yamlk8sExternalIPsCIDR_template.yamlspec.externalIPs