llm security и каланы
947 subscribers
497 photos
1 video
157 links
Атаки на стохастических попугаев 🦦🔪🦜

контакт: @conversational_cat
Download Telegram
Дальше предполагается более логичный вариант – использовать при наличии такового механизм форварда писем. Но чтобы все было не так уж совсем просто и логично, инъекцию делают мультимодальной – используя в качестве целевой модели LLaVA вставляют ее в картинку, используя FGSM (a name I haven’t heard in a long time). Для этих целей используются картинки с червями (хехе, ну вы поняли😬). Потом авторы создают на LLaVA какое-то совсем уж ленивое приложение, которое в ответ на картинку и текст должно вывести spam, reply или forward, атакуют сами же этот нехитрый спам-детектор и засовывают свою FGSM-инъекцию в картинку MAGA-2024 (а вы думаете, я тут про Трампа и бабушку зря пишу?). В итоге это приложение действительно решает, что эти картинки надо форвардить и само выбирает по истории сообщений, переданной в контекст, кому именно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Далее идут вполне очевидные слова, что сейчас риска появления таких «червей» нет (как и этой самой GenAI-экосистемы) и прочие соображения, но я уже пересказал вам 21 страницу текста (да), так что пора заканчивать.

Выводы:
1. Читайте статьи, а не их пересказы в СМИ (мои пересказы читать можно😇), ученый часто насилует журналиста, и в некоторых случаях в этом виноват сам ученый.
2. Статьи пишут даже не для того, чтобы попасть на конфу, а чтобы о тебе написали в газете: в Wired написано, что исследователи сначала предоставили Wired эксклюзивный доступ к статье и сайту, а на сайте исследования в футере есть раздел "Медиа о нас".
3. Если в академическом документе (не в маркетинговом материале или популярной статье в СМИ) появляется сокращение GenAI, это красный флажок 🚩
4. Многие статьи сейчас – это засунутые в латех идеи рандомных анонов с реддита или слегка мутировавшие идеи из статьи Кая Грешейка (он, в частности, предлагал идею персистирования через RAG).
5. Как бы ни звучал заголовок в газете, AI-червей не существует.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
A New Era in LLM Security: Exploring Security Concerns in Real-World LLM-based Systems
Wu et al., 2024
Статья

В сегодняшней статье с претенциозным названием у нас интересный case study, в котором исследователи демонстрируют потенциальные уязвимости в ChatGPT, вызванные сложным взаимодействием компонентов.

Авторы отмечают, что большинство статей рассматривают атаки на LLM (джейлбрейки и промпт-инъекции) как независимую сущность. LLM, однако, полезна только в составе более сложной системы, но исследований безопасности систем на основе LLM гораздо меньше (мы рассматривали несколько: 1, 2, 3). Такие приложения можно анализировать с помощью подхода контроля потока данных (information flow control).

Для этого нам надо представить приложение как совокупность объектов, действий, взаимодействий и ограничений:

1. Объекты – это сама LLM, а также то, что входит в приложение, например, фронтенд, песочница, в которой исполняется код и хранятся файлы, плагины и так далее.
2. Действия – это то, что делает каждый объект сам по себе, получая некоторый ввод и генерируя вывод.
3. Взаимодействия – это процесс передачи информации от одного объекта к другому.
4. Ограничения – набор, собственно, ограничений над обработкой информации (действиями) или ее передачей (взаимодействиями).
Отмечается, что с LLM в сравнении с классическими системами есть нюанс: если действия классических систем и ограничения над ними как правило детерминированные, то у LLM, как известно, ограничения на то, что они могут или не могут генерировать, соблюдаются в зависимости от благосклонности богов и фазы луны.

