
На DockerCon 2020 доклад "Lack Of Self Isolation" был посвящен архитектурному недостатку капабилити
В качестве демо показали
Основной совет убирайте у контейнеров все капабилити, которые им не нужны. Посмотреть какие капабилитис использует ваше приложение можно с помощью
CAP_NET_RAW
, которая позволяет использовать raw sockets
. Благодаря манипуляции заголовками сетевых пакетов можно производить атаки: ARP
и DNS spoofing
. Данная капабилити используется Docker по умолчанию, сами разработчики это объясняют тем, что это используется разными широко применяемыми и востребованными инструментами для отладки сети (на пример, ping
). В качестве демо показали
DNS spoofing
в Kubernetes. Код эксплоита можно посмотреть тут. Сразу скажу, что данный инструмент не заработает в окружении, где CNI Calico
, но успешно отработает на Flannel
. Основной совет убирайте у контейнеров все капабилити, которые им не нужны. Посмотреть какие капабилитис использует ваше приложение можно с помощью
tracee.
Так же разработчики добавили новый sysctl
, разрешающий ping sockets
без дополнительных капабилитис.