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 обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Container Escape?
Распространённые альтернативные названия: Выход из контейнера, Побег из Docker.