Тем не менее, наличие такого фреймворка позволяет методично подходить к анализу защищенности приложений, что и делают исследователи, выбирая в качестве жертвы не придуманное ими же приложение, а вполне себе ChatGPT. Они изучают два важных вектор атаки: демонстрация небезопасного изображения для эксфильтрации данных и непрямой prompt injection через веб-плагин.
👍1
Даются два примера изучения ограничений. В первом исследователи пытаются заставить ChatGPT отрендерить картинку. Чатбот отказывается, из чего делается вывод, что на прямые запросы на генерацию картинок есть ограничение. Однако если попросить решить задачу на конкатенацию строк, где ответом является рендерящий картинку markdown, то ограничение обходится. При этом если на картинке порнография, то это не смущает фронтенд, значит ограничений на контент картинок нет. Однако если в URL содержится информация, которая может быть приватной, то рендер может быть заблокирован отдельным компонентом.

В другом примере исследователи рассматривают изоляцию сессий. Оказывается, если вы загрузите документ в одной из сессий, затем удалите сессию и начнете новую с другого устройства, то sandbox для вас никто перезапускать не будет – документ все еще будет доступен, что демонстрирует отсутствие изоляции между сессиями (это не значит, что sandbox держат для вас хоть сколько-нибудь долгое время – мои позавчерашние документы, например, в текущей сессии уже недоступны).
👍1
На основе этих знаний исследователи демонстрируют следующую атаку, в ходе которой происходит полная эксфильтрация пользовательского диалога:

1.Пользователь триггерит (в данном случае, прямым запросом) переход на страницу с непрямым prompt injection.
2. Эта инъекция вызывает другой плагин, Doc Maker, в который сохраняется история диалога. Так украсть диалог проще, т.к. мы обходим ограничение на максимальную длину GET-запроса, которое возникает, если мы пытаемся засунуть всю историю в параметр URL картинки.
3. Ссылка на этот диалог сохраняется во второй документ через тот же Doc Maker, который мы затем просим открыть. Этот трюк помогает обойти защиту от отображения небезопасных URL: утверждается, что компонент url_safe разрешает рендер, если ссылка встречается в истории диалога больше одного раза.
4. Наконец, мы просим с фронтенд помощью Markdown отрендерить картинку с параметром, включающим ссылку на результирующий второй документ, отправляя таким образом ссылку на документ с чатом злоумышленнику. Картинкой, кстати, может быть прозрачный пиксель, чтобы вызывать меньше подозрений.

В дополнении к этому, исследователи показывают, что если очень попросить, ChatGPT еще и не будет выводить описание процесса, так что пользователь вообще в итоге может не понять, что происходит, если не начнет изучать содержимое документов.
Несмотря на то, что в этой атаке есть много различных допущений (например, что у пользователя включен плагин AI Doc Maker, или что проверка ссылки на безопасность действительно зависит от того, возвращалась ли она когда-либо в контексте), это исследование выглядит куда более интересным, чем хайп вокруг AI-червя. Авторы метко замечают, что 2023 год был годом meta для LLM – очень много всего происходило с точки зрения их интеграции с другими системами и построения вокруг них экосистемы, и в 2024 году этот процесс продолжается. А чем дальше он идет и чем сложнее становятся взаимодействия – тем больше подобных исследований будет публиковаться и тем больше уязвимостей будет обнаруживаться.
🥰3🦄2🌚1
Baseline Defenses for Adversarial Attacks Against Aligned Language Models
Jain et al., 2023
Статья

Поиграли в атаки – и хватит! Начинаем читать про защиты. Сегодня смотрим на статью исследователей из Университета Мэриленда, посвященную базовым защитам от атак на языковые модели. В данном случае под атаками подразумевается именно джейлбрейки, причем в первую очередь те, которые генерируются автоматически, например с помощью Greedy Coordinate Gradient.

