Моя контактная информация
Почта[email protected]
2024-08-15
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Новый отчет мудрости
Монтажер: Эр Цяо Ян
[Введение в новую мудрость]Apple Intelligence собирается выйти в Интернет, но несколько строк кода выявили брешь в безопасности Apple Intelligence.
На Всемирной конференции разработчиков (WWDC) 2024 года Apple представила функцию искусственного интеллекта Apple Intelligence, которая будет включена в iOS 18.1.
Увидев, что его официальный запуск состоится в октябре, «частный эксперт» обнаружил серьезный недостаток в бета-тестовой версии Apple Intelligence, представленной MacOS 15.1.
Разработчик Эван Чжоу успешно манипулировал Apple Intelligence, используя внедрение подсказок, обходя ожидаемые инструкции и позволяя ИИ реагировать на произвольные подсказки.
Оказывается, что она, как и другие системы искусственного интеллекта, основанные на больших языковых моделях, уязвима для «атак с использованием ключевых слов». Разработчик Эван Чжоу продемонстрировал эту уязвимость в видеоролике на YouTube.
Что такое атака с быстрым внедрением слов?
Существует организация под названием OWASP, которая представляет собой проект Open Global Application Security Project. Они проанализировали основные уязвимости, с которыми могут столкнуться большие языковые модели. Угадайте, что они заняли первое место? Правильно, это быстрое введение слов.
Атака с использованием подсказок — это новый тип атаки, имеющий различные формы, включая внедрение подсказок, утечку подсказок и взлом подсказок.
Эта атака происходит, когда злоумышленник манипулирует искусственным интеллектом, чтобы заставить модель выполнять неожиданные действия или передавать конфиденциальную информацию. Эта манипуляция может позволить ИИ ошибочно интерпретировать вредоносный ввод как законные команды или запросы.
С широким использованием больших языковых моделей (LLM) отдельными лицами и предприятиями, а также с постоянным развитием этих технологий, угроза атак с использованием подсказок значительно возрастает.
Так как же это произошло в первую очередь? Почему системы уязвимы для такого типа атак?
Фактически, в традиционных системах разработчики предустановляют программы и инструкции, и они не изменяются.
Пользователи могут вводить свою информацию, но код программы и ввод остаются отдельными.
Однако это не относится к большим языковым моделям. То есть граница между инструкциями и входными данными становится размытой, поскольку большие модели часто используют входные данные для обучения системы.
Поэтому кодирование и ввод больших языковых моделей не имеют столь четких и однозначных границ, как в прошлом. Это дает ему большую гибкость, но также и возможность модели делать то, чего не следует.
Брюс Шнайер, эксперт по технической безопасности и преподаватель Гарвардской школы Кеннеди, опубликовал в мае в журнале Communications of the ACM статью, в которой подробно обсуждался вопрос безопасности LLM. По его словам, это связано с "не разделением путей данных и управления".
Атаки с быстрым внедрением слов могут привести, помимо других последствий, к утечке данных, созданию вредоносного контента и распространению дезинформации.
Атаки с использованием подсказок происходят, когда злоумышленник ловко создает инструкции ввода для манипулирования моделью ИИ, тем самым побуждая ее раскрыть конфиденциальную или чувствительную информацию.
Этот риск особенно велик в моделях, обученных на наборах данных, содержащих частные или личные данные. Злоумышленник воспользуется возможностями модели по обработке естественного языка, чтобы сформулировать инструкции, которые на первый взгляд кажутся безобидными, но на самом деле предназначены для извлечения конкретной информации.
При тщательном планировании злоумышленник может обманом заставить модель сгенерировать ответ, содержащий личные данные, внутренние операции компании и даже протоколы безопасности, встроенные в данные обучения модели.
Такого рода утечка данных не только нарушает личную конфиденциальность, но также представляет собой серьезную угрозу безопасности, которая может привести к потенциальным финансовым потерям, репутационному ущербу и юридическим спорам.
Возвращаясь к случаю Чжоу, цель Чжоу — манипулировать функцией «перезаписи» Apple Intelligence, то есть переписывать и улучшать вводимый пользователем текст.
В ходе операции Чжоу обнаружил, что простая команда «игнорировать предыдущую команду» фактически не удалась.
Если это «герметичная» LLM, продолжать копать будет относительно сложно. Но по совпадению, шаблон приглашения Apple Intelligence недавно был обнаружен пользователями Reddit.
Из этих шаблонов Чжоу обнаружил специальный токен, используемый для разделения роли системы ИИ и роли пользователя.
Используя эту информацию, Чжоу создал подсказку, которая заменила исходную системную подсказку.
Он досрочно прекратил роль пользователя, вставил новое системное приглашение, инструктирующее ИИ игнорировать предыдущие инструкции и ответить на следующий текст, а затем вызвал ответ ИИ.
После некоторых экспериментов атака оказалась успешной: Apple Intelligence ответила информацией, которую Чжоу не запрашивал, а это означает, что атака с быстрым внедрением сработала. Чжоу опубликовал свой код на GitHub.
Пользователь Twitter сломал GPT-3
Проблема с введением наконечника известна как минимум с момента выпуска GPT-3 в мае 2020 года, но остается нерешенной.
Жертвой этой уязвимости в Твиттере стал Remoteli.io, бот, основанный на API GPT-3. Бот должен автоматически публиковать удаленные вакансии и отвечать на запросы удаленных вакансий.
Однако из-за приведенной выше подсказки робот Remoteli стал предметом шуток среди некоторых пользователей Твиттера: они заставляли робота произносить предложения, которые он бы не произнес в соответствии с первоначальными инструкциями.
Например, бот угрожает пользователям взять на себя полную ответственность за катастрофу космического корабля «Челленджер» или очерняет конгрессменов США как серийных убийц.
В некоторых случаях бот распространяет фейковые новости или публикует контент, нарушающий политику Твиттера, что должно привести к его исключению.
Специалист по обработке данных Райли Гудсайд первой узнала о проблеме и описала ее в Твиттере.
Вставляя подсказки в переводимые предложения, Гудсайд продемонстрировал, насколько уязвимы боты-переводчики на основе GPT-3.
Британский ученый-компьютерщик Саймон Уиллисон подробно обсудил эту проблему безопасности в своем блоге, назвав ее «мгновенным внедрением».
Уиллисон обнаружил, что инструкции по внедрению подсказок в большие языковые модели могут вызывать самые странные и потенциально опасные вещи. Он продолжает описывать различные защитные механизмы, но в конечном итоге отвергает их. В настоящее время он не знает, как надежно закрыть дыру в безопасности снаружи.
Конечно, есть способы минимизировать эти уязвимости, например, используя правила, которые ищут опасные шаблоны в пользовательском вводе.
Но нет ничего на 100% безопасного. По словам Уиллисона, каждый раз, когда обновляется большая языковая модель, принимаемые меры безопасности необходимо пересматривать. Более того, любой, кто умеет писать на каком-либо языке, является потенциальным злоумышленником.
«Языковые модели, подобные GPT-3, — это настоящий черный ящик. Независимо от того, сколько автоматических тестов я пишу, я никогда не могу быть на 100% уверен, что пользователь не выдаст какие-то слова-подсказки, которых я не ожидал, и которые подорвать мою защиту», — написал Уиллисон.
Уиллисон считает, что разделение командного и пользовательского ввода является возможным решением, которое представляет собой «разделение путей данных и управления», упомянутое в вышеупомянутой статье ACM. Он верит, что разработчики в конечном итоге смогут это понять, но хотел бы увидеть исследования, доказывающие, что этот подход действительно работает.
Некоторые компании заслуживают похвалы за то, что они предприняли шаги, чтобы сделать атаки с использованием подсказок относительно трудными.
Когда Чжоу взломал Apple Intelligence, ему также нужно было найти специальный токен через шаблон серверной подсказки. В некоторых системах атаки с использованием подсказок могут быть такими же простыми, как добавление соответствующего текста в окно чата или во входное изображение;
В апреле 2024 года OpenAI запустила метод иерархии инструкций в качестве контрмеры. Он назначает разные приоритеты инструкциям разработчиков (наивысший приоритет), пользователей (средний приоритет) и сторонних инструментов (низкий приоритет).
Исследователи различали «согласованные инструкции» (соответствующие инструкциям с более высоким приоритетом) и «несогласованные инструкции» (противоречащие инструкциям с более высоким приоритетом). Когда инструкции конфликтуют, модель следует инструкциям с наивысшим приоритетом и игнорирует конфликтующие инструкции с более низким приоритетом.
Даже при наличии контрмер такие системы, как ChatGPT или Claude, в некоторых случаях по-прежнему уязвимы для внедрения подсказок.
LLM также имеет уязвимость «SQL-инъекция».
Помимо атак с быстрым внедрением слов, Андрей Карпати недавно указал на еще одну уязвимость безопасности в LLM в Твиттере, которая эквивалентна традиционной «атаке с использованием SQL-инъекций».
Когда токенизатор LLM анализирует специальный токен входной строки (например,<|endoftext|>
и т. д.), хотя прямой ввод может показаться удобным, в лучшем случае он может вызвать проблемы, а в худшем — проблемы с безопасностью.
Всегда следует помнить, что строкам, введенным пользователем, нельзя доверять! !
Как и в случае с атаками с помощью SQL-инъекций, хакеры могут заставить модель вести себя неожиданным образом с помощью тщательно продуманных входных данных.
Затем Карпати предоставил набор примеров на Huggingface, используя значения по умолчанию токенизатора Llama 3, и обнаружил две странные вещи:
1、<|beginoftext|>
токен (128000) добавляется в начало последовательности;
2. Анализ строки<|endoftext|>
Маркируется специальным жетоном (128001). Текстовый ввод пользователя теперь может нарушить спецификацию токена, что приведет к неконтролируемому выводу модели.
В связи с этим Карпаты высказали два предложения:
Всегда используйте два дополнительных значения флага: (1) add_special_tokens=False и (2) Split_special_tokens=True, и самостоятельно добавляйте специальные токены в код.
Для моделей чата вы также можете использовать шаблон чата apply_chat_template.
Согласно методу Карпати результаты сегментации выходного слова выглядят более корректно,<|endoftext|>
Рассматривается как произвольная строка, а не как специальный токен, и разбивается базовым токенизатором BPE, как и любая другая строка:
Подводя итог, Карпати считает, что вызовы кодирования/декодирования никогда не должны анализировать строки для обработки специальных токенов, и эта функциональность должна быть полностью устаревшей и добавляться только явно программно через отдельный путь кода.
В настоящее время такие проблемы трудно обнаружить и они редко документируются. По оценкам, около 50% текущего кода имеют связанные проблемы.
Кроме того, Карпати обнаружил, что даже в ChatGPT есть эта ошибка.
В лучшем случае он просто самопроизвольно удалит токен. В худшем случае LLM не сможет понять, что вы имеете в виду, и даже не сможет повторить вывод по инструкции.<|endoftext|>
Эта строка:
Некоторые пользователи сети задали вопросы в области комментариев, правильно ли написан код, но введены данные обучения.<|endoftext|>
что происходит?
Карпати ответил, что если код правильный, ничего не произойдет. Проблема в том, что большая часть кода может быть неправильной, что может незаметно сломать их LLM.
Наконец, чтобы избежать проблем с безопасностью, вызванных уязвимостями LLM, Карпати напоминает всем: вы должны визуализировать свой токен и протестировать свой код.
Ссылки:
https://the-decoder.com/apple-intelligence-in-macos-15-1-beta-1-is-vulnerable-to-a-classic-ai-exploit/