Что такое расширенная безопасность GitHub?

Завершено

GitHub имеет множество функций, которые помогают улучшить и поддерживать качество кода. Некоторые из этих функций включены во все планы, такие как граф зависимостей и оповещения Dependabot. Другие предоставляют ограниченные возможности для общедоступных репозиториев, а для расширенных возможностей в приватных репозиториях требуются GitHub Code Security и GitHub Secret Protection.

В этом модуле вы узнаете больше о GitHub Advanced Security и увидите, как выглядит проект с возможностями расширенной безопасности.

Обзор расширенной безопасности GitHub

GitHub возможности расширенной безопасности теперь предоставляются через два основных продукта:

  • GitHub Безопасность кода (обнаружение уязвимостей и исправление)
  • GitHub Защита секретов (обнаружение и предотвращение секретов)

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

Доступность функций

В следующей таблице приводится сводка о доступности функций безопасности GitHub в разных типах репозиториях и продуктах.

Особенность Общедоступный репозиторий Частный репозиторий безопасность кода GitHub защита секретов GitHub
Сканирование кода (CodeQL) Да Нет Да Нет
Автоисправление Copilot Да (ограниченно) Нет Да Нет
Проверка зависимостей Да Нет Да Нет
Оповещения Dependabot Да Да Да Нет
Правила автоматической сортировки Dependabot Нет Нет Да Нет
Кампании по безопасности Нет Нет Да Нет
Общие сведения о безопасности Нет Нет Да Нет
Сканирование секретов Да (базовый) Нет Нет Да
Защита от push-уведомлений Нет Нет Нет Да
Пользовательские шаблоны секретов Нет Нет Нет Да

Как показано в предыдущей таблице, многие основные функции безопасности, включая сканирование кода, базовое сканирование секретов, проверку зависимостей и оповещения Dependabot, доступны по умолчанию для общедоступных репозиториев на GitHub.com. Для расширенных возможностей для частных и внутренних репозиториев требуется GitHub Enterprise Cloud или GitHub Team с включенной GitHub безопасностью кода и (или) GitHub защита секретов.

GitHub Безопасность кода и защита секретов GitHub предоставляют следующие расширенные возможности для частных и внутренних репозиториев:

  • Сканирование кода (CodeQL): Автоматически обнаруживает уязвимости и ошибки в коде, а также поддерживает исправления с помощью ИИ через Copilot Autofix (если функция включена).
  • Сканирование секретов: Обнаруживает предоставленные секреты в коде, блокирует утечки с помощью защиты push-уведомлений, поддерживает пользовательские шаблоны секретов и обеспечивает расширенные рабочие процессы оповещения и исправления.
  • Проверка зависимостей: Показывает, как изменения в зависимостях влияют на проект, и выделяет уязвимые версии до слияния запросов на включение изменений.
  • Обзор безопасности: Обеспечивает видимость состояния безопасности, рисков и оповещений на уровне репозитория.
  • Кампании по безопасности: Позволяют организациям группировать, расставлять приоритеты и систематически устранять несколько предупреждений безопасности в разных репозиториях, помогая командам быстрее снижать количество уязвимостей в масштабе всей организации.

Ключевые заметки

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

  • Безопасность кода GitHub
  • Защита секретов GitHub

Другие важные моменты:

  • Общедоступные репозитории продолжают получать надежные базовые показатели бесплатных функций безопасности.
  • Расширенные функции ориентированы на предотвращение (например, защиту push-уведомлений), автоматизацию и исправление с помощью искусственного интеллекта.

Расширенная безопасность GitHub в жизненном цикле разработки программного обеспечения

Какую роль функции GitHub Advanced Security играют в жизненном цикле разработки программного обеспечения? Сначала рассмотрим базовый сценарий безопасности.

Схема показывает представление различных этапов жизненного цикла разработки программного обеспечения в традиционном подходе к безопасности.

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

Теперь рассмотрим тот же жизненный цикл разработки программного обеспечения с помощью GitHub Advanced Security.

Схема, представляющая различные этапы жизненного цикла разработки программного обеспечения с помощью GitHub Advanced Security.

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

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

Кроме того, обзор безопасности предоставляет администраторам высокоуровневое представление о безопасности организации. Это представление помогает определить репозитории, требующие внимания или исправления.

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