Skip to main content

Настройка сканирования кода для устройства

Вы можете включить, настроить и отключить code scanning для GitHub Enterprise Server. Code scanning позволяет пользователям проверять код на наличие уязвимостей и ошибок.

Кто может использовать эту функцию?

Репозитории, принадлежащие организации, с включенными GitHub Advanced Security

Сведения о code scanning

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

Вы можете настроить code scanning для выполнения анализа CodeQL, а также стороннего анализа. Code scanning также поддерживает собственный анализ с помощью GitHub Actions или внешней инфраструктуры CI/CD. Приведенные ниже маркеры суммируют параметры, доступные пользователям при настройке экземпляр GitHub Enterprise Server для разрешения code scanning с помощью действий.

  • CodeQL: использует GitHub Actions с настройкой по умолчанию (см[. "AUTOTITLE") или расширенную настройку (см[. "AUTOTITLE") или выполняет анализ CodeQL в сторонней системе непрерывной интеграции (CI) (см. "AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)](/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system)").
  • Третий&8209; сторона: использует GitHub Actions или сторонние средства и отправляет результаты в GitHub Enterprise Server (см. "Отправка файла SARIF в GitHub").

Проверка того, включает ли ваша лицензия GitHub Advanced Security

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

Предварительные требования для code scanning

Выполнение code scanning с помощью GitHub Actions

Подготовка локального runner

GitHub Enterprise Server может запускать code scanning с помощью рабочего процесса GitHub Actions. Во-первых, необходимо подготовить одно или несколько локальных средств выполнения GitHub Actions в вашей среде. Вы можете предоставить локальные средства выполнения на уровне репозитория, организации или корпоративной учетной записи. См. раздел "[AUTOTITLE" и "О самостоятельно размещенных средствах выполнения](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners)".

Если вы подготавливаете локальное средство выполнения для анализа CodeQL, средство выполнения должно использовать версию операционной системы с поддержкой CodeQL, поддерживаемую версией операционной системы и архитектурой ЦП. См. требования к системе CodeQL.

Если вы используете настройку по умолчанию для code scanning, назначьте code-scanning метку локальному средству выполнения. Дополнительные сведения об использовании меток с локальными средствами выполнения см. в разделе "Использование меток с самостоятельно размещенными средствами выполнения". Дополнительные сведения об использовании настройки по умолчанию для сканирования кода скомпилированных языков см. в разделе "Сканирование кода CodeQL для скомпилированных языков".

Необходимо убедиться, что GIT находится в переменной PATH для любых локальных средств выполнения, которые используются для выполнения действий CodeQL.

Подготовка масштабируемого набора runner

Вы можете использовать Actions Runner Controller для создания выделенного масштабируемого набора runner для экземпляра GitHub Enterprise Server . См. раздел "Развертывание масштабируемых наборов runner с помощью контроллера runner Actions".

Подготовка действий для code scanning

Если вы хотите использовать действия для выполнения code scanning на GitHub Enterprise Server, эти действия должны быть доступны на устройстве.

Действие CodeQL включается в установку GitHub Enterprise Server. Если оба GitHub Enterprise Server 3.14 и средство выполнения GitHub Actions имеют доступ к Интернету, действие автоматически скачивает пакет CodeQL 2.17.6 для выполнения анализа. Кроме того, можно использовать средство синхронизации, чтобы сделать локально доступной последнюю версию пакета анализа CodeQL. См. раздел "Настройка анализа данных CodeQL на сервере без доступа к Интернету" ниже.

Вы также можете сделать сторонние действия доступными пользователям для code scanning, настроив GitHub Connect. См. раздел "Настройка сканирования кода для устройства" ниже.

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

Если сервер, на котором выполняется GitHub Enterprise Server, не подключен к Интернету и вы хотите разрешить пользователям включать CodeQL code scanning для своих репозиториев, необходимо использовать средство синхронизации действий CodeQL для копирования пакета анализа CodeQL из GitHub.com на ваш сервер. Средство и сведения о его использовании доступны по адресу https://github.com/github/codeql-action-sync-tool.

Если настроить средство синхронизации действий CodeQL, его можно использовать для синхронизации последних выпусков действия CodeQL и связанного пакета анализа CodeQL. Они совместимы с GitHub Enterprise Server.

Настройка GitHub Connect для синхронизации GitHub Actions

  1. Если вы хотите скачать рабочие процессы действий по запросу из GitHub.com, необходимо включить GitHub Connect. См. раздел "Включение GitHub Connect для GitHub.com".
  2. Кроме того, необходимо включить GitHub Actions. См. раздел "Начало работы с GitHub Actions для сервера GitHub Enterprise".
  3. Следующим шагом является настройка доступа к действиям в GitHub.com с помощью GitHub Connect. См. раздел "Включение автоматического доступа к действиям GitHub.com с помощью GitHub Connect".
  4. Добавьте локальное средство выполнения в репозиторий, организацию или корпоративную учетную запись. См. раздел "Добавление локальных средств выполнения".

Выполнение сканирования кода с помощью CodeQL CLI

Если вы не хотите использовать GitHub Actions, необходимо запустить code scanning с помощью CodeQL CLI.

CodeQL CLI — это инструмент командной строки, который используется для анализа баз кода на любом компьютере, включая стороннюю систему CI/CD. См. раздел "Использование сканирования кода с существующей системой CI".