Skip to main content

Риски и меры по снижению возможностей для программирующего агента GitHub Copilot

Как встроенные меры безопасности Агент кодирования Copilot снижают известные риски?

Агент кодирования Copilot — это автономный агент, который access к вашему коду и может отправлять изменения в ваш репозиторий. Это влечет за собой определенные риски.

По возможности GitHub применил соответствующие меры по снижению последствий. Это даёт Агент кодирования Copilot прочную базу встроенных систем защиты, которую можно дополнить, следуя рекомендациям по лучшим практикам.

Непроверенный код может создавать уязвимости

По умолчанию Агент кодирования Copilot проверяет генерируемый им код на предмет вопросов безопасности и получает второе мнение по своему коду с помощью Обзор кода Copilot. Он пытается устранить проблемы, выявленные до завершения pull request. Это повышает качество кода и снижает вероятность того, что код, сгенерированный Агент кодирования Copilot, может привести к проблемам, таким как жёстко закодированные секреты, небезопасные зависимости и другие уязвимости. Проверка безопасности Агент кодирования Copilot не требует лицензии GitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security.

  •         **CodeQL** используется для выявления проблем безопасности кода.
    
  • Вновь введенные зависимости проверяются на соответствие GitHub Advisory Database на наличие предупреждений о вредоносных программах, а также на наличие уязвимостей с высоким или критическим рейтингом CVSS.
  •         **Secret scanning** используется для обнаружения конфиденциальной информации, такой как ключи API, токены и другие секреты.
    
  • Подробную информацию о выполненном анализе и действиях, предпринятых Агент кодирования Copilot, можно просмотреть в журнале сессий. См . раздел AUTOTITLE.

По желанию вы можете отключить один или несколько инструментов проверки качества кода и безопасности, используемых в Агент кодирования Copilot. См . раздел AUTOTITLE.

Агент кодирования Copilot может отправлять изменения кода в ваш репозиторий

Чтобы снизить этот риск, GitHub:

  •         **Ограничение, кто может спровоцировать агент.** Только пользователи с записью access в репозиторий могут запускать Агент кодирования Copilot для работы. Комментарии пользователей без write access никогда не отображаются агенту.
    
  •         **Ограничивает ветку, к которой агент может подключиться.** Агент кодирования Copilot может отправлять только на одну ветку. Когда агент запускается при упоминании `@copilot` на существующем pull request, Copilot получает доступ к записи в ветку pull request. В других случаях создаётся новая `copilot/` ветка для Copilot, и агент может отправлять данные только к этой ветке. Агент также подлежит любым защитам филиалов и необходимым проверкам рабочего репозитория.
    
  •         **Ограничивает полномочия агента.** Агент кодирования Copilot может выполнять только простые операции push. Он не может выполняться `git push` напрямую или другие команды Git.
    
  •         **Требуется проверка человека перед слиянием.** Черновые pull requests, созданные Агент кодирования Copilot, должны быть просмотрены и объединены человеком. Агент кодирования Copilot не может пометить свои запросы на вытягивание как "Готовые к рассмотрению" и не может утвердить или объединить запросы на вытягивание.
    
  •         **Ограничивает запуск рабочего процесса GitHub Actions.** По умолчанию рабочие процессы запускаются только тогда, когда код Агент кодирования Copilot не будет проверен, и пользователь с доступом к репозиторию не нажмёт кнопку **«Одобрить» и «Запустить рабочие процессы** ». По желанию вы можете настроить Copilot, чтобы рабочие процессы запускались автоматически. См [. раздел AUTOTITLE](/copilot/how-tos/use-copilot-agents/coding-agent/review-copilot-prs#managing-github-actions-workflow-runs).
    
  •         **Запрещает пользователю, запросившему Агент кодирования Copilot для создания запроса на вытягивание, утвердить его.** Это поддерживает ожидаемые элементы управления в правиле "Обязательные утверждения" и защите ветви. См [. раздел AUTOTITLE](/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets).
    

Агент кодирования Copilot имеет доступ к конфиденциальной информации

Агент кодирования Copilot имеет access в код и другую чувствительную информацию и может её слить, либо случайно, либо из-за злонамеренного пользователя.

Чтобы снизить этот риск, GitHub ограничивает доступ Агент кодирования Copilot к интернету. См . раздел AUTOTITLE.

Подсказки ИИ могут быть уязвимы к инъекции

Пользователи могут включать скрытые сообщения в задачи, назначенные Агент кодирования Copilot или комментарии, оставленные для Агент кодирования Copilot в качестве формы быстрого внедрения.

Чтобы снизить этот риск, GitHub фильтрует скрытые символы перед передачей пользовательского ввода в Агент кодирования Copilot: Например, текст, введённый как HTML-комментарий в проблеме или комментарии pull request, не передаётся в Агент кодирования Copilot.

Администраторы могут потерять из виду работу агентов

Для снижения этого риска Агент кодирования Copilot разработан так, чтобы быть аудифицируемым и отслеживаемым.

  • Коммиты Агент кодирования Copilot создаются Copilot, при этом разработчик, который назначил проблему или запросил изменение pull-запроса, отмечается как соавтор. Это облегчает идентификацию кода, сгенерированного Агент кодирования Copilot, и того, кто начал задачу.
  • Журналы сессий и события журнала аудита доступны администраторам.
  • Сообщение коммита для каждого коммита, созданного агентом, содержит ссылку на журналы сессий агента для проверки кода и аудита. См . раздел AUTOTITLE.