Сведения о функциях безопасности 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".