Skip to main content

Изучение потока данных с помощью запросов пути

Запросы CodeQL можно выполнять в Visual Studio Code для отслеживания потока данных через программу, выделения областей, которые являются потенциальными уязвимостями безопасности.

Сведения о запросах пути

Запрос пути — это запрос CodeQL с свойством @kind path-problem. Их можно найти в стандартных библиотеках CodeQL .

Вы можете выполнять стандартные запросы пути CodeQL для выявления уязвимостей системы безопасности и просмотра результатов вручную. Дополнительные сведения о том, как CodeQL отслеживает поток данных, см. в разделе "Сведения о анализе потока данных" в документации по CodeQL.

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

Выполнение запросов пути в локальном режиме VS Code

  1. Откройте запрос пути в VS Code.
  2. Щелкните правой кнопкой мыши окно с открытым запросом и выберите CodeQL: выполните запрос в выбранной базе данных. Кроме того, его можно запустить из VS Code Command Palette.
  3. После завершения выполнения запроса вы увидите результаты в представлении "Результаты" (в alerts раскрывающемся меню). Каждый результат запроса описывает поток информации между источником и приемником.
  4. Разверните результат, чтобы просмотреть отдельные шаги, которые следует выполнить данным.
  5. Щелкните каждый шаг, чтобы перейти к нему в исходном коде и изучить проблему дальше.

Следующие шаги

Когда вы готовы выполнить запрос пути в масштабе, можно использовать представление "Репозитории анализа вариантов" для выполнения запроса до 1000 репозиториев на GitHub.com. Дополнительные сведения см. в разделе Выполнение запросов CodeQL в масштабе с помощью анализа вариантов с несколькими репозиториями.

Сведения о том, как использовать правильный формат и метаданные для собственных запросов пути, см. в разделе "Создание запросов пути" в документации CodeQL. Документация по CodeQL также содержит подробные сведения о том, как определить новые источники и приемники, а также шаблоны и примеры расширения стандартных библиотек CodeQL для анализа.