Container Escape
Что такое Container Escape?
Container EscapeЭксплойт, нарушающий границу изоляции между контейнером и хостом и позволяющий атакующему выполнять код на нижележащем узле или в ядре.
Container escape использует слабости среды выполнения контейнеров, ядра или неправильно настроенных пространств имен для выхода из изолированного контейнера и получения привилегий в ОС хоста. Классические примеры включают CVE-2019-5736 в runC, когда вредоносный контейнер мог перезаписать бинарь runC и получить root на хосте, а также злоупотребления привилегированными контейнерами, смонтированными сокетами Docker или общими PID-пространствами. После выхода атакующий обычно перемещается латерально по кластеру, крадет учетные данные kubelet и получает доступ к другим рабочим нагрузкам. Меры защиты: rootless-контейнеры, профили seccomp и AppArmor, файловые системы только для чтения, песочницы gVisor или Kata и своевременные патчи.
● Примеры
- 01
Эксплуатация CVE-2019-5736 для перезаписи /usr/bin/runc и выполнения кода с правами root на хосте.
- 02
Привилегированный контейнер монтирует /var/run/docker.sock и создает новый контейнер с файловой системой хоста.
● Частые вопросы
Что такое Container Escape?
Эксплойт, нарушающий границу изоляции между контейнером и хостом и позволяющий атакующему выполнять код на нижележащем узле или в ядре. Относится к категории Облачная безопасность в кибербезопасности.
Что означает Container Escape?
Эксплойт, нарушающий границу изоляции между контейнером и хостом и позволяющий атакующему выполнять код на нижележащем узле или в ядре.
Как работает Container Escape?
Container escape использует слабости среды выполнения контейнеров, ядра или неправильно настроенных пространств имен для выхода из изолированного контейнера и получения привилегий в ОС хоста. Классические примеры включают CVE-2019-5736 в runC, когда вредоносный контейнер мог перезаписать бинарь runC и получить root на хосте, а также злоупотребления привилегированными контейнерами, смонтированными сокетами Docker или общими PID-пространствами. После выхода атакующий обычно перемещается латерально по кластеру, крадет учетные данные kubelet и получает доступ к другим рабочим нагрузкам. Меры защиты: rootless-контейнеры, профили seccomp и AppArmor, файловые системы только для чтения, песочницы gVisor или Kata и своевременные патчи.
Как защититься от Container Escape?
Защита от Container Escape обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Container Escape?
Распространённые альтернативные названия: Выход из контейнера, Побег из Docker.
● Связанные термины
- cloud-security№ 598
Атака на кластер Kubernetes
Вторжение в кластер Kubernetes (K8s) с использованием открытых API, слабого RBAC или уязвимых нагрузок для захвата контроля над control plane или рабочими узлами.
- cloud-security№ 505
Повышение привилегий IAM
Злоупотребление существующими облачными IAM-разрешениями для получения более высоких прав, часто через изменение политик, передачу ролей или самоприсвоение административных прав.
- cloud-security№ 187
SSRF к облачным метаданным
Атака подделки серверных запросов, при которой через уязвимое приложение виртуальная машина обращается к сервису метаданных облачного провайдера и крадет временные учетные данные.
- cloud-security№ 183
Утечка данных из облака
Несанкционированное копирование или перенос данных из облачного аккаунта, обычно через API объектного хранилища, снапшоты, репликацию или подконтрольные злоумышленнику аккаунты.
- vulnerabilities№ 860
Повышение привилегий
Класс уязвимостей, позволяющий злоумышленнику получить права выше предоставленных изначально, например перейти от обычного пользователя к администратору.