1
0
mirror of synced 2026-01-05 03:06:35 -05:00
Files
docs/translations/ru-RU/content/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/about-code-scanning-alerts.md
2022-12-13 17:09:01 +00:00

21 KiB
Raw Blame History

title, intro, product, versions, type, topics, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
title intro product versions type topics ms.openlocfilehash ms.sourcegitcommit ms.translationtype ms.contentlocale ms.lasthandoff ms.locfileid
О предупреждениях о сканировании кода Сведения о различных типах оповещений проверки кода и сведениях, которые помогут понять, на какую проблему указывает конкретное оповещение. {% data reusables.gated-features.code-scanning %}
fpt ghes ghae ghec
* * * *
overview
Advanced Security
Code scanning
CodeQL
1e540aa8b061e0bbdd5b7be1a2563cd983cfb753 fb047f9450 HT ru-RU 09/11/2022 147881230

{% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %}

О предупреждениях от {% data variables.product.prodname_code_scanning %}

Вы можете настроить {% data variables.product.prodname_code_scanning %} для проверки кода в репозитории, используя анализ {% data variables.product.prodname_codeql %} по умолчанию, сторонний анализ или несколько типов анализа. По завершении анализа полученные предупреждения отображаются рядом друг с другом в представлении безопасности репозитория. Результаты из сторонних инструментов или пользовательских запросов могут содержать не все свойства, которые отображаются для предупреждений, обнаруженных в ходе анализа {% data variables.product.prodname_codeql %} по умолчанию в {% data variables.product.company_short %}. Дополнительные сведения см. в статье Настройка функции {% data variables.product.prodname_code_scanning %} для репозитория.

По умолчанию {% data variables.product.prodname_code_scanning %} периодически анализирует ваш код в ветке по умолчанию и во время запросов на вытягивание. Сведения об управлении предупреждениями в запросах на вытягивание см. в статье Сортировка предупреждений {% data variables.product.prodname_code_scanning %} в запросах на вытягивание.

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

Каждое предупреждение указывает на проблему с кодом и названием инструмента, который ее выявил. Вы можете просмотреть строку кода, вызвавшую оповещение, а также свойства оповещения, такие как серьезность, уровень серьезности в системе безопасности и характер проблемы. В предупреждениях также сообщается, когда впервые появилась проблема. В предупреждениях, выявленных с помощью анализа {% data variables.product.prodname_codeql %}, также отображаются сведения о том, как устранить проблему.

{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6249 %} {% data reusables.code-scanning.alert-default-branch %} {% endif %}

{% ifversion fpt or ghec or ghes > 3.4 or ghae-issue-6249 %} Пример предупреждения от {% data variables.product.prodname_code_scanning %} {% else %} Пример предупреждения от {% data variables.product.prodname_code_scanning %} {% endif %}

Если {% data variables.product.prodname_code_scanning %} настроен с помощью {% data variables.product.prodname_codeql %}, вы также можете обнаружить проблемы с потоком данных в своем коде. В ходе анализа потока данных обнаруживаются потенциальные проблемы безопасности в коде, такие как небезопасное использование данных, передача опасных аргументов функциям и утечка конфиденциальной информации.

Когда {% data variables.product.prodname_code_scanning %} сообщает о предупреждениях потока данных, {% data variables.product.prodname_dotcom %} показывает, как данные перемещаются по коду. {% data variables.product.prodname_code_scanning_capc %} позволяет определить области вашего кода, в которых происходит утечка конфиденциальной информации и которые могут быть точкой входа для атак злоумышленников.

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

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

Если {% data variables.product.prodname_code_scanning %} включен как проверка запроса на вытягивание, проверка завершится ошибкой, если обнаружатся какие-либо результаты с серьезностью уровня error. Вы можете указать, при каком уровне серьезности оповещений о проверке кода будет возникать сбой проверки. Дополнительные сведения см. в разделе Определение уровней серьезности, при которых возникает сбой проверки запроса на вытягивание.

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

{% data variables.product.prodname_code_scanning_capc %} отображает уровни серьезности в системе безопасности для предупреждений, генерируемых запросами безопасности. Возможные уровни серьезности в системе безопасности: Critical, High, Medium или Low.

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

По умолчанию любые результаты {% data variables.product.prodname_code_scanning %} с уровнем серьезности безопасности Critical или High приведут к сбою проверки. Вы можете указать, какой уровень серьезности безопасности для результатов {% data variables.product.prodname_code_scanning %} должен вызывать сбой проверки. Дополнительные сведения см. в разделе Определение уровней серьезности, при которых возникает сбой проверки запроса на вытягивание.

