
Mitigar CVE-2020-8554 con Policy Controller en Anthos
Este repositorio contiene archivos de configuración para usar Policy Controller, que se basa en el proyecto de código abierto OPA Gatekeeper, para bloquear el acceso a IP públicas de los Servicios de Kubernetes.
El aviso de seguridad para este problema indica:
Se descubrió un problema de seguridad con Kubernetes que afecta a clústeres multiinquilino. Si un posible atacante ya puede crear o editar servicios y pods, entonces podría interceptar tráfico de otros pods (o nodos) en el clúster.
Este problema ha sido calificado como de gravedad media (CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L), y se le ha asignado CVE-2020-8554.
Un atacante que pueda crear un servicio ClusterIP y establecer el campo spec.externalIPs puede interceptar tráfico hacia esa IP. Un atacante que pueda modificar el estado (lo que se considera una operación privilegiada y no debería otorgarse típicamente a los usuarios) de un servicio LoadBalancer puede establecer status.loadBalancer.ingress.ip con un efecto similar.
Este repositorio contiene una Plantilla y una Restricción que restringen los Servicios a una lista de permitidos específica de IPs públicas, limitando así la capacidad de un atacante para agregar IPs fuera de los valores de confianza.
Puede aplicar estas políticas utilizando Policy Controller, que está incluido como parte de Anthos Config Management. Para personalizar las direcciones IP permitidas, edite o agregue elementos a la lista "allowedIPs" en k8sExternalIPs_constraint.yaml.
Si solo desea evitar una IP en un rango CIDR específico, use los archivos k8sExternalIPsCIDR_constraint.yaml y k8sExternalIPsCIDR_template.yaml. Por ejemplo, si desea evitar que un atacante especifique el campo spec.externalIPs en el CIDR predeterminado de Servicios de Kubernetes.