Выбор ответа Junior Безопасность контейнеров спрашивают часто обновлено

Root в контейнере

Вопрос

Почему процесс от root внутри контейнера считается риском, если контейнер изолирован?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Без user namespaces это тот же UID 0, что на хосте; при побеге атакующий получит root. Изоляция контейнера держится на namespaces, capabilities и seccomp, но UID 0 внутри без user namespace совпадает с UID 0 хоста.

Варианты ответа

  1. Риска нет: root в контейнере изолирован namespaces и не может обратиться к ядру хоста
  2. Root в контейнере работает медленнее из-за дополнительных проверок seccomp на каждый вызов
  3. Без user namespaces это тот же UID 0, что на хосте; при побеге атакующий получит rootправильный ответ
  4. Root нужен только при сборке, после старта Docker автоматически понижает права процесса

Разбор

Изоляция контейнера держится на namespaces, capabilities и seccomp, но UID 0 внутри без user namespace совпадает с UID 0 хоста. Любой побег (уязвимость, bind mount системного каталога, доступ к docker.sock) даёт полные права на сервере. На скорость root не влияет, а автоматического понижения прав нет: нужно явно указать USER.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.