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

Монтирование docker.sock

Вопрос

В контейнер CI-агента смонтирован /var/run/docker.sock, сам агент работает не от root. Насколько это опасно?

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

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

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

Коротко

Правильный ответ: Это фактически root на хосте: через API можно запустить привилегированный контейнер. Docker API не разграничивает права: кто может писать в сокет, тот может выполнить docker run --privileged -v /:/host и получить хост.

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

  1. Это фактически root на хосте: через API можно запустить привилегированный контейнерправильный ответ
  2. Безопасно: агент работает не от root, поэтому сокет примет от него только чтение
  3. Опасно, только если сам контейнер агента запущен с --privileged, иначе API ограничен
  4. Сокет даёт доступ лишь к списку контейнеров и логам, запускать новые через него нельзя

Разбор

Docker API не разграничивает права: кто может писать в сокет, тот может выполнить docker run --privileged -v /:/host и получить хост. UID процесса в контейнере не важен, если у него есть доступ к сокету. Альтернативы для CI: rootless-сборщики (Kaniko, Buildah, BuildKit rootless), отдельные изолированные раннеры.

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

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