Copilot cloud agent это автономный агент, имеющий доступ к вашему коду и способный отправлять изменения в репозиторий. Это влечет за собой определенные риски.
По возможности GitHub применяли соответствующие меры смягчения. Это даёт Copilot cloud agent прочную базу встроенных мер безопасности, которую можно дополнить, следуя рекомендациям по лучшим практикам.
Непроверенный код может создавать уязвимости
По умолчанию Copilot cloud agent проверяет генерируемый код на предмет проблем безопасности и получает второе мнение по своему коду с Copilot code review. Он пытается устранить проблемы, выявленные до завершения pull request. Это повышает качество кода и снижает вероятность генерации кода, вводя Copilot cloud agent такие проблемы, как жёстко закодированные секреты, небезопасные зависимости и другие уязвимости. Copilot cloud agent проверка безопасности не требуетGitHub Secret Protection, GitHub Code Security, or GitHub Advanced Security лицензии.
- CodeQL используется для выявления проблем с безопасностью кода.
- Новые зависимости проверяются на GitHub Advisory Database наличие вредоносных предупреждений и уязвимостей с рейтингом CVSS.
- Secret scanning используется для обнаружения чувствительной информации, такой как ключи API, токены и другие секреты.
- Подробности о проведённом анализе и предпринятых Copilot cloud agent действиях можно изучить в журнале сессий. См . раздел AUTOTITLE.
Опционально можно отключить один или несколько инструментов проверки качества кода и безопасности, используемых Copilot cloud agent. См . раздел AUTOTITLE.
Copilot cloud agent Можете отправлять изменения кода в ваш репозиторий
Чтобы снизить этот риск, GitHub:
- Ограничение, кто может спровоцировать агент. Только пользователи с доступом к записи в репозиторий могут активировать Copilot cloud agent работу. Комментарии пользователей без write access никогда не отображаются агенту.
- Ограничивает ветку, к которой агент может подключиться.
Copilot cloud agent Он способен толкать только к одной ветке. Когда агент запускается упоминанием
@copilotна существующем pull request, Copilot получает доступ к записи в ветку pull-запроса. В других случаях создаётся новаяcopilot/ветвь для Copilot, и агент может отправлять только в эту ветвь. Агент также подлежит любым защитам филиалов и необходимым проверкам рабочего репозитория. - Ограничивает полномочия агента.
Copilot cloud agent может выполнять только простые операции push. Он не может выполняться
git pushнапрямую или другие команды Git. - Требуется проверка человека перед слиянием. Черновые pull requests, созданные Copilot cloud agent компанией, должны быть рассмотрены и объединены человеком. Copilot cloud agent не может пометить свои pull requests как «Готовы к рассмотрению» и не может одобрить или объединить pull request.
- Ограничивает GitHub Actions запуски рабочих процессов. По умолчанию рабочие процессы запускаются только после Copilot cloud agentпроверки кода ' и пользователя с доступом к записи репозитория не нажмёт кнопку «Утвердить» и «Запустить рабочие процессы ». По желанию можно настроить Copilot так, чтобы рабочие процессы запускались автоматически. См . раздел AUTOTITLE.
- Это предотвращает одобрение пользователем, который попросил Copilot cloud agent создать pull request. Это поддерживает ожидаемые элементы управления в правиле "Обязательные утверждения" и защите ветви. См . раздел AUTOTITLE.
- Требует дополнительного утверждения, если запрос на вытягивание не является атрибутом человека. При Copilot cloud agent открытии запроса на вытягивание под собственным удостоверением приложения необходимо еще одно утверждение, прежде чем его можно объединить, если репозиторию уже требуется по крайней мере одно утверждение. Эта функция включена по умолчанию в наборе правил, где администраторы могут отключить ее и всегда применяется к правилам защиты ветви. См . раздел AUTOTITLE.
Copilot cloud agent имеет доступ к конфиденциальной информации
Copilot cloud agent имеет доступ к коду и другой конфиденциальной информации и может её слить — случайно или из-за злонамеренного пользователя.
Чтобы снизить этот риск, GitHubограничивает Copilot cloud agentдоступ к интернету. См . раздел AUTOTITLE.
Подсказки ИИ могут быть уязвимы к инъекции
Пользователи могут включать скрытые сообщения в назначенные Copilot cloud agent задачи или комментарии, оставленные для Copilot cloud agent них как форму инъекции подсказок.
Чтобы снизить этот риск, GitHubскрытые символы фильтруются перед передачей пользовательского ввода в Copilot cloud agent: Например, текст, введённый как HTML-комментарий в проблеме или комментарии pull request, не передаётся в Copilot cloud agent.
Администраторы могут потерять из виду работу агентов
Для снижения этого риска Copilot cloud agent проект проектируется так, чтобы быть проверяемым и отслеживаемым.
- Copilot cloud agentкоммиты P автором Copilotявляется , при этом разработчик, который назначил проблему или запросил изменение пулл-запроса, обозначен как соавтор. Это облегчает идентификацию кода, сгенерированного Copilot cloud agent и тем, кто начал задачу.
- Copilot cloud agentКоммиты на сайте подписаны, поэтому они отображаются как «Проверенные» на GitHub. Это даёт уверенность в том, что коммиты были сделаны Copilot cloud agent и не изменялись.
- Журналы сессий и события журнала аудита доступны администраторам.
- Сообщение коммита для каждого коммита, созданного агентом, содержит ссылку на журналы сессий агента для проверки кода и аудита. См . раздел AUTOTITLE.
Автоматизации работают без того, чтобы человек инициировал каждую задачу
Automations запускаются Copilot cloud agent автоматически, по расписанию или в ответ на события, без инициатора каждой задачи. См . раздел AUTOTITLE. Это вносит дополнительные риски, которые GitHub снижаются следующим образом.
- Работа приписывается человеку, создавшему автоматизацию. Открытые pull requests и код, отправленный , automation приписываются пользователю, создавшему automation. Когда пользователь сам создаёт pull-запрос, он не может его одобрить, что сохраняет ожидаемые контроли «Требуемые одобрения».
- Вы контролируете, какие инструменты может использовать автоматизация. Когда an automation запускается событием, ввод от недоверенных пользователей может стать частью запроса. Чтобы ограничить влияние инъекции подсказок, вы выбираете, какие инструменты можно automation использовать, чтобы он мог выполнять только те действия, которые требуются для задачи.
- События от ненадёжных пользователей по умолчанию игнорируются. Automations Игнорируйте события, заработанные пользователями без доступа к репозиторию по умолчанию, с настройкой для включения.
- Рабочие процессы всё ещё требуют одобрения человека. Проблема или pull-запрос, открытый an, automation может спровоцировать другой automation. Как и в любой Copilot cloud agent работе, GitHub Actions рабочие процессы не запускаются по pull-запросу до тех пор, пока пользователь с доступом на запись не одобрит их, что предотвращает автоматическую работу рабочих процессов в такой цепочке.