Skip to main content
Skip to content

Сканирование ИИ для запросов на вытягивание

Ai Scan использует подсистему сканирования на основе ИИ для поиска уязвимостей безопасности в запросах на вытягивание языков и платформ, не охваченных CodeQL.

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

Сканирование ИИ расширяет code scanning охват, не требуя отдельного средства сканирования или конфигурации сборки.

Availability

Доступность зависит от того, кто владеет репозиторием и его видимостью.

Владелец репозиторияВидимостьДоступность и требование
OrganizationPublicДоступно без лицензии active-committer
OrganizationЧастный или внутреннийДоступно с GitHub Code Security помощью или GitHub Advanced Security
Личная учетная записьPublicAvailable
Личная учетная записьЧастнаяНедоступно

Сканирование ИИ для запросов на вытягивание недоступно для репозиториев в управляемая учетная запись пользователяличном пространстве имен, даже если code scanning он включен для репозитория.

Вам не нужна GitHub Copilot лицензия на использование сканирования ИИ.

Billing

Использование сканирования ИИ отличается от лицензирования активных фиксаций и сообщается в SKU code Security AI Credits . Использование начинается только при проверке соответствующего запроса на вытягивание.

Для репозиториев, принадлежащих организации, счета за использование выставляются учетной записи, ответственной за выставление счетов организации.

Для общедоступных репозиториев, принадлежащих личной учетной записи, использование взимается с этой личной учетной записи, если владелец репозитория не имеет GitHub Copilot лицензии, предоставленной организацией или предприятием. В этом случае плата за использование выставляется организации или организации, предоставляющей лицензию.

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

Дополнительные сведения о модели выставления счетов см. в разделе GitHub Advanced Security Выставление счетов за лицензии.

Как работает сканирование ИИ

Проверка искусственного интеллекта выполняется автоматически при выполнении всех следующих условий:

  • Code scanning включена для репозитория.
  • Включен параметр проверки ИИ репозитория на запросы на вытягивание.
  • Запрос на вытягивание, который не является из вилки или создан Dependabot , содержит изменения в поддерживаемом языке или платформе, которая CodeQL не охватывает.

Выполняется при создании запроса на вытягивание и после каждой новой фиксации по мере их выполнения CodeQL.

Проверка ИИ не требует CodeQL настройки по умолчанию и не зависит от состояния CodeQL анализа. Если CodeQL анализ завершается ошибкой или находится в состоянии ожидания, сканирование ИИ по-прежнему будет выполняться.

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

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

Модуль сканирования анализирует код запроса на вытягивание без необходимости в системе сборки и может использовать поиск кода для сбора дополнительных контекстов из репозитория перед добавлением проблемы. Он использует специализированные запросы, а не пользовательские файлы инструкций, например /.github/copilot-instructions.md или /CLAUDE.md.

Как результаты сканирования ИИ отображаются в запросах на вытягивание

Результаты сканирования ИИ отображаются вместе с 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-адреса, управляемые злоумышленниками, узлами или протоколами.
  • Риски цепочки поставок — незакрепленные сторонние действия, пакеты или изображения или скачивание без проверок целостности.

Включение сканирования ИИ

Прежде чем включить запросы на вытягивание ИИ для организации, подтвердите соответствие репозитория, просмотрите включенные AI creditsучетные записи выставления счетов и настройте бюджеты для использования с учетом лимитного использования.

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

Вам не нужно выбирать модель, чтобы включить проверку искусственного интеллекта.

  • Корпоративный: владельцы предприятия могут разрешить или запретить организациям включить проверку искусственного интеллекта. Политика имеет значение "Не разрешено" по умолчанию. Разрешение сканирования ИИ не включает его автоматически. См . раздел AUTOTITLE.
  • Организация: владельцы организации и руководители по безопасности могут включить проверку ИИ для запросов на вытягивание подходящих репозиториев. Репозитории наследуют параметр организации. См . раздел AUTOTITLE.
  • Репозиторий, принадлежащий организации: пользователи с доступом администратора к репозиторию могут отказаться, если организация включила проверку ИИ. Они не могут принять участие в том случае, если параметр организации отключен.
  • Общедоступный репозиторий, принадлежащий личной учетной записи: пользователи с доступом администратора к репозиторию позволяют включить или отключить проверку ИИ непосредственно с помощью функции "Сканирование ИИ" для запросов на вытягивание в разделе "Code scanning".

Владельцы организации и руководители по безопасности могут проверить состояние эффективной проверки ИИ для запросов на вытягивание в представлении "Покрытие" обзора безопасности. См . раздел AUTOTITLE.

Пользователи с доступом к безопасности также могут отслеживать результаты сканирования ИИ в организации или организации:

  • На вкладке "Предотвращение " на панели мониторинга обзора отображаются тенденции в результатах сканирования ИИ, сколько выводов было разрешено, и как часто разработчики приняли Copilot Autofix предложение.
  • На вкладке "Сканирование ИИ " в отчете "Сканирование кода по запросам на вытягивание" отображаются результаты с течением времени, доступность Copilot Autofix предложений и результаты результатов результатов с предложениями и без нее.

Дополнительные сведения см. в разделе Сканирование кода при запросах на вытягивание.

С помощью REST API можно управлять параметрами организации или репозитория ai-scan . См . раздел AUTOTITLE.