Выбор ответа Junior Безопасность контейнеров спрашивают часто обновлено
Root в контейнере
Вопрос
Почему процесс от root внутри контейнера считается риском, если контейнер изолирован?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Без user namespaces это тот же UID 0, что на хосте; при побеге атакующий получит root. Изоляция контейнера держится на namespaces, capabilities и seccomp, но UID 0 внутри без user namespace совпадает с UID 0 хоста.
Варианты ответа
- Риска нет: root в контейнере изолирован namespaces и не может обратиться к ядру хоста
- Root в контейнере работает медленнее из-за дополнительных проверок seccomp на каждый вызов
- Без user namespaces это тот же UID 0, что на хосте; при побеге атакующий получит rootправильный ответ
- Root нужен только при сборке, после старта Docker автоматически понижает права процесса
Разбор
Изоляция контейнера держится на namespaces, capabilities и seccomp, но UID 0 внутри без user namespace совпадает с UID 0 хоста. Любой побег (уязвимость, bind mount системного каталога, доступ к docker.sock) даёт полные права на сервере. На скорость root не влияет, а автоматического понижения прав нет: нужно явно указать USER.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.