{% ifversion fpt or ghes > 3.4 or ghae-issue-6251 or ghec %}

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

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

При использовании нескольких конфигураций для анализа файла любые проблемы, обнаруженные одним и тем же запросом, сообщаются как предупреждения с несколькими источниками анализа. Если предупреждение имеет несколько источников анализа, значок {% octicon "workflow" aria-label="The workflow icon" %} появится рядом с любой соответствующей ветвью в разделе Затронутые ветви в правой части страницы предупреждения. Вы можете навести указатель мыши на значок {% octicon "workflow" aria-label="The workflow icon" %}, чтобы увидеть имена каждого источника анализа и статус предупреждения для этого источника анализа. В каждом источнике анализа на временной шкале на странице предупреждений можно просмотреть историю появления предупреждений. Если предупреждение имеет только один источник анализа, информация об источниках анализа не будет отображаться на странице предупреждения.

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

{% note %}

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

{% endnote %}

{% endif %}

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

{% data variables.product.product_name %} присваивает метку категории предупреждениям, которых нет в коде приложения. Метка относится к расположению предупреждения.

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

{% data variables.product.prodname_code_scanning_capc %} классифицирует файлы по пути к файлу. Исходные файлы невозможно классифицировать вручную.

Вот пример из списка предупреждений {% data variables.product.prodname_code_scanning %} предупреждения, помеченного как возникающее в коде библиотеки.

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

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

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

{% ifversion codeql-ml-queries %}

Об экспериментальных предупреждениях

{% data reusables.code-scanning.beta-codeql-ml-queries %}

В репозиториях, запускающих {% data variables.product.prodname_code_scanning %} с помощью действия {% data variables.product.prodname_codeql %}, вы можете увидеть некоторые предупреждения, помеченные как экспериментальные. Это предупреждения, обнаруженные с помощью модели машинного обучения для расширения возможностей имеющегося запроса {% data variables.product.prodname_codeql %}.

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

Преимущества использования моделей машинного обучения для расширения запросов

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

Каждый из запросов безопасности для {% data variables.product.prodname_codeql %} идентифицирует код, уязвимый для определенного типа атаки. Исследователи безопасности пишут запросы и включают наиболее распространенные платформы и библиотеки. Таким образом, каждый имеющийся запрос находит уязвимые варианты использования стандартных платформ и библиотек. Однако разработчики используют множество различных платформ и библиотек, и поддерживаемый вручную запрос не может включать их всех. Следовательно, поддерживаемые вручную запросы не охватывают все платформы и библиотеки.

{% data variables.product.prodname_codeql %} использует модель машинного обучения, чтобы расширить имеющийся запрос безопасности, чтобы охватить более широкий спектр платформ и библиотек. Модель машинного обучения обучена обнаруживать проблемы в коде, которых раньше не было. Запросы, использующие модель, найдут результаты для платформ и библиотек, не описанные в исходном запросе.

Предупреждения, определенные с помощью машинного обучения

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

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

Включение экспериментальных предупреждений

Наборы запросов {% data variables.product.prodname_codeql %} по умолчанию не включают запросы, использующие машинное обучение для создания экспериментальных предупреждений. Чтобы выполнять запросы машинного обучения во время {% data variables.product.prodname_code_scanning %}, вам необходимо выполнить дополнительные запросы, содержащиеся в одном из следующих наборов запросов.

{% data reusables.code-scanning.codeql-query-suites %}

Когда вы обновляете свой рабочий процесс для запуска дополнительного набора запросов, это увеличивает время анализа.

- uses: {% data reusables.actions.action-codeql-action-init %}
  with:
    # Run extended queries including queries using machine learning
    queries: security-extended

Дополнительные сведения см. в статье Настройка сканирования кода для Управляемого экземпляра Базы данных SQL Azure.

Отключение экспериментальных предупреждений

Самый простой способ отключить запросы, использующие машинное обучение для создания экспериментальных предупреждений — прекратить выполнение набора запросов security-extended или security-and-quality. В приведенном выше примере вы закомментируете строку queries. Если вам необходимо продолжить работу с набором тестов security-extended или security-and-quality, а запросы машинного обучения вызывают проблемы, можно отправить запрос в службу поддержки {% data variables.product.company_short %} с помощью следующих сведений.

  • Заголовок запроса: "{% data variables.product.prodname_code_scanning %}: удаление из бета-версии экспериментальных предупреждений"
  • Укажите сведения о затронутых репозиториях или организациях
  • Запросить эскалацию в группу инженеров

{% endif %}