Выбор ответа Senior Безопасность контейнеров обновлено
Монтирование docker.sock
Вопрос
В контейнер CI-агента смонтирован /var/run/docker.sock, сам агент работает не от root. Насколько это опасно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Это фактически root на хосте: через API можно запустить привилегированный контейнер. Docker API не разграничивает права: кто может писать в сокет, тот может выполнить docker run --privileged -v /:/host и получить хост.
Варианты ответа
- Это фактически root на хосте: через API можно запустить привилегированный контейнерправильный ответ
- Безопасно: агент работает не от root, поэтому сокет примет от него только чтение
- Опасно, только если сам контейнер агента запущен с
--privileged, иначе API ограничен - Сокет даёт доступ лишь к списку контейнеров и логам, запускать новые через него нельзя
Разбор
Docker API не разграничивает права: кто может писать в сокет, тот может выполнить docker run --privileged -v /:/host и получить хост. UID процесса в контейнере не важен, если у него есть доступ к сокету. Альтернативы для CI: rootless-сборщики (Kaniko, Buildah, BuildKit rootless), отдельные изолированные раннеры.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.