Skip to main content

Изучение пробной версии корпоративной проверки кода

Общие сведения о функциях сканирования кода и зависимостей, доступных с помощью GitHub Advanced Security в GitHub Enterprise Cloud для оценки их соответствия бизнес-потребностям.

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

Введение

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

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

Уточнение конфигураций безопасности

В отличие от secret scanning, где одна конфигурация безопасности обычно применяется ко всем репозиториям, вам, вероятно, нужно точно настроить конфигурацию code scanning для различных типов репозиториев. Например, может потребоваться создать дополнительные конфигурации, чтобы:

  • Code scanning использует средства выполнения с определенной меткой для применения к репозиториям, требующим специализированной среды или использующим частные регистры.
  • Code scanning — "Не задано" для применения к репозиториям, которые должны использовать расширенную настройку или требуют стороннего средства.

Для пробной версии проще всего создать основную конфигурацию безопасности корпоративного уровня и применить ее к репозиториям тестов. Затем можно создать дополнительные конфигурации безопасности и применить их к подмножеству репозиториев, выбранных с помощью языка кода, пользовательского свойства, видимости и других параметров фильтра. Дополнительные сведения см. в разделе [AUTOTITLE и Включение функций безопасности в пробной версии предприятия](/code-security/securing-your-organization/enabling-security-features-in-your-organization/applying-a-custom-security-configuration).

Предоставление доступа к просмотру результатов code scanning

