Skip to main content

Использование функций безопасности GitHub для защиты использования GitHub Actions

GitHub имеет несколько функций безопасности, которые могут повысить безопасность действий, которые вы используете и публикуете.

Сведения о функциях безопасности GitHub

GitHub предоставляет множество функций, чтобы сделать код более безопасным. Встроенные функции %% данных variables.product.prodname_dotcom %}можно использовать для понимания действий, от которых зависят рабочие процессы, убедитесь, что вы уведомляете об уязвимостях в используемых действиях или автоматизируете процесс хранения действий в рабочих процессах. При публикации и обслуживании действий можно использовать GitHub для взаимодействия с сообществом об уязвимостях и их устранении. Дополнительные сведения о функциях безопасности, которые GitHub предлагают, см. в разделе "Функции безопасности GitHub".

В этой статье объясняется, как использовать некоторые функции безопасности GitHub, чтобы повысить безопасность использования GitHub Actions.

Общие сведения о зависимостях в рабочих процессах

Вы можете использовать граф зависимостей для изучения действий, используемых рабочими процессами в репозитории. Граф зависимостей представляет собой сводку файлов манифеста и блокировки, хранящихся в репозитории. Он также распознает файлы в ./github/workflows/ виде манифестов, что означает, что любые действия или рабочие процессы, на которые ссылается синтаксис jobs[*].steps[*].uses , или jobs.<job_id>.uses будут проанализированы как зависимости.

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

  • Учетная запись или организация, которая владеет действием.
  • Файл рабочего процесса, ссылающийся на действие.
  • Версия или SHA, на которые закреплено действие.

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

Владельцы предприятия могут настроить граф зависимостей и Dependabot alerts для предприятия. Дополнительные сведения см. в разделе "Включение графа зависимостей для предприятия".

Учитывая уязвимости безопасности в действиях, которые вы используете

Для действий, доступных в Marketplace, GitHub проверяет связанные советы по безопасности, а затем добавляет эти рекомендации к GitHub Advisory Database. Вы можете выполнить поиск в базе данных действий, используемых для поиска сведений о существующих уязвимостях и инструкциях по их устранению. Чтобы упростить поиск, используйте фильтр GitHub Actions в GitHub Advisory Database.

Вы можете настроить репозитории, чтобы вы:

Мониторинг действий в рабочих процессах

Вы можете использовать Dependabot для отслеживания действий в рабочих процессах и включения Dependabot alerts для уведомления о том, когда используемое действие имеет уязвимость. Dependabot выполняет сканирование ветвь по умолчанию репозиториев, в которых она включена для обнаружения небезопасных зависимостей. Dependabot создает Dependabot alerts при добавлении нового рекомендации в GitHub Advisory Database или при обновлении действия.

Note

Dependabot создает оповещения только для уязвимых действий, использующих семантику управления версиями и не создавая оповещения для действий, закрепленных в значениях SHA.

Владелец предприятия должен сначала настроить Dependabot для вашего предприятия, прежде чем управлять Dependabot alerts для репозитория. Дополнительные сведения см. в разделе "Включение Dependabot для предприятия".

Вы можете просмотреть все открытые и закрытые Dependabot alerts и соответствующие Dependabot security updates на вкладке Dependabot alerts в репозитории. Дополнительные сведения см. в разделе "Просмотр и обновление оповещений Dependabot".

Проверка действий по уязвимостям в новых или обновленных рабочих процессах

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

  • Добавленные, удаленные и обновленные зависимости, а также даты их выпуска.
  • Количество проектов, в которых используются эти компоненты.
  • Данные об уязвимостях для этих зависимостей.

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

Дополнительные сведения о проверке зависимостей см. в разделе "[AUTOTITLE" и "Сведения о проверке зависимостей](/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review)".

Вы можете использовать в репозитории для принудительного применения dependency-review-action проверок зависимостей в запросах на вытягивание. Это действие проверяет наличие уязвимых версий зависимостей, представленных изменениями версии пакета в запросах на вытягивание, и предупреждает о связанных с ними уязвимостях системы безопасности. Это позволяет лучше отслеживать изменения в запросе на вытягивание и предотвращать добавление уязвимостей в репозиторий.

Снимок экрана: запуск рабочего процесса, использующий действие проверки зависимостей.

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

Обеспечение безопасности и актуальности действий в рабочих процессах

Вы можете использовать Dependabot для обеспечения актуальности ссылок на действия и повторно используемые рабочие процессы, используемые в репозитории. Действия часто обновляются с помощью исправлений ошибок и новых функций, чтобы сделать автоматизированные процессы более быстрыми, безопасными и более надежными. Dependabot берет на себя усилия по поддержанию зависимостей, так как это делается автоматически. Дополнительные сведения см. в разделе "[AUTOTITLE" и "Поддержка актуальности действий с помощью Dependabot](/code-security/dependabot/dependabot-security-updates/about-dependabot-security-updates)".

Следующие функции могут автоматически обновлять действия в рабочих процессах.

  • Dependabot version updates откройте запросы на вытягивание, чтобы обновить действия до последней версии при выпуске новой версии.
  • Dependabot security updates откройте запросы на вытягивание для обновления действий с обнаруженными уязвимостями до минимальной исправленной версии.

Note

  • Dependabot поддерживает только обновления GitHub Actions с помощью синтаксиса репозитория GitHub репозитория.actions/checkout@v4 Dependabot игнорирует действия или повторно используемые рабочие процессы, на которые ссылается локально (например, ./.github/actions/foo.yml).
  • Docker Hub и GitHub Packages Container registry URL-адреса в настоящее время не поддерживаются. Например, ссылки на действия контейнера Docker с использованием docker:// синтаксиса не поддерживаются.
  • Dependabot поддерживает общедоступные и частные репозитории для GitHub Actions. Параметры конфигурации частного реестра см. в разделе "gitПараметры конфигурации для файла dependabot.yml".

Сведения о настройке Dependabot version updatesсм. в разделе "Настройка обновлений версий Dependabot".

Сведения о настройке Dependabot security updatesсм. в разделе "Настройка обновлений для системы безопасности Dependabot".