
Устранение уязвимости CVE-2020-8554 с помощью Policy Controller в Anthos
Этот репозиторий содержит файлы конфигурации для использования Policy Controller, который основан на проекте с открытым исходным кодом OPA Gatekeeper, для блокировки доступа Kubernetes Services к публичным IP-адресам.
Уведомление о безопасности по этой проблеме гласит:
В Kubernetes была обнаружена проблема безопасности, затрагивающая мультитенантные кластеры. Если потенциальный злоумышленник уже может создавать или редактировать сервисы и поды, он может перехватывать трафик от других подов (или узлов) в кластере.
Эта проблема имеет среднюю степень серьезности (CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L) и получила идентификатор CVE-2020-8554.
Злоумышленник, способный создать сервис ClusterIP и задать поле spec.externalIPs, может перехватывать трафик на этот IP. Злоумышленник, способный изменить статус (что считается привилегированной операцией и обычно не должно предоставляться пользователям) сервиса LoadBalancer, может аналогичным образом задать status.loadBalancer.ingress.ip.
Этот репозиторий содержит шаблон (Template) и ограничение (Constraint), которые ограничивают Services определенным списком разрешенных публичных IP-адресов, тем самым ограничивая возможность злоумышленника добавлять IP-адреса вне доверенных значений.
Вы можете применить эти политики с помощью Policy Controller, который входит в состав Anthos Config Management. Чтобы настроить разрешенные IP-адреса, измените или добавьте элементы в список "allowedIPs" в файле k8sExternalIPs_constraint.yaml.
Если вы хотите просто запретить IP-адрес в определенном диапазоне CIDR, используйте файлы k8sExternalIPsCIDR_constraint.yaml и k8sExternalIPsCIDR_template.yaml. Например, если вы хотите предотвратить возможность указания злоумышленником поля spec.externalIPs для диапазона CIDR Kubernetes Services по умолчанию.