Примечание.
Администратор сайта должен включить code scanning перед использованием этой функции. Дополнительные сведения см. в разделе Настройка сканирования кода для устройства.
Возможно, вы не сможете включить или отключить code scanning, если владелец предприятия установил политику GitHub Advanced Security на уровне предприятия. Дополнительные сведения см. в разделе Применение политик безопасности кода и анализа для вашего предприятия.
О предупреждениях от code scanning
Вы можете настроить code scanning проверку кода в репозитории, используя стандартный CodeQL анализ, сторонний анализ или несколько типов анализа. По завершении анализа полученные предупреждения отображаются рядом друг с другом в представлении безопасности репозитория. Результаты сторонних инструментов или пользовательских запросов могут не включать все свойства, которые вы видите для оповещений, обнаруженных по GitHubумолчанию CodeQL в анализе. Дополнительные сведения см. в разделе [AUTOTITLE и Настройка настройки по умолчанию для сканирования кода](/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning).
По умолчанию code scanning он периодически анализирует ваш код на ветке по умолчанию и во время pull request. Сведения об управлении оповещениями в запросе на вытягивание см. в разделе Рассмотрение оповещений проверки кода в запросах на вытягивание.
Для code scanning получения оповещений из CodeQL анализа вы можете использовать обзор безопасности, чтобы увидеть, как CodeQL работает pull request в репозиториях вашей организации, а также определить репозитории, где может понадобиться действия. Дополнительные сведения см. в разделе Метрики оповещений о pull request в CodeQL.
Вы можете проверить действия, выполненные в ответ на оповещения code scanning с помощью средств GitHub. Дополнительные сведения см. в разделе Аудит оповещений системы безопасности.
О деталях предупреждения
Каждое предупреждение указывает на проблему с кодом и названием инструмента, который ее выявил. Вы можете просмотреть строку кода, вызвавшую оповещение, а также свойства оповещения, такие как серьезность, уровень серьезности в системе безопасности и характер проблемы. В предупреждениях также сообщается, когда впервые появилась проблема. Для оповещений, выявленных в ходе CodeQL анализа, вы также увидите информацию о том, как решить проблему.
Состояние и сведения на странице оповещений отражают состояние оповещения только в ветви репозитория по умолчанию, даже если это оповещение существует в других ветвях. Состояние оповещения в ветвях, не являющихся ветвью по умолчанию, отображается в разделе Затронутые ветви в правой части страницы оповещений. Если оповещение не существует в ветви по умолчанию, его состояние оповещения отображается как "в запросе на вытягивание" или "в ветки" и выделяется серым цветом. В разделе "Разработка " показаны связанные ветви и запросы на вытягивание, которые исправят оповещение.

Если вы настроите code scanning с CodeQLпомощью , вы также можете найти проблемы с потоками данных в вашем коде. В ходе анализа потока данных обнаруживаются потенциальные проблемы безопасности в коде, такие как небезопасное использование данных, передача опасных аргументов функциям и утечка конфиденциальной информации.
Когда code scanning сообщает о оповещениях о потоке данных, GitHub показывает, как данные проходят через код. Code scanning Позволяет выявлять участки кода, из которых просочивается чувствительная информация, и это может стать точкой входа для атак со стороны злоумышленников.
Сведения об оповещениях из нескольких конфигураций
Вы можете выполнять несколько конфигураций анализа кода в репозитории, используя различные средства и предназначенные для разных языков или областей кода. Каждая конфигурация генерирует code scanning уникальный набор оповещений. Например, оповещение, сгенерированное с использованием стандартного CodeQL анализа GitHub Actions , происходит из другой конфигурации, чем оповещение, сгенерированное извне и загруженное через code scanning API.
При использовании нескольких конфигураций для анализа файла все проблемы, обнаруженные тем же запросом, передаются в виде оповещений, создаваемых несколькими конфигурациями. Если оповещение существует в нескольких конфигурациях, число конфигураций отображается рядом с именем ветви в разделе "Затронутые ветви" в правой части страницы оповещения. Чтобы просмотреть конфигурации для оповещения, в разделе "Затронутые ветви" щелкните ветвь. Модал "Конфигурации анализа" отображается с именами каждой конфигурации, создающей оповещение для этой ветви. Под каждой конфигурацией можно увидеть, когда оповещение этой конфигурации было обновлено в последний раз.
Оповещение может отображать разные состояния из разных конфигураций. Чтобы обновить состояния оповещений, повторно выполните каждую устаревшую конфигурацию. Кроме того, можно удалить устаревшие конфигурации из ветви, чтобы удалить устаревшие оповещения. Дополнительные сведения об удалении устаревших конфигураций и оповещений см. в разделе Разрешение оповещений сканирования кода.
О метках для предупреждений, которых нет в коде приложения
GitHub присваивает метку категории оповещениям, которые отсутствуют в коде приложения. Метка относится к расположению предупреждения.
-
Сгенерировано: код, сгенерированный в процессе сборки.
-
Тестирование: тестовый код.
-
Библиотека: библиотека или сторонний код.
-
Документация: документация.
Code scanning Классифицирует файлы по пути к файлу. Исходные файлы невозможно классифицировать вручную.
В этом примере оповещение помечается как в коде «Тест» в списке code scanning оповещений.

Щелкнув подробные сведения об оповещении, вы увидите, что путь к файлу помечается как тестовый код.

Сведения о уровнях серьезности оповещений и уровнях серьезности безопасности
Уровень серьёзности code scanning оповещения показывает, насколько риск проблема добавляет в вашу кодовую базу.
-
**Серьезность.** Все code scanning оповещения имеют уровень `Error`, `Warning`или `Note`. -
**Серьезность безопасности.** Каждое оповещение безопасности, обнаруженное при использованииCodeQL, также имеет уровень тяжести безопасности , `Critical``High`, `Medium`или `Low`.
Когда уведомление имеет уровень серьёзности безопасности, code scanning отображается и использует этот уровень в предпочтении по сравнению severityс . Уровни серьёзности безопасности следуют отраслевому стандарту Common Vulnerability Scoring System (CVSS), которая также используется для консультаций в GitHub Advisory Database. Дополнительные сведения см. в разделе CVSS: качественный масштаб оценки серьезности.
Вычисление уровней серьезности безопасности
Когда запрос на безопасность добавляется в CodeQL набор запросов по умолчанию или расширенный, CodeQL инженерная команда рассчитывает степень угрозы безопасности следующим образом.
- Выполните поиск всех CVEs, назначенных одному или нескольким тегам CWE, связанным с новым запросом безопасности.
- Вычислите 75-й процентиль оценки CVSS для этих CVEs.
- Определите этот показатель как серьезность безопасности для запроса.
- При отображении оповещений, найденных запросом, преобразуйте числовые оценки
Criticalв ,High``MediumилиLowс помощью определений CVSS.
Для получения дополнительной информации смотрите CodeQL обзор CWE на CodeQL сайте документации.
О оповещениях в pull requests
Code scanning Оповещения могут появляться в pull-запросах как результаты проверок и аннотации. Это происходит в репозиториях, где code scanning либо:
- Настроена как проверка pull request (по умолчанию ограничена pull request, которые нацелены на стандартную ветку)
- Настроена на сканирование при каждом отправке кода (результаты отображаются с любыми открытыми pull requests)
Вы увидите оповещение в pull-запросе только если все строки кода, идентифицированные в оповещении, существуют в дифференциаце pull-запроса.
В зависимости от правил защиты ветвей, проверка «Code scanning результаты» может быть обязательной проверкой, которая не позволяет объединять pull requests до их прохождения.