Примечание: Администратор сайта должен включить code scanning для экземпляр GitHub Enterprise Server, прежде чем вы сможете использовать эту функцию. Дополнительные сведения см. в разделе Настройка сканирования кода на устройстве.
О предупреждениях от code scanning
Вы можете настроить code scanning для проверки кода в репозитории с помощью анализа по умолчанию CodeQL, стороннего анализа или нескольких типов анализа. По завершении анализа полученные предупреждения отображаются рядом друг с другом в представлении безопасности репозитория. Результаты из сторонних инструментов или пользовательских запросов могут содержать не все свойства, которые отображаются для предупреждений, обнаруженных в ходе анализа CodeQL по умолчанию в GitHub. Дополнительные сведения см. в разделе Настройка проверки кода для репозитория.
По умолчанию code scanning периодически анализирует ваш код в ветке по умолчанию и во время запросов на вытягивание. Сведения об управлении оповещениями в запросе на вытягивание см. в разделе Рассмотрение оповещений проверки кода в запросах на вытягивание.
You can audit the actions taken in response to code scanning alerts using GitHub tools. For more information, see "Аудит оповещений системы безопасности."
О деталях предупреждения
Каждое предупреждение указывает на проблему с кодом и названием инструмента, который ее выявил. Вы можете просмотреть строку кода, вызвавшую оповещение, а также свойства оповещения, такие как серьезность, уровень серьезности в системе безопасности и характер проблемы. В предупреждениях также сообщается, когда впервые появилась проблема. В предупреждениях, выявленных с помощью анализа CodeQL, также отображаются сведения о том, как устранить проблему.
Состояние и сведения на странице оповещений отражают состояние оповещения только в ветви репозитория по умолчанию, даже если это оповещение существует в других ветвях. Состояние оповещения в ветвях, не являющихся ветвью по умолчанию, отображается в разделе Затронутые ветви в правой части страницы оповещений. Если оповещение не существует в ветви по умолчанию, его состояние оповещения отображается как "в запросе на вытягивание" или "в ветки" и выделяется серым цветом.
Если вы настроите code scanning с помощью CodeQL, вы также можете найти проблемы потока данных в коде. В ходе анализа потока данных обнаруживаются потенциальные проблемы безопасности в коде, такие как небезопасное использование данных, передача опасных аргументов функциям и утечка конфиденциальной информации.
Когда code scanning сообщает о предупреждениях потока данных, GitHub показывает, как данные перемещаются по коду. позволяет определить области вашего кода, в которых происходит утечка конфиденциальной информации и которые могут быть точкой входа для атак злоумышленников.
Об уровнях серьезности
Возможные уровни серьезности предупреждения: Error
, Warning
или Note
.
Если code scanning включен как проверка запроса на вытягивание, проверка завершится ошибкой, если обнаружатся какие-либо результаты с серьезностью уровня error
. Вы можете указать, при каком уровне серьезности оповещений о проверке кода будет возникать сбой проверки. Дополнительные сведения см. в разделе Настройка сканирования кода.
Об уровнях серьезности в системе безопасности
отображает уровни серьезности в системе безопасности для предупреждений, генерируемых запросами безопасности. Возможные уровни серьезности в системе безопасности: Critical
, High
, Medium
или Low
.
Чтобы рассчитать серьезность предупреждения для безопасности, мы используем данные системы оценки уязвимостей Common Vulnerability Scoring System (CVSS). CVSS — это открытая платформа для передачи характеристик и серьезности уязвимостей программного обеспечения, которая обычно используется другими продуктами безопасности для оценки предупреждений. Дополнительные сведения о том, как рассчитываются уровни серьезности, см. в этой записи блога.
По умолчанию любые результаты code scanning с уровнем серьезности безопасности Critical
или High
приведут к сбою проверки. Вы можете указать, какой уровень серьезности безопасности для результатов code scanning должен вызывать сбой проверки. Дополнительные сведения см. в разделе Настройка сканирования кода.
Сведения о источники анализа
Вы можете выполнять несколько конфигураций анализа кода в репозитории, используя различные средства и ориентируясь на разные языки или области кода. Каждая конфигурация code scanning является источником анализа для всех генерируемых предупреждений. Например, оповещение, созданное с помощью анализа по умолчанию CodeQL с GitHub Actions, будет иметь источник анализа, отличный от оповещения, созданного извне и отправленного через API code scanning.
При использовании нескольких конфигураций для анализа файла любые проблемы, обнаруженные одним и тем же запросом, сообщаются как предупреждения с несколькими источниками анализа. Если предупреждение имеет несколько источников анализа, значок появится рядом с любой соответствующей ветвью в разделе Затронутые ветви в правой части страницы предупреждения. Вы можете навести указатель мыши на значок , чтобы увидеть имена каждого источника анализа и статус предупреждения для этого источника анализа. В каждом источнике анализа на временной шкале на странице предупреждений можно просмотреть историю появления предупреждений. Если предупреждение имеет только один источник анализа, информация об источниках анализа не будет отображаться на странице предупреждения.
Примечание: Иногда оповещение code scanning отображается как фиксированное для одного источника анализа, но по-прежнему открыто для второго источника анализа. Вы можете устранить эту проблему, повторно запустив вторую конфигурацию code scanning, чтобы обновить состояние оповещения для этого источника анализа.
GitHub Enterprise Server присваивает метку категории предупреждениям, которых нет в коде приложения. Метка относится к расположению предупреждения.
-
Сгенерировано: код, сгенерированный в процессе сборки.
-
Тестирование: тестовый код.
-
Библиотека: библиотека или сторонний код.
-
Документация: документация.
классифицирует файлы по пути к файлу. Исходные файлы невозможно классифицировать вручную.
Вот пример из списка предупреждений code scanning предупреждения, помеченного как возникающее в коде библиотеки.
На странице предупреждения видно, что путь к файлу помечен как код библиотеки (метка Library
).