Skip to main content

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

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

Примечание.

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

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

Хотя CodeQL предоставляет статический анализ высокой точности для определенного набора поддерживаемых языков и запросов, многие репозитории используют языки и платформы, которые CodeQL не охватываются. Обнаружение на основе искусственного интеллекта расширяет code scanning охват этих областей, помогая находить уязвимости без добавления новых средств или конфигурации.

Публичный предварительный просмотрВо время обнаружения безопасности, на основе ИИ, требуются GitHub Advanced Security лицензия и GitHub Copilot лицензия.

Использование используется AI credits. См . раздел AUTOTITLE.

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

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

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

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

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

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

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

Результаты, на основе искусственного интеллекта, отображаются вместе с CodeQL оповещениями на **вкладках "**Беседа и файлы" запроса на вытягивание. Каждый поиск на основе ИИ помечен индикатором "ИИ", чтобы отличить его от CodeQL оповещений.

Каждое обнаружение включает описание проблемы безопасности и объяснение риска. Большинство результатов также включают предлагаемое исправление, но не каждый поиск имеет один. Где доступно предлагаемое исправление, Автофикс второго пилота включается и предоставляет рекомендуемое изменение кода для устранения проблемы так же, как и для CodeQL оповещений. Результаты также включают в себя механизм обратной связи вверх и вниз, который помогает улучшить качество обнаружения с течением времени.

Limitations

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

Поддерживаемые языки

Обнаружения безопасности с поддержкой искусственного интеллекта предназначены для покрытия языков и платформ, которые в настоящее время не поддерживаются CodeQL. Это включает в себя, но не ограничивается такими языками, как PHP, Shell/Bash, конфигурация Terraform (HCL) и Dockerfiles, а также пробелы в охвате платформы, такие как JSP для Java и Blazor для C#.

Полный список языков, поддерживаемых CodeQLфункцией Сканирование кода с помощью CodeQL.

Категории обнаружения

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

  • Внедрение строк — небезопасный строковый код SQL, HTML, оболочка, JSON или YAML с отсутствием или неправильным экранированием или очисткой.
  • Слабая криптография — слабые алгоритмы, небольшие ключи, небезопасная случайность, отсутствие шифрования или хэширование слабых паролей.
  • Неработающий контроль доступа — обход пути, пробелы CSRF или открытые перенаправления на основе пользователей.
  • Уязвимость конфиденциальных данных — секреты, маркеры, пароли или трассировки стека хранятся, регистрируются или отправляются без надлежащей защиты.
  • Неправильное настройку системы безопасности — рискованные значения по умолчанию или параметры, такие как отключение элементов управления безопасностью или включение функций отладки.
  • Сбои проверки подлинности — отсутствует протокол TLS или проверка, небезопасные потоки проверки подлинности или отсутствуют ограничения скорости.
  • Сбои целостности данных — небезопасная десериализация, HTTP для конфиденциальных действий, загрязнения прототипа или выполнение ненадежного содержимого.
  • Запрос на стороне сервера (SSRF) — сервер получает URL-адреса, управляемые злоумышленниками, узлами или протоколами.
  • Риски цепочки поставок — незакрепленные сторонние действия, пакеты или изображения или скачивание без проверок целостности.

Включение обнаружения безопасности на основе искусственного интеллекта

Обнаружение безопасности на основе искусственного интеллекта не допускается на корпоративном уровне по умолчанию и отключено на уровнях организации и репозитория. Администраторы предприятия должны явно разрешить эту функцию, прежде чем организации смогут включить ее. Администраторы организации должны явно принять участие в этой функции. Администраторы репозитория могут отказаться от функции. Кроме того, необходимо включить настройку CodeQL по умолчанию.

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

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