Примечание.
Сканирование ИИ в Публичный предварительный просмотр настоящее время находится и подлежит изменению.
Ai Scan создает дополнительные результаты безопасности с подсистемой сканирования на основе ИИ, которая выполняется при запросах CodeQLна вытягивание и дополняет. В отличие от CodeQL оповещений, результаты сканирования ИИ доступны только для запросов на вытягивание и не отображаются в представлении безопасности репозитория.
Хотя CodeQL предоставляет статический анализ высокой точности для определенного набора поддерживаемых языков и запросов, многие репозитории используют языки и платформы, которые CodeQL не охватываются. Ai Scan расширяет code scanning охват в этих областях, помогая находить уязвимости без добавления новых средств или конфигурации.
Публичный предварительный просмотрВо время сканирования ИИ требуется GitHub Advanced Security лицензия и GitHub Copilot лицензия.
Использование используется AI credits. См . раздел AUTOTITLE.
Как работает сканирование ИИ
Проверка ИИ выполняется автоматически при code scanning включении для репозитория, включена эффективная настройка сканирования ИИ репозитория, а соответствующий запрос на вытягивание содержит соответствующие изменения в поддерживаемом языке или платформе, которая CodeQL не охватывает. Эти условия также определяют, когда начинается использование сканирования ИИ. Проверка активируется при создании запроса на вытягивание и после каждой новой фиксации, аналогичной CodeQL.
Проверка ИИ не требует CodeQL настройки по умолчанию и не зависит от состояния CodeQL анализа. Если CodeQL анализ завершается ошибкой или находится в состоянии ожидания, сканирование ИИ по-прежнему будет выполняться.
Результаты проверки искусственного интеллекта являются советами и не блокируют слияние запросов на вытягивание. Они предоставляют сигналы о том, где можно улучшить безопасность кода, не прерывая рабочий процесс.
Модуль сканирования ИИ работает непосредственно с кодом в запросе на вытягивание и не требует системы сборки. В нем используются такие средства, как поиск кода, чтобы получить дополнительный контекст из репозитория при определении того, следует ли пометить проблему. Он использует собственные специализированные запросы и не использует пользовательские файлы инструкций, /.github/copilot-instructions.md например или /CLAUDE.md.
Результаты публикуются в запросе на вытягивание по мере их обнаружения. CodeQL Если сканирование занимает больше времени, вы можете увидеть результаты сканирования ИИ перед CodeQL отображением результатов или наоборот.
Как результаты сканирования ИИ отображаются в запросах на вытягивание
Результаты сканирования ИИ отображаются вместе с CodeQL оповещениями на **вкладках "**Беседа и файлы" запроса на вытягивание. Каждый поиск помечается индикатором искусственного интеллекта, чтобы отличить его от CodeQL оповещений.
Каждое обнаружение включает описание проблемы безопасности и объяснение риска. Большинство результатов также включают предлагаемое исправление, но не каждый поиск имеет один. Где доступно предлагаемое исправление, Copilot Autofix включается и предоставляет рекомендуемое изменение кода для устранения проблемы так же, как и для CodeQL оповещений. Результаты также включают в себя механизм обратной связи вверх и вниз, который помогает улучшить качество обнаружения с течением времени.
Limitations
- Ai Scan анализирует только запросы на вытягивание. Полные проверки репозитория не поддерживаются.
- Результаты сканирования ИИ пока не могут использоваться в наборе правил для принудительного применения требований слияния.
- Проверка ИИ не выполняется при запросах на вытягивание из вилок или запросов на вытягивание, созданных с помощью Dependabot.
- Категории обнаружения и поддерживаемые языки могут измениться по мере развития функции.
- Как и в случае с любым инструментом на основе ИИ, результаты сканирования ИИ могут включать ложные срабатывания. Используйте механизм обратной связи, чтобы сообщить о неточных результатах.
Поддерживаемые языки
Ai Scan предназначен для покрытия языков и платформ, которые в настоящее время не поддерживаются CodeQL. Это включает в себя, но не ограничивается такими языками, как PHP, Shell/Bash, конфигурация Terraform (HCL) и Dockerfiles, а также пробелы в охвате платформы, такие как JSP для Java и Blazor для C#.
Полный список языков, поддерживаемых CodeQLфункцией Сканирование кода с помощью CodeQL.
Категории обнаружения
В настоящее время сканирование ИИ охватывает следующие категории. Эти категории описывают, как классифицируются результаты. Модуль сканирования может развиваться по мере улучшения моделей.
- Внедрение строк — небезопасный строковый код SQL, HTML, оболочка, JSON или YAML с отсутствием или неправильным экранированием или очисткой.
- Слабая криптография — слабые алгоритмы, небольшие ключи, небезопасная случайность, отсутствие шифрования или хэширование слабых паролей.
- Неработающий контроль доступа — обход пути, пробелы CSRF или открытые перенаправления на основе пользователей.
- Уязвимость конфиденциальных данных — секреты, маркеры, пароли или трассировки стека хранятся, регистрируются или отправляются без надлежащей защиты.
- Неправильное настройку системы безопасности — рискованные значения по умолчанию или параметры, такие как отключение элементов управления безопасностью или включение функций отладки.
- Сбои проверки подлинности — отсутствует протокол TLS или проверка, небезопасные потоки проверки подлинности или отсутствуют ограничения скорости.
- Сбои целостности данных — небезопасная десериализация, HTTP для конфиденциальных действий, загрязнения прототипа или выполнение ненадежного содержимого.
- Запрос на стороне сервера (SSRF) — сервер получает URL-адреса, управляемые злоумышленниками, узлами или протоколами.
- Риски цепочки поставок — незакрепленные сторонние действия, пакеты или изображения или скачивание без проверок целостности.
Включение сканирования ИИ
Сканирование ИИ не допускается на корпоративном уровне по умолчанию и отключено на уровнях организации и репозитория. Владельцы предприятия должны разрешить проверку ИИ, прежде чем администраторы организации смогут включить ее. Включение проверки искусственного интеллекта для организации применяет его к соответствующим репозиториям, где code scanning включена. Администраторы репозитория могут отказаться от отдельных репозиториев. Для соответствующего общедоступного репозитория, принадлежащем личной учетной записи, администратор репозитория должен включить проверку ИИ непосредственно для репозитория.
Вам не нужно выбирать модель, чтобы включить проверку искусственного интеллекта.
- Корпоративная: политика сканирования ИИ в разделе "Безопасность кода" определяет, могут ли организации включить эту функцию. См . раздел AUTOTITLE.
- Организация: параметр "Сканирование ИИ " в разделе "Сканирование кода" включает проверку ИИ для подходящих репозиториев в организации, где code scanning она включена. См . раздел AUTOTITLE.
- Репозиторий. Для репозитория, принадлежащий организации, переключатель "Сканирование ИИ " в разделе "Сканирование кода" позволяет администраторам репозитория отказаться от включения проверки ИИ для организации. Для подходящего общедоступного репозитория, принадлежащем личной учетной записи, переключатель включает или отключает проверку ИИ напрямую.
С помощью REST API можно управлять параметрами организации или репозитория ai-scan . См . раздел AUTOTITLE.