
Mitigare CVE-2020-8554 con Policy Controller in Anthos
Questo repository contiene i file di configurazione per utilizzare Policy Controller, basato sul progetto open source OPA Gatekeeper, per bloccare l'utilizzo di IP pubblici da parte dei Servizi Kubernetes.
L'avviso di sicurezza per questo problema afferma:
È stato scoperto un problema di sicurezza in Kubernetes che colpisce i cluster multi-tenant. Se un potenziale attaccante può già creare o modificare servizi e pod, potrebbe essere in grado di intercettare il traffico di altri pod (o nodi) nel cluster.
Questo problema è stato classificato come di gravità media (CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L) e ha ricevuto l'identificativo CVE-2020-8554.
Un attaccante in grado di creare un servizio ClusterIP e impostare il campo spec.externalIPs può intercettare il traffico verso quell'IP. Un attaccante in grado di applicare una patch allo status (operazione considerata privilegiata e che normalmente non dovrebbe essere concessa agli utenti) di un servizio LoadBalancer può impostare status.loadBalancer.ingress.ip con effetti simili.
Questo repository contiene un Template e un Constraint che limitano i Servizi a una lista consentita di IP pubblici, riducendo così la capacità di un attaccante di aggiungere IP al di fuori dei valori attendibili.
Puoi applicare queste policy utilizzando Policy Controller, incluso come parte di Anthos Config Management. Per personalizzare gli indirizzi IP consentiti, modifica o aggiungi elementi all'elenco "allowedIPs" in k8sExternalIPs_constraint.yaml.
Se vuoi semplicemente impedire un IP in un intervallo CIDR specifico, usa i file k8sExternalIPsCIDR_constraint.yaml e k8sExternalIPsCIDR_template.yaml. Ad esempio, se vuoi impedire a un attaccante di impostare il campo spec.externalIPs sul CIDR predefinito dei Servizi Kubernetes.