Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

О предупреждениях о сканировании кода

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

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

Примечание: Администратор сайта должен включить code scanning для your GitHub Enterprise Server instance, прежде чем вы сможете использовать эту функцию. Дополнительные сведения см. в разделе Настройка code scanning для устройства.

О предупреждениях от code scanning

Вы можете настроить code scanning для проверки кода в репозитории с помощью анализа по умолчанию CodeQL, стороннего анализа или нескольких типов анализа. По завершении анализа полученные предупреждения отображаются рядом друг с другом в представлении безопасности репозитория. Результаты из сторонних инструментов или пользовательских запросов могут содержать не все свойства, которые отображаются для предупреждений, обнаруженных в ходе анализа CodeQL по умолчанию в GitHub. Дополнительные сведения см. в разделе Настройка code scanning для репозитория.

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

О деталях предупреждения

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

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

 Пример оповещения от code scanning

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

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

Об уровнях серьезности

Возможные уровни серьезности предупреждения: Error, Warning или Note.

Если code scanning включен как проверка запроса на вытягивание, проверка завершится ошибкой, если обнаружатся какие-либо результаты с серьезностью уровня error. Вы можете указать, при каком уровне серьезности оповещений о проверке кода будет возникать сбой проверки. Дополнительные сведения см. в разделе Настройка code scanning.

Об уровнях серьезности в системе безопасности

Code scanning отображает уровни серьезности в системе безопасности для предупреждений, генерируемых запросами безопасности. Возможные уровни серьезности в системе безопасности: Critical, High, Medium или Low.

Чтобы рассчитать серьезность предупреждения для безопасности, мы используем данные системы оценки уязвимостей Common Vulnerability Scoring System (CVSS). CVSS — это открытая платформа для передачи характеристик и серьезности уязвимостей программного обеспечения, которая обычно используется другими продуктами безопасности для оценки предупреждений. Дополнительные сведения о том, как рассчитываются уровни серьезности, см. в этой записи блога.

По умолчанию любые результаты code scanning с уровнем серьезности безопасности Critical или High приведут к сбою проверки. Вы можете указать, какой уровень серьезности безопасности для результатов code scanning должен вызывать сбой проверки. Дополнительные сведения см. в разделе Настройка code scanning.

Сведения об источниках анализа

Вы можете выполнять несколько конфигураций анализа кода в репозитории, используя различные средства и ориентируясь на разные языки или области кода. Каждая конфигурация сканирования кода является источником анализа для всех генерируемых ею предупреждений. Например, предупреждение, созданное с использованием анализа CodeQL по умолчанию с GitHub Actions, будет иметь источник анализа, отличный от источника предупреждения, созданного с помощью внешних средств и переданного через API сканирования кода.

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

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

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

О метках для предупреждений, которых нет в коде приложения

GitHub Enterprise Server присваивает метку категории предупреждениям, которых нет в коде приложения. Метка относится к расположению предупреждения.

  • Сгенерировано: код, сгенерированный в процессе сборки.
  • Тестирование: тестовый код.
  • Библиотека: библиотека или сторонний код.
  • Документация: документация.

Code scanning классифицирует файлы по пути к файлу. Исходные файлы невозможно классифицировать вручную.

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

Предупреждение библиотеки сканирования кода в списке

На странице предупреждения видно, что путь к файлу помечен как код библиотеки (метка Library).

Сведения об предупреждении библиотеки сканирования кода