Все ли в курсе, что GitLab CI + docker-executor создает файлы с правами на запись для всех?

Вопрос или проблема

Это вопрос для обратной связи, чтобы выяснить, имеет ли проблема широкое воздействие.

Ситуация:

При использовании GitLab CI с docker-executor, ‘git clone’ используемого репозитория выполняется с umask 0000,

Что фактически делает весь клонированный контент доступным для записи любому пользователю.

Отправка этих файлов как есть (например, в образах docker) может потенциально создать огромные проблемы с безопасностью, в зависимости от программного обеспечения.

По крайней мере, в нашем случае, рабочий процесс
GitLab CI -> docker-executor -> сборка и загрузка образа docker из репозитория
является преобладающим, и мы в итоге получили образы docker, содержащие код, доступный для записи всем пользователям.

Исследуя эту проблему, мы обнаружили:

  • Что это существует с конца 2015 года и практически никто об этом не говорит
  • Что существует флаг функции, чтобы отключить это (FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR) с конца 2020 года, но никто и об этом не говорит

Это оставляет нам 3…

Вопрос(ы):

  1. Никто не использует GitLab таким образом?
  2. Все всегда устанавливают права доступа (chmod) ко всем содержимым из репозиториев / на выходе?
  3. Существуют ли различные дистрибутивы программного обеспечения с кодом, доступным для записи всем пользователям?

Ответ или решение

На вопрос о том, все ли осведомлены о том, что GitLab CI с использованием docker-executor производит файлы с правами доступа, позволяющими запись для всех пользователей, следует ответить с учетом нескольких ключевых аспектов, о которых упоминается в вашем описании ситуации.

1. Ситуация

Когда GitLab CI использует docker-executor, процесс «git clone» выполняется с umask 0000. Это означает, что все клонированные файлы становятся доступными для записи любому пользователю системы. Эта проблема является важной, так как создание и развертывание Docker-контейнеров с такими свойствами может привести к серьезным проблемам безопасности, особенно если код, размещаемый в контейнерах, затем используется в производственных средах.

2. Исторический контекст

Данная проблема не является новинкой — она существует с конца 2015 года. Интересно, что, несмотря на потенциальные уязвимости, обсуждение данной проблемы в сообществе GitLab является весьма ограниченным. Появление флага функции для отключения этой настройки (FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR) в 2020 году также не привлекло должного внимания, что наводит на мысль о том, что многие пользователи GitLab могли просто не знать о возможных рисках, связанных с использованием конфигурации по умолчанию.

3. Возможные проблемы и риски

Возникает ряд вопросов, на которые стоит обратить внимание:

  • Использует ли кто-то GitLab с таким конфигом? Вероятно, многие пользователи могут не знать о данной проблеме или полагаться на другие механизмы безопасности, что может привести к игнорированию серьезных уязвимостей.
  • Часто ли пользователи вручную изменяют права доступа на файлы? Если пользователи GitLab действительно не знают о вопросах безопасности, то ручная команда chmod может не быть частью их процессинга, что увеличивает риски.
  • Существует ли множество программных дистрибутивов с файлами, доступными для записи? Это очень вероятно, и в этом случае конечные пользователи могут оказаться в уязвимом положении, если программные обеспечивающие компании не уделяют должного внимания этому аспекту.

Заключение

Основная тревога заключается в том, что многие пользователи GitLab CI, особенно те, кто использует docker-executor, могут не осознавать, что их контент потенциально является уязвимым. Это может привести к серьезным уязвимостям в развертывании и эксплуатации программного обеспечения, поставляемого в Docker-образах. Осведомленность о данной проблеме и ее решение должны стать приоритетом для разработчиков и системных администраторов, использующих GitLab, особенно в контексте продакшн-сред. Важно продолжать диалог в сообществе, чтобы предотвратить возможные угрозы и обеспечить высокие стандарты безопасности цифровых решений.

Оцените материал
Добавить комментарий

Капча загружается...