Управление Docker от непривилегированного пользователя - огромная дыра в безопасности, как противодействовать?

418
user1625837

Рассмотрим разработчика веб-приложений, который работает через непривилегированную учетную запись пользователя без каких-либо sudoразрешений. Поскольку инструментальные средства разработчика не требуют какого-либо корневого доступа, это наиболее безопасная среда разработки из возможных (тип среды разработки, который я предпочитаю). Если кто-то работает с тысячами незнакомых библиотек и использует веб-браузеры в своей среде разработки, я считаю это разумной и рекомендуемой мерой предосторожности.

Обычно разработчик вводит свой пароль только для того, чтобы разблокировать свой компьютер, но не в командной строке. Работать так удобно. Чтобы сохранить эту комфортность, после того, как они решили установить Docker, разработчик добавляет своего непривилегированного пользователя в dockerгруппу, которая тайно превращает их непривилегированную учетную запись в учетную запись с полномочиями суперпользователя: каталоги системы монтирования контейнера Docker могут делать все, даже изменять файлы, принадлежащие rootЭто огромная дыра в безопасности.

Чтобы закрыть эту дыру, можно удалить непривилегированного пользователя из dockerгруппы и вместо этого добавить NOPASSWDзаписи в sudoersфайл для наиболее важных, но все же безвредных команд докера, таких какdocker start some-container или docker ps.

Пример: sudo docker ps

Если выполнение разрешенной команды Docker может привести к сборке контейнера (например, docker buildилиdocker-compose up ), входные файлы должны быть доступны только для чтения для непривилегированного пользователя и принадлежать кому- rootлибо другому «защищенному», так что никакой мошенник не сможет ими манипулировать. Заботиться об этом немного громоздко.

Кроме того, у меня возникают два вопроса:

  • Это достаточно безопасно, или разработчик все еще не может увидеть что-то опасное, начав работать с Docker?
  • Это единственный безопасный способ обеспечить контроль над Docker без необходимости ввода пароля при использовании sudoдля управления Docker?
-1
Не слишком знаком с этими проблемами (и да, я знаю, что членство в группе `docker` предоставляет доступ, эквивалентный` root`), но см. Https://docs.docker.com/engine/security/security/ bwDraco 5 лет назад 0
Конечно, я прочитал этот документ. Но это не дает решения моей проблемы. По крайней мере, насколько я понимаю содержание документа. user1625837 5 лет назад 0

0 ответов на вопрос

Похожие вопросы