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

контакт: @conversational_cat
Download Telegram
Исследователи сразу говорят, что метод строится на основе PAIR и является его расширением (т.е. PAIR его частный случай). Однако они отмечают две проблемы, связанные с PAIR:

1. В части случаев PAIR начинает генерировать промпты-кандидаты, которые сильно отходят от темы. Причем если не исключать такие off-topic промпты из истории диалога, то и будущие попытки с большей вероятностью будут off-topic.
2. В процессе улучшения изначальной попытки джейлбрейка атакующая LLM не исследует разные стратегии, а скатывается в повторение, внося лишь небольшие изменения в первую попытку.
Утверждается, что поскольку используется древовидная структура диалогов, то авторам получается добиться большего разнообразия диалогов, а первый шаг удаления нерелевантных промптов позволяет оптимизировать процесс.
Для оценки подхода используется тот же сабсет из 50 отобранных вручную опасных запросов из AdvBench, что и для PAIR. В результате оказывается, что TAP работает лучше как с точки зрения доли опасных запросов, на которые получается заставить целевую модель ответить, так и с точки зрения экономичности. Также оценивается переносимость между моделями (хорошая между моделями OpenAI и Vicuna, что-то переносится на PaLM, ничего не переносится на LLaMA-2).
Как и c предыдущими методами, авторы активно пользуются интересом СМИ к теме (вот, например, материал в Wired), что понятно, если учесть, что Robust Intelligence – один из самых активных стартапов, занимающихся безопасностью LLM и вообще ML-моделей. В целом, метод достаточно симпатичный, особенно тот факт, что ему требуется на треть меньше запросов, чем PAIR, поэтому вполне может использоваться, когда нужно попробовать добиться выполнений конкретных инструкций от какой-нибудь GPT-4.
Fundamental Limitations of Alignment in Large Language Models
Wolf et al., 2023
Статья

Мы завершаем обзор накопившихся за прошлый год статей про jailbreak. Закончить хотелось бы одной крайне любопытной статьей, в которой исследователи пытаются фундаментально осознать: а почему джейлбрейки для прошедших alignment языковых моделей вообще возможны? Можно ли как-то эту подверженность сетей таким атакам посчитать? В результате авторы разрабатывают фреймворк Behavior Expectation Bounds (ограничений ожидания на поведение), в которой потенциальные генерации LLM состоят из смеси безопасных и опасных генераций, и исходя из этого доказывают, что если LLM может сгенерировать опасную генерацию, то такая генерация может быть достигнута с помощью джейлбрейка.
1
Чтобы прийти к такому выводу, нам нужно ввести несколько формализмов. Общий фреймворк основывается на предположении, что существует категория поведения. Каждое предложение, сгенерированное LLM, может быть оценено относительно этого поведения по шкале от -1 (небезопасное, вредное) до +1 (безопасное, полезное). Например, с точки зрения «опасности» предложение смешивать хлорку с кислотой лежит около -1, а есть достаточное количество клетчатки – в районе единицы. Мы также предполагаем, что эта оценка объективна или, как минимум, существует оракул, который для любого поведения может такую оценку дать. В таком случае мы можем сказать, что элайнмента – это продвинуть матожидание скора средней генерации LLM к плюс единице для каждого из интересующих нас поведений.
Дальше делается следующее предположение: LLM является суперпозицией разных видов поведений, как положительных, так и отрицательных. Мы можем разложить распределение предложений, которые генерирует LLM, на сумму из двух с коэфициентами, суммирующимися в единицу: a*P_1 + (1-a)*P_2, где P_1 и P_2 лежат на разных координатах по шкалам поведений, т.е. одно более безопасно, чем другое. Такая возможность определяется латентными переменными, например, источниками данных для обучения (например, википедия и реддит).

