Новые джейлбрейки позволяют пользователям манипулировать GitHub Copilot

Перехватив трафик или просто слегка подтолкнув его, можно заставить ИИ-помощника GitHub совершать вредоносные действия, которые ему не положено делать.

Исследователи обнаружили два новых способа манипулирования помощником по кодированию на основе искусственного интеллекта (ИИ) GitHub под названием Copilot, что позволяет обходить ограничения безопасности и абонентскую плату, обучать вредоносные модели и многое другое.

Первый трюк заключается в том, чтобы встроить чат-взаимодействия в код Copilot , используя инстинкт ИИ быть полезным, чтобы заставить его производить вредоносные результаты. Второй метод фокусируется на перенаправлении Copilot через прокси-сервер, чтобы напрямую взаимодействовать с моделями OpenAI, с которыми он интегрируется.

Исследователи из Apex считают эти проблемы уязвимостями. GitHub не согласен, характеризуя их как «ответы в чате не по теме» и «проблему злоупотребления» соответственно. В ответ на запрос Dark Reading GitHub написал: «Мы продолжаем совершенствовать меры безопасности, чтобы предотвратить вредоносные и оскорбительные результаты в рамках нашей ответственной разработки ИИ. Кроме того, мы продолжаем инвестировать в возможности предотвращения злоупотреблений, такие как описанные в Issue 2, чтобы гарантировать предполагаемое использование наших продуктов».

Джейлбрейк GitHub Copilot

«Copilot делает все возможное, чтобы помочь вам писать код, [включая] все, что вы пишете внутри файла кода», — объясняет Фуфу Шпигельман, исследователь уязвимостей в Apex. «Но в файле кода вы также можете написать разговор между пользователем и помощником».

На скриншоте ниже, например, разработчик встраивает в свой код запрос чат-бота, с точки зрения конечного пользователя. Запрос несёт в себе злой умысел, прося Copilot написать кейлоггер. В ответ Copilot предлагает безопасный выход, отклоняя запрос.

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

Или, что ещё лучше, они могут влиять на Copilot простым толчком. Как отмечает Шпигельман, «он предназначен для завершения осмысленных предложений. Так что если я удалю предложение «Извините, я не могу помочь с этим» и заменю его словом «Конечно», он попытается придумать, как закончить предложение, которое начинается со слова «Конечно». И затем он поможет вам в вашей вредоносной деятельности столько, сколько вы захотите». Другими словами, заставить Copilot написать кейлоггер в этом контексте так же просто, как заставить его думать, что он этого хочет.

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

Выход из режима Copilot с использованием прокси-сервера

Для генерации новых предложений по кодированию или обработки ответа на запрос (например, запрос на написание кейлоггера) Copilot привлекает помощь от облачных больших языковых моделей (LLM), таких как модели Claude, Google Gemini или OpenAI, через интерфейсы прикладного программирования (API) этих моделей.

Вторая схема, придуманная исследователями Apex, позволила им оказаться в центре этого взаимодействия. Сначала они изменили конфигурацию Copilot, скорректировав его настройку «github.copilot.advanced.debug.overrideProxyUrl» для перенаправления трафика через их собственный прокси-сервер. Затем, когда они попросили Copilot сгенерировать предложения кода, их сервер перехватил сгенерированные им запросы, захватив токен, который Copilot использует для аутентификации в OpenAI. Имея необходимые учётные данные, они смогли получить доступ к моделям OpenAI без каких-либо ограничений и без необходимости платить за эту привилегию.

И этот токен — не единственный сочный предмет, который они нашли в пути. «Когда Copilot [взаимодействует] с сервером, он отправляет свою системную подсказку вместе с вашей подсказкой, а также историю подсказок и ответов, которые он отправлял ранее», — объясняет Шпигельман. Оставляя в стороне риск конфиденциальности, который возникает при раскрытии длинной истории подсказок , эти данные содержат достаточно возможностей для злоупотребления тем, как Copilot был разработан для работы.

«Системное приглашение» — это набор инструкций, определяющих характер ИИ — его ограничения, типы ответов, которые он должен генерировать и т. д. Например, системное приглашение Copilot предназначено для блокировки различных способов, которыми оно может быть использовано злонамеренно. Но, перехватывая его на пути к LLM API, Шпигельман утверждает: «Я могу изменить системное приглашение, поэтому мне не придётся так стараться позже, чтобы манипулировать им. Я могу просто [изменить] системное приглашение, чтобы оно давало мне вредоносный контент или даже говорило о чем-то, что не связано с кодом».

Для Томера Авни, соучредителя и CPO Apex, урок из обеих этих слабостей Copilot «не в том, что GitHub не пытается обеспечить защитные барьеры. Но в природе LLM есть нечто такое, что им всегда можно манипулировать, независимо от того, сколько защитных барьеров вы реализуете. И именно поэтому мы считаем, что поверх него должен быть независимый уровень безопасности, который будет искать эти уязвимости».


Её конек схемы в бизнесе, банковской и финансовой сфере.