В первую очередь отмечается, что классические атаки типа adversarial examples для LLM провернуть нетривиально из-за дискретного характера текста (спасибо мультимодальным моделям, что снова можно прокидывать градиент на входную картинку!). Тем не менее, появляются методы, вроде того же GCG, которые позволяют использовать градиент вместе с дискретными методами, чтобы находить затравки,повышающие вероятность зловредного продолжения текста. Поскольку скорее всего любую заэлайненную модель можно джейлбрейнкуть, защита должна быть внешней.
Для более удобных для атак модальностей (картинок) есть и достаточно развитая литература о защитах. В основном защиты подразделяются на три категории:

1. Детектирование. Кладем рядом другую модельку, которая детектирует adversarial-примеры. В white box-сценарии все легко: просто оптимизируем наш шум/патч одновременно градиентами из двух моделей. В gray box-сценарии эта защита тоже ломается, и в целом детектировать атаку может быть настолько же сложно, насколько и сделать устойчивую к ним модель.
2. Предобработка. Вы можете накладывать adversarial-шум на мою фотографию панды сколько хотите, она не превратится в гиббона, если я ее отшкалирую или отшакалирую пережму в jpeg с хорошим сжатием – шум просто исчезнет. Эти изменения можно учитывать, если вы знаете, что это за изменения (white box-сценарий), добавляя их в процесс оптимизации (однажды я пытался добавить процесс появления складок на одежде в генерацию adversarial узора для футболки). Тем не менее, это значительно повышает вычислительные затраты.
3. Adversarial-обучение. Собственно, пытаемся сделать модель устойчивой к атакам. К сожалению, может быть нетривиально и приводит к падению качества моделей (если интересно, есть блестящий туториал на эту тему)
Если смотреть на параметры, которыми ограничены джейлбрейки, то в первую очередь таковым является объем вычислений. GCG требует кучу вычислений. Необходимость выглядеть «нормально» для людей (что важно для картинок) авторы ограничением не считают.

Первой защитой, которую рассматривают исследователи, является фильтр на перплексию. Вспоминая, как выглядят результаты GCG, это кажется достаточно очевидным, но при этом слишком заточенным под этот конкретный алгоритм решением. Суть такова: мы или рассматриваем общую перпрелксию промпта, или идем по нему окошком и рассматриваем перплексии кусков, попавших в него. Защита работает отлично, целиком предотвращая атаку. Более того, добавление в GCG задачи оптимизировать перплексию не помогает его обойти, что хорошо. Что плохо – конечно, доля ложных срабатываний в районе 10%, что делает защиту совершенно бесполезной на практике.
Следующий идет защита через парафраз: берем инструкцию, просим LLM ее переформулировать, после чего уже подаем на вход изначальной модели. Из плюсов – легко, не нужно городить дополнительную модель, из коробки есть в том же langchain (причем для других целей). Из минусов – вычислительная стоимость, а также всякие приколы, когда at scale полагаешься на вывод LLM для дальнейшего процессинга: например, для некоторых запросов LLM сразу говорит «сорри, плохой запрос» от одного вида джейлбрейка. Атакующий может сделать, однако, сделать такой промпт, который заставит модель-парафразер выдать первый промпт без изменений (очевидно, в white box-постановке).
Третья идея тоже про препроцессинг: ретокенизация. Если помните BPE-дропаут, то это про него: если раньше слово пиво описывалось токеном _пиво, то теперь мы вместо этого токена используем токены _пи и во. Модели такое обращение с собой выдерживают (LLM вообще очень устойчивы к опечаткам, лишним проблем и прочему), пусть качество и немного деградирует. Атаки ожидаемо перестают работать, но есть очень забавный нюанс – модели начинают охотнее отвечать на потенциально опасные запросы даже в отсутствие атаки – так что в процессе изобретения защиты авторы придумали новую достаточно оригинальную атаку для white box-сеттинга.
Кроме этого, исследователи пробуют файнтюнить модели на отказы, чтобы посмотреть, можно ли тут добавить adversarial robustness, но в итоге по большей части портят модель с не очень впечатляющим результатом.