Параллельное исследование уязвимостей GitHub

Все сообщения

В прошлом месяце я наткнулся этой статье из Темного чтения. Это выглядело очень знакомо. Мне не потребовалось много времени, чтобы понять, что уязвимость отравления артефактами в перекрестных рабочих процессах GitHub, обсуждаемая в статье, поразительно похожа на перекрестный рабочий процесс GitHub. отравление кэша уязвимость, о которой мы сообщили в марте 2022 года. 

Рабочие процессы GitHub — ключевой компонент конвейеров GitHub CI/CD.

Рабочие процессы GitHub используются для определения конкретных действий, которые следует предпринять в рамках конвейера CI/CD. Это автоматизированные процессы, которые могут быть запущены определенными событиями в репозитории GitHub. К таким событиям, например, относятся передача кода в репозиторий, открытие или закрытие запроса на включение или публикация нового выпуска. 

 

Рабочие процессы создаются с использованием файла YAML, в котором указаны действия, которые следует предпринять при запуске рабочего процесса. Такие действия могут быть написаны разработчиком или полностью взяты с торговой площадки GitHub, где можно загрузить и использовать более 10,000 XNUMX готовых действий.

 

Рабочие процессы состоят из одного или нескольких заданий, которые определяются как последовательность шагов. Шаги могут представлять собой различные действия, например запуск тестов, развертывание кода или публикацию пакета.

Рабочие процессы GitHub — это мощный инструмент, который может помочь разработчикам автоматизировать и оптимизировать свои рабочие процессы, экономя время и усилия и повышая надежность процесса разработки программного обеспечения, но они не лишены встроенных недостатков. 

 

Существует несколько потенциальных проблем безопасности, которые могут возникнуть при использовании рабочих процессов GitHub. Вот несколько распространенных:

 

  1. Не авторизованный доступ: Рабочие процессы, которые не настроены и не защищены должным образом, потенциально могут быть доступны и запущены неавторизованными пользователями. Это может позволить им выполнить произвольный код или выполнить другие несанкционированные действия.
  2. Утечка секретов: Рабочие процессы часто требуют использования секретов, таких как ключи API или пароли, для доступа к внешним ресурсам или выполнения определенных действий. Если эти секреты не защищены должным образом, они потенциально могут быть раскрыты, что приведет к нарушениям безопасности.
  3. Небезопасная зависимостьs: Рабочие процессы, использующие внешние библиотеки или зависимости, потенциально могут быть уязвимы для атак, если эти зависимости небезопасны. Важно регулярно проверять и обновлять зависимости, чтобы гарантировать их безопасность.
  4. Отсутствие проверки и очистки ввода: Рабочие процессы, которые не проверяют должным образом вводимые данные, потенциально могут быть использованы для выполнения произвольного кода или других несанкционированных действий.

 

Давайте подробнее рассмотрим две уязвимости перекрестных рабочих процессов, обсуждавшиеся в упомянутых выше статьях.

Отравление артефактами между рабочими процессами

Артефакты рабочих процессов GitHub — это продукты работы, выполненной в конвейерах CI/CD. Обычно каждый рабочий процесс получает собственную корзину для хранения таких артефактов, но иногда рабочим процессам требуется доступ к артефактам, созданным другими рабочими процессами. GitHub не позволяет рабочим процессам напрямую получать доступ к хранилищу/артефактам из разных рабочих процессов. Чтобы обойти эту проблему, существует API, одобренный GitHub, который позволяет загружать артефакты на основе базовой фильтрации. Проблема в том, что API не различает артефакты, загруженные из разветвленных репозиториев, и артефакты, загруженные из базовых репозиториев. Это означает, что загрузка потенциально зараженных артефактов, созданных из разветвленных репозиториев, представляет собой реальную опасность. 

 

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

Отравление кэша между рабочими процессами

GitHub позволяет кэшировать артефакты и пакеты для ускорения конвейера CI/CD. Вместо того, чтобы снова и снова загружать необходимые артефакты и пакеты для каждого рабочего процесса, в котором они могут понадобиться, их можно кэшировать и использовать в разных рабочих процессах. 

 

Поскольку кеш используется совместно между рабочими процессами, достаточно одного нарушения рабочего процесса, использующего кеш с разрешением на его изменение, и этот кеш может быть отравлен для всех последующих использований рабочего процесса. Поскольку кеш обновляется только при наличии нового артефакта или пакета для загрузки, это означает, что один отравленный кеш может быть активен в течение длительного времени, влияя на бесчисленные итерации сборок программного обеспечения, выполняемых в этом конвейере.

 

GitHub не считает проблему потенциально отравленного кеша проблемой. Кэш — полезная функция, и его возможность совместного использования между рабочими процессами в настоящее время не считается ошибкой или прямой проблемой безопасности. Чтобы узнать больше об этой проблеме, ознакомьтесь с статья упомянутых выше.

Изображение отравления кеша GitHub

Другие менее известные уязвимости GitHub и способы защиты от них

GitHub — одна из самых популярных систем управления исходным кодом (SCM) в мире. Таким образом, он также широко используется для создания и распространения программного обеспечения с использованием конвейера, действий и рабочих процессов CI/CD.

Людям следует помнить, что GitHub был создан для облегчения совместного использования кода и совместной разработки. Первоначально он был разработан для разработчиков с открытым исходным кодом, а возможности корпоративных и организационных учетных записей были добавлены позже. По своей сути безопасность не была главной заботой системы. Тот факт, что вам нужно сделать специальная установка на GitHub для включения функций безопасности в вашей учетной записи означает, что идея о том, что, используя Git, вы по своей сути более защищены, является всего лишь иллюзией.   

Позже в этом месяце Scribe проведет Цачи Зорнштайн, руководитель отдела поставок программного обеспечения в Checkmarx, на вебинаре, где рассказывает о нескольких таких потенциальных ловушках в цепочке поставок программного обеспечения на GitHub.  

Если вы хотите узнать больше об этом менее известном классе уязвимостей и о том, как защититься от них, послушайте это видео по запросу. вебинар.

 

баннер

Этот контент предоставлен вам Scribe Security, ведущим поставщиком комплексных решений для обеспечения безопасности цепочки поставок программного обеспечения, обеспечивающим современную безопасность артефактов кода, а также процессов разработки и доставки кода по всей цепочке поставок программного обеспечения. Подробнее.