По умолчанию только администратор репозитория и владелец организации могут просматривать все оповещения code scanning в их области. Необходимо назначить предопределенную роль диспетчера безопасности всем командам организации и пользователям, которым требуется получить доступ к оповещениям, найденным во время пробной версии. Вы также можете предоставить владельцу учетной записи предприятия эту роль для каждой организации в пробной версии. Дополнительные сведения см. в разделе [AUTOTITLE и Управление диспетчерами безопасности в организации](/organizations/managing-peoples-access-to-your-organization-with-roles/using-organization-roles#assigning-an-organization-role).

Оценка и уточнение результатов настройки по умолчанию

Настройка по умолчанию для code scanning выполняет набор запросов высокой достоверности. Они выбираются для обеспечения того, чтобы при развертывании code scanning во всей базе кода разработчики видят ограниченный набор высококачественных результатов с несколькими ложными положительными результатами.

Вы можете просмотреть сводку результатов, найденных в организациях в пробной организации, на вкладке "Безопасность кода" для предприятия. Существуют также отдельные представления для каждого типа оповещений системы безопасности, см . раздел AUTOTITLE.

Если вы не видите ожидаемые результаты для code scanning, можно обновить настройку по умолчанию, чтобы запустить расширенный набор запросов для репозиториев, где ожидается найти дополнительные результаты. Это управляется на уровне репозитория, см . раздел AUTOTITLE.

Tip

Если вы блокируете редактирование параметров репозитория для code scanning, измените конфигурацию безопасности, используемую репозиторием, чтобы параметры не применялись.

Если расширенный набор по-прежнему не сможет найти ожидаемые результаты, может потребоваться включить расширенную настройку, чтобы можно было полностью настроить анализ. Дополнительные сведения см. в разделе [AUTOTITLE и Сведения о странице состояния средства для сканирования кода](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning).

Принудительное выполнение автоматического анализа запросов на вытягивание

Существует три различных типа автоматизированного анализа запросов на вытягивание, встроенных в GitHub:

  • Анализ Code scanning использует запросы для выделения известных неправильных шаблонов кодирования и уязвимостей безопасности. Copilot Autofix предлагает исправления проблем, определенных code scanning.
  • Проверка зависимостей суммирует изменения зависимостей, внесенные запросом на вытягивание, и выделяет все зависимости с известными уязвимостями или которые не соответствуют вашим стандартам разработки.
  • Обзор кода Copilot использует ИИ для предоставления отзывов об изменениях с предлагаемыми исправлениями, где это возможно.

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

Note

GitHub Copilot Autofix входит в лицензию для GitHub Advanced Security. Для проверки кода Copilot требуется платный план Copilot.

Анализ данных Code scanning

Если включен параметр code scanning, можно заблокировать слияние в важные ветви, если запрос на вытягивание не соответствует вашим требованиям, создав набор правил кода для предприятия или организации. Как правило, вам потребуется, чтобы результаты из code scanning присутствовали и разрешались все важные оповещения.

  • Тип набора правил: Branch.
  • Требовать code scanning результатов: включите блокировку объединения, пока результаты не будут успешно созданы для фиксации и ссылки на целевые объекты запроса на вытягивание.
  • Необходимые средства и пороговые значения оповещений: определите уровень оповещений, которые необходимо устранить перед объединением запроса на вытягивание для каждого используемого средства code scanning.

Как и во всех наборах правил, вы можете точно контролировать, какие организации (корпоративный уровень), репозитории и ветви он действует, а также определять роли или команды, которые могут обойти правило. Дополнительные сведения см. в разделе Сведения о наборе правил.

Просмотр зависимостей

Если для репозитория включены GitHub Advanced Security и граф зависимостей, файлы манифеста имеют форматированный представление дифф, в котором отображается сводка зависимостей, которые он добавляет или обновляет. Это полезная сводка для рецензентов запроса на вытягивание, но не предоставляет никакого контроля над тем, какие зависимости добавляются в базу кода.

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

  1. Создайте частный репозиторий, чтобы служить центральным домом, где можно хранить повторно используемые рабочие процессы для предприятия.
  2. Измените параметры действий для репозитория, чтобы разрешить всем частным репозиториям в организации доступ к рабочим процессам в этом центральном репозитории, см . раздел "Разрешение доступа к компонентам в частном репозитории".
  3. В центральном репозитории создайте повторно используемый рабочий процесс для выполнения действия проверки зависимостей, настраивая действие в соответствии с потребностями бизнеса, см . раздел AUTOTITLE.
  4. В каждой организации создайте или обновите наборы правил ветви, чтобы добавить новый рабочий процесс в обязательная проверка состояния, см. раздел AUTOTITLE.

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

Обзор Copilot

Note

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

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

Определите, где разрешено и включено Copilot Autofix

Copilot Autofix помогает разработчикам понять и исправить оповещения code scanning в запросах на вытягивание. Мы рекомендуем включить эту функцию для всех репозиториев, чтобы помочь разработчикам эффективно разрешать оповещения и повысить их понимание безопасного кода.

Существует два уровня управления:

Привлечение разработчиков к исправлению безопасности

Кампании по обеспечению безопасности позволяют группам безопасности взаимодействовать с разработчиками для устранения технического долга безопасности. Они также предоставляют практический способ объединения образования в безопасном коде с примерами уязвимого кода в коде, с которыми знакомы ваши разработчики. Дополнительные сведения см. в разделе [AUTOTITLE и О кампаниях безопасности](/code-security/securing-your-organization/fixing-security-alerts-at-scale/best-practice-fix-alerts-at-scale).

Обеспечение безопасной среды разработки

Среда разработки имеет множество компонентов. Ниже приведены некоторые из наиболее полезных функций масштабирования и стандартизации безопасной среды разработки в GitHub :

  • Конфигурации безопасности: определите настройку функций безопасности для предприятия, организации, подмножества репозиториев организации или новых репозиториев, см. статью "Уточнение конфигураций безопасности".
  • Политики: защита и управление использованием ресурсов для предприятия или организации см. в разделе Применение политик для предприятия.
  • Наборы правил: защита и управление ветвями, тегами и отправками для организации, подмножества репозиториев организации или репозитория, см . раздел AUTOTITLE.
  • Шаблоны репозитория: определение рабочих процессов безопасности и процессов, необходимых для каждого типа среды, см. в разделе Создание репозитория шаблонов. Например, каждый шаблон может содержать специализированный:
    • Файл политики безопасности, определяющий позицию безопасности компании и как сообщать о любых проблемах безопасности.
    • Рабочий процесс для включения Dependabot version updates для менеджеров пакетов, используемых компанией.
    • Рабочий процесс, определяющий расширенную настройку для code scanning для поддерживаемых языков разработки, в которых результаты установки по умолчанию недостаточно.

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

Следующие шаги

Завершив изучение этих параметров и функций secret scanning, вы готовы протестировать свои открытия до сих пор в соответствии с вашими бизнес-потребностями, а затем изучить дополнительные сведения.

Дополнительные материалы