Выбор ответа Senior Безопасность контейнеров обновлено

Rootless и user namespaces

Вопрос

Чем user namespaces (и rootless-режим) снижают риск побега из контейнера?

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

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

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

Коротко

Правильный ответ: Root внутри сопоставляется обычному UID на хосте, побег даёт права пользователя. User namespace задаёт отображение UID: 0 внутри может соответствовать, например, 100000 снаружи.

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

  1. Шифруют файловую систему контейнера ключом пользователя, и с хоста её не прочитать
  2. Root внутри сопоставляется обычному UID на хосте, побег даёт права пользователяправильный ответ
  3. Запрещают контейнеру все системные вызовы, кроме разрешённых в профиле seccomp
  4. Запускают каждый контейнер в отдельной лёгкой ВМ со своим ядром

Разбор

User namespace задаёт отображение UID: 0 внутри может соответствовать, например, 100000 снаружи. Процесс думает, что он root, но для ядра хоста это обычный пользователь. Rootless Docker и Podman запускают и сам демон без root. Шифрование, фильтр всех вызовов и ВМ это другие механизмы (последнее делают gVisor, Kata).

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

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