{"meta":{"title":"Сканирование кода с помощью CodeQL","intro":"Вы можете использовать CodeQL их для выявления уязвимостей и ошибок в вашем коде. Результаты отображаются в виде code scanning оповещений в GitHub.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/concepts","title":"Concepts"},{"href":"/ru/code-security/concepts/code-scanning","title":"Проверка кода"},{"href":"/ru/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/ru/code-security/concepts/code-scanning/codeql/codeql-code-scanning","title":"Сканирование кода CodeQL"}],"documentType":"article"},"body":"# Сканирование кода с помощью CodeQL\n\nВы можете использовать CodeQL их для выявления уязвимостей и ошибок в вашем коде. Результаты отображаются в виде code scanning оповещений в GitHub.\n\nCodeQL — это система анализа кода, разработанная GitHub для автоматизации проверок безопасности. Код можно проанализировать, используя CodeQL, и отобразить результаты в виде оповещений code scanning.\n\nСуществует три основных способа использования CodeQL анализа для code scanning:\n\n* Используйте настройки по умолчанию для быстрой настройки CodeQL анализа на code scanning вашем репозитории. Настройка по умолчанию автоматически выбирает языки для анализа, набора запросов для выполнения и событий, которые активируют сканирование. Если вы предпочитаете, можно вручную выбрать набор запросов для выполнения и анализа языков. После включения CodeQLбудет GitHub Actions выполнен запуск рабочих процессов для сканирования кода. Дополнительные сведения см. в разделе [Настройка настройки по умолчанию для сканирования кода](/ru/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning).\n\n* Используйте расширенную настройки, чтобы добавить CodeQL рабочий процесс в репозиторий. Это генерирует настраиваемый файл рабочего процесса, который использует [github/codeql-action](https://github.com/github/codeql-action/) для запуска CodeQL CLI. Дополнительные сведения см. в разделе [Настройка расширенной настройки для сканирования кода](/ru/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning#configuring-advanced-setup-for-code-scanning-with-codeql).\n\n* Запустите CodeQL CLI его напрямую во внешней CI-системе и загрузите результаты в GitHub. Дополнительные сведения см. в разделе [Использование сканирования кода с существующей системой CI](/ru/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system).\n\nДля информации о code scanning оповещениях см. [Оповещения о проверке кода](/ru/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts).\n\n## Около CodeQL\n\nCodeQL — это язык программирования и связанные с ним инструменты, которые воспринимают код как данные. Он был создан явным образом, чтобы упростить анализ кода и найти потенциальные уязвимости в коде с большей уверенностью, чем традиционные статические анализаторы.\n\n1. Вы создаёте CodeQL базу данных, чтобы представить вашу кодовую базу.\n2. Затем вы запускаете CodeQL запросы к этой базе данных, чтобы выявить проблемы в коде.\n3. Результаты запроса отображаются в виде code scanning оповещений в GitHub , когда вы используете CodeQL с code scanning.\n\nCodeQL поддерживает как скомпилированные, так и интерпретируемые языки, а также может находить уязвимости и ошибки в коде, написанном на поддерживаемых языках.\n\nCodeQL Поддерживает следующие языки:\n\n<!-- If you update the list of supported languages for CodeQL, update docs-internal/content/get-started/learning-about-github/github-language-support.md to reflect the changes. -->\n\n* C/C++\n* C#\n* Go\n* Java и Kotlin\n* JavaScript/TypeScript\n* Python\n* Ruby\n* Rust\n* Swift \\* GitHub Actions рабочих процессов\n\n> \\[!NOTE]\n>\n> * Используется `java-kotlin` для анализа кода, написанного на Java, Kotlin или обоих.\n> * Используется `javascript-typescript` для анализа кода, написанного на JavaScript, TypeScript или обоих.\n\nДополнительные сведения см. в документации на веб-сайте CodeQL: [поддерживаемые языки и платформы](https://codeql.github.com/docs/codeql-overview/supported-languages-and-frameworks/).\n\n> \\[!IMPORTANT]\n> CodeQL**не поддерживает** языки, не перечисленные выше. Это включает в себя, но не ограничивается, **PHP**, **Scala** и т. д. Попытка использовать CodeQL с неподдерживаемыми языками может привести к отсутствию оповещений и неполному анализу.\n\n## Моделирование пользовательских или нишевых платформ\n\nGitHub Эксперты, исследователи безопасности и участники сообщества пишут библиотеки для моделирования потока данных в популярных фреймворках и библиотеках. Если вы используете пользовательские зависимости, которые не моделируемы, то можно использовать CodeQL расширение для Visual Studio Code создания моделей для этих зависимостей и расширения анализа. Дополнительные сведения см. в разделе [Использование редактора моделей CodeQL](/ru/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/using-the-codeql-model-editor).\n\n## запросы CodeQL\n\nGitHub Эксперты, исследователи безопасности и участники сообщества пишут и поддерживают стандартные CodeQL запросы, используемые для code scanning. Запросы регулярно обновляются для улучшения анализа и снижения количества ложноположительных результатов.\n\n### Написание собственных запросов\n\nЗапросы открытый код, поэтому вы можете просматривать и вносить вклад в запросы в репозитории [github/codeql](https://github.com/github/codeql). Для получения дополнительной информации смотрите [раздел «О CodeQL запросах](https://codeql.github.com/docs/writing-codeql-queries/about-codeql-queries/) » в CodeQL документации.\n\n### Выполнение дополнительных запросов\n\nЕсли вы сканируете код с помощью расширенной установки или внешней системы CI, вы можете выполнять дополнительные запросы в рамках анализа.\n\nЭти запросы должны принадлежать опубликованному CodeQL пакету запросов или пакету CodeQL в репозитории.\n\n* Когда CodeQL пакет запросов публикуется в GitHubContainer registry, все транзитивные зависимости, необходимые для запросов и компиляционного кэша, включаются в пакет. Это повышает производительность и гарантирует, что выполнение запросов в пакете дает одинаковые результаты при каждом обновлении до новой версии пакета или CLI.\n\n* CodeQL Пакеты запросов можно скачивать из нескольких GitHub реестров контейнеров. Дополнительные сведения см. в разделе [Параметры настройки рабочих процессов для сканирования кода](/ru/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning#downloading-codeql-packs-from-github-enterprise-server).\n\nДополнительные сведения см. в разделе [Настройка анализа с помощью пакетов CodeQL](/ru/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs)."}