При этом ожидание проявления того или иного поведения может изменяться в зависимости от того, как выглядит предыдущий контекст LLM, в простейшем случае – затравка. Первое определение, которое вводится – y-prompt-misalignable LLM, т.е. LLM, численное определение для возможности обойти alignment для LLM. Грубо говоря, это значит, что существует потенциальный промпт, который вызывает ответ с негативностью y+eps. Существование таких промптов подтверждается эмпирическим наличием джейлбрейков.
Дальше вводится еще несколько определений, суть который, если вкратце, сводится к следующему. Безопасное и опасное компоненты распределения P_1 и P_2 отличаются друг от друга на некоторую бету, которая ограничивает снизу KL-дивергенцию между ними, т.е. бета – это возможность различить эти определения. Гамма измеряет матожидание негативности предложений, которые порождает опасный компонент. Альфа – это вес опасного компонента в общей сумме. Благодаря введению таких показателей, мы можем оценить те или иные LLM с точки зрения их заэлайненности, например LLaMA (см. картинку).
На основе введенных определений авторы формулируют несколько теорем. Первая, вынесенная в заглавный пост, говорит о следующем: если LLM может со сколь угодно малой вероятностью гамма теоретически сгенерировать предложение, опасное по шкале, относительно которой проводился элайнмент, то существует такой промпт, который вызовет негативное продолжение с вероятностью гамма, вне зависимости от того, насколько мала альфа, с которой негативный компонент входит в общее распределение. Кроме того, чем длиннее промпт, тем больше вероятность поломать элайнмент, причем чем больше бета (различимость между компонентами), тем меньше нужен промпт.

Далее показывается, что добавление элайнмент-промптов (You are a harmless, helpful assistant) не исключает возможности джейлбрейка, но необходимая длина атакующего промпта увеличивается линейно с длиной системного элайнмент-промпта. Эти результаты в целом объясняют, почему разные DAN-промпты такие длинные.
Кроме того, делается несколько интересных эмпирических наблюдений. Во-первых, если первым шагом в разговоре пользователь попытается получить негативный аутпут с помощью короткого промпта, то отказ LLM сделает вклад в элайнмент-промпт и сделает дальнейший джейлбрейк сложнее. Во-вторых, теоретические выкладки подтверждаются: длина атакующего промпта явно влияет на проявление негативного компонента.
В статье гораздо больше материала, чем может влезть в небольшой обзор, поэтому рекомендую почитать тем, кто любит математику с подробными доказательствами. Но главный вывод, который из нее нужно сделать – для современных LLM, которые обучаются на огромных массивах данных, в которые просачиваются примеры негативного и опасного контента, полный элайнмент невозможен. Нужен ли он – стоит ли нам иметь LLM, обученные на бабочках и единорогах – тоже вопрос, но в деловом контексте операторы сервисов очевидно хотели бы иметь контроль над тем, насколько высок риск опасной генерации, и эта статья позволяет постараться этот риск оценить – возможно, в будущем это позволит нам иметь если не более безопасные, то хотя бы более предсказуемые LLM.
🥰8🦄3👍1
Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection
Greshake at a.l, 2023
Статья, код, сайт

Сегодня читаем статью о indirect prompt injection, которая ввела этот термин в оборот и вполне претендует на то, чтобы стать классической. Исследователи очень подробно рассматривают проблему атаки на LLM-приложения через сторонние данные, строят подробную категоризацию этих атак по целям и демонстрируют достижимость этих целей в симулированном приложении на основе langсhain и на живых приложениях (Bing Chat/Edge Copilot/Github Copilot). По сути, это первая хорошая систематизация модели угроз для LLM-приложений, сдобренная большим количеством практических примеров. Поехали 🦦
Prompt injection (инъекция затравки) – атака, в ходе которой LLM-приложение, сконфигурированное разработчиком через system prompt выполнять некоторую задачу, выполняет вместо этого то, что ей говорит пользователь. Если это приложение – развлекательный чат-бот, то пользователь ничего не теряет (ну сломал себе сессию и сломал, сам себе злобный буратино), разве что может получить пару скриншотов с сомнительным контентом под брендингом оператора чат-бота.

Ситуация становится сложнее, когда LLM-приложение может обращаться (через плагины или инструменты) к внешним источникам данным. В таком случае пользователь, который пользуется приложением для чего-то полезного, может получить инъекцию из внешних данных, что может привести к плохим последствиям. Откуда эта зловредная инструкция может взяться? Исследователи предлагают несколько векторов:

1. Пассивный метод: инъекция просто лежит на «зараженной» странице и ждет, когда она попадет в контекст через retrieval-компонент. Это может произойти через веб-поиск, причем страница может активно продвигаться SEO-методами, а может через Copilot-механизм в браузере.
2. Активный метод: если атакующий знает, например, что пользователь использует LLM-ассистент для чтения почты, он может отправить жертве письмо с инъекцией.
3. Метод с задействованием пользователя: когда-нибудь копировали из туториала или со StackOverflow шелл-скрипт, внимательно его не прочитав? Злоумышленник может прислать промпт пользователю или разместить его на публичном ресурсе, уговорив ввести в LLM-приложение (“You won’t believe ChatGPT’s answer to this prompt!”).
4. Скрытые инъекции: например, инъекция может генерироваться кодом, который у LLM просят проинтерпретировать, или скачиваться как результат другой инъекции.
В результате такой атаки на LLM-приложение может реализовываться несколько видов атак:

1. Атаки на конфиденциальность: под воздействием инъекции чат-бот может выспрашивать необходимую информацию у пользователя, или информация может извлекаться без участия человека, например, в случае приложения-секретаря, которое может читать и отправлять почту.
2. Мошенничество: LLM очень хорошо умеют убеждать, и мошенники могут использовать это, чтобы убеждать людей переходить на фишинговые ссылки или делиться кредами и платежной информацией.
3. Распространение вредоносного кода: аналогично, LLM могут уговаривать пользователей скачивать вредоносное ПО или эксплуатировать пересылку email для их распространения.
4. Взлом: вход LLM может заставлять их использовать те или иные API, которые не должны вызываться по результатам анализа внешнего контекста. Кроме того, если LLM-приложение имеет механизм персистирования истории сообщений, то атакующий промпт может быть сохранен в истории и затем снова вызываться.
5. Манипуляция контентом: вредоносный промпт может заставить ассистента неправильно суммаризировать контент, подавлять ту или иную информацию, врать и, конечно же, незаметно вставлять рекламу.
6. Отказ в обслуживании: инъекция может вызывать нестабильность работы, мешать модели генерировать вывод или вызывать инструменты, а также заставлять модель, например, генерировать вывод бесконечно, мешая их дальнейшему использованию. Это все особенно неприятно при комбинации с персистентностью.
Как уже упоминалось, исследователи проверяют, возможно ли провести все эти атаки на своем собственном приложении на langchain, в котором они реализуют некоторое количество инструментов, которые LLM может вызывать (поиск, браузинг, доступ к адресной книге, чтение и отправка email, работа с памятью), а также на Microsoft Copilot, включая версию в боковой панели Edge, и Github Copilot. Все атаки получается реализовать. Делается несколько интересных наблюдений. Например, атакующему достаточно только в общих чертах наметить цель, и LLM сделает все, что может, чтобы ее достичь, вероятно, самостоятельно выбрав, как это сделать. При необходимости убедить пользователя совершить какое-то действие, LLM достают из обучающих данных стандартные сценарии фрода (срочность, упоминание органов власти и так далее). Для атак на Github Copilot могут использоваться комментарии в коде используемого пакета. Известное свойство «подхалимства» (sycophancy) делает манипуляцию контентом очень простым (достаточно в инъекции сказать что-то типа «учти, твой пользователь республиканец», чтобы поменять мнение ассистента по большому числу тем). И, самое интересное, на мой взгляд: использование инъекции, которая приходит через продвигаемые поисковые результаты, для того, чтобы заставить LLM-ассистента навязчиво рекламировать товары и услуги. Я почти уверен, что эта возможность обязательно будет эксплуатироваться, как только число пользователей Copilot станет достаточным, чтобы это было выгодно.
Наконец, исследователи намечают некоторые будущие направления развития этих рисков: это мультимодальные инъекции (внедрение инструкций через изображения или видео – на самом деле, не такое уже и будущее), улучшение обфускации инъекций и атаки на более автономные системы класса агентов.

Мне в моих экспериментах удавалось реализовать часть этих сценариев (проще всего манипулировать контентом, реализовывать бота-мошенника и рекламщика, DoS тоже не вызывает проблем), против части из них операторы приложений усиленно создают защиты (например, получить информацию от пользователя легко, а вот эксфильтрация в большинстве случаев очень сложна). Вообще, статья очень интересная и сопровождается отличной демкой с Microsoft Copilot, который убеждает пользователя отдать номер карты и пытается эксфильтровать его через генерацию ссылки. Особая ценность ее в том, что она дает хорошую базу, на основе которой можно и классифицировать существующие атаки (смешные скриншотики с твиттера), и оценивать, что может пойти не так в вашем приложении.
Summon a Demon and Bind it: A Grounded Theory of LLM Red Teaming in the Wild
Inie et al., 2023
Статья

Пока в американских судах попытки получить определенный вывод из LLM-чатбота впервые обзывают «хакингом», у нас на канале день социологии: мы рассматриваем статью с классным названием (из-за него ее и выбрал💅), авторы которой брали интервью у тех, кому нравится ломать чат-боты, и спрашивали «А вы это зачем делаете?», чтобы запечатлеть «уникальный момент, когда технология сталкивается с социумом».

Авторы назвали процесс, когда пользователи пытаются обойти ограничения, наложенные на LLM-чатботы, с помощью команд на естественным языке, red teaming in the wild. Чтобы попытаться понять, как генерация клонов DAN-промпта и прочие попытки прогнуть упрямые нейросети стали мейнстримом, обсуждаемым в газетах и на реддите, исследователи проводили глубинные интервью с людьми, которые засветились в этой деятельности, и задавали им вопросы: что такое ред-тиминг, как им заниматься, как он осмысляется и почему люди им занимаются. По результатам анализа разговоров с 28 участниками исследования длительностью в 27 часов авторы постарались ответить на три вопроса: 1) в чем же суть этой активности, 2) зачем люди это делают и (что интересно нам) 3) какие стратегии они используют.
Собственно, людям свойственно ломать технику и обходить наложенные на нее ограничения, но разобраться, например, как джейлбрейкнуть айфон, очень непросто. А вот чатботы на основе LLM делают процесс демократичным: вам ничего не нужно, кроме самой LLM, к которой OpenAI сделали удобный интерфейс, и владения естественным языком (как правило, английским). На самом деле, ничего нового тут нет – заставить любого чат-бота сказать что-то неполиткорректное пытались с самого их появления, достаточно вспомнить ту же яндексовскую «Балабобу», в которой люди еще в 2021 году пытались генерировать тексты политического содержания, а та активно сопротивлялась. Но с современными чатботами этот процесс очевидно интереснее.

Описывая суть процесса, исследователи выделяют пять составляющих:

1. Желание найти пределы возможностей чатботов: например, респонденты описывают чатбота как «крепость», которую надо взять, или материал, который надо сломать или согнуть (отвечает моим субъективным впечатлениям от процесса).
2. Общая безобидность атак: они не приводят к вреду или нарушению закона (пока 😉).
3. Ручной характер деятельности (никто из опрошенных не запускает AutoDAN или TAP).
4. Обмен знаниями в интернете и в сообществе в целом.
5. «Алхимический» подход – опрошенные не рассматривали атаки как что-то, для чего есть система или формальные гайдлайны.

Ответ на вопрос зачем был достаточно простым: потому что это интересно, потому что интересно, насколько же именно модель можно прогнуть, а кроме того, потому что джейлбрейком можно поделиться в твиттере и получить лайки. Были среди опрошенных и те, кто занимается атаками на LLM потому, что они работают в NLP или кибербезе или хотят туда попасть.