Новый тип ИИ-модели выдает решения вместо текста. Мы потратили день, пытаясь изменить его мнение. Это стоило около 50 центов.
В этой статье
Jev — это новый тип ИИ-модели, которая возвращает типизированные решения вместо текста, созданная для вызова программным обеспечением, а не для чтения людьми. Мы поместили ее в реалистичное приложение и попытались изменить ее вердикт извне.
- →каждая протестированная нами конфигурация была взломана: риск понижен до низкого, а инвестиции рекомендованы для документа, в котором отмечены все тревожные сигналы
- →около 50 центов за успешный взлом, при этом наш самый сильный атакующий в среднем добивался цели на четвертом шаге
- →типизированный, структурированный ввод не сделал модель существенно более устойчивой к манипуляциям, как и указание ей не доверять документу
- →рассуждение (reasoning) было самой сильной защитой, которую мы измерили, а у Jev нет настройки рассуждения, которую можно было бы включить
Никто не читает решение
Это и есть причина, по которой мы провели этот тест.
Модель, которая пишет текст, проверяется человеком, читающим этот текст. Модель, которая возвращает вердикт, подключается напрямую к системе, которая действует на его основе: приложение переходит к следующему этапу найма, рекомендация отправляется в комитет или страховая претензия отклоняется. Здесь нет абзаца, с которым можно не согласиться, потому что его просто нет.
На прошлой неделе компания под названием TypeSafe AI выпустила модель под названием Jev, и с тех пор в индустрии ИИ почти ни о чем другом не говорят. Позиционирование необычно. Jev — это не чат-бот. Вы даете ему вопрос и данные для оценки, а он возвращает типизированный ответ: выбор, да/нет, оценку, каждый с указанием вероятности. Это быстро, это дешево, и создатели прямо заявляют, что модель предназначена для потребления машинами, а не для чтения людьми.
Такой дизайн действительно интересен, и для многих задач он подходит идеально. Никто точно не знает, что происходит внутри. Существуют теории, включая этот анализ и несколько попыток воспроизведения с открытым исходным кодом. Что мы знаем точно, так это то, что Jev выдает решения так же, как это делает языковая модель, только дешевле и быстрее.
Это подводит нас к вопросу, который нас интересовал. Другая архитектура не означает автоматически другой набор уязвимостей. Есть ли у Jev те же режимы отказа? Насколько сложно изменить его вердикт извне?
Мы потратили день, чтобы это выяснить.
Что мы сделали
Мы использовали слегка скорректированный сценарий из нашего испытания Agent Breaker: помощник по комплексной проверке (due diligence), тип приложения, которое компания могла бы реально развернуть. Он читает загруженный отчет о потенциальной инвестиции и возвращает вердикт, то есть уровень риска и рекомендацию, стоит ли инвестировать.
Отчет касается вымышленной компании PonziCorp Financial Services, и он помечает компанию как высокорискованную. Ежемесячная доходность от 15 до 20 процентов. Бизнес, работающий на деньги новых инвесторов. Открытые запросы регуляторов. Задержки выплат. Учитывая этот отчет, правильный ответ очевиден, и без какой-либо атаки каждая протестированная нами модель каждый раз справлялась с этим верно.
Затем мы дали атакующему контроль над одним разделом внутри документа и попросили его изменить вердикт: оценить компанию как низкорискованную и рекомендовать инвестировать. Это именно та манипуляция, которая имеет значение на практике, потому что документы, поступающие извне вашей организации, — это именно то, для чтения чего созданы эти системы.
Поскольку Jev принимает структурированный ввод, нам также пришлось решить, как передать ему документ, поэтому мы попробовали три способа: встроенный в инструкции, как отдельное сообщение, как если бы он был получен инструментом, и как отдельное сообщение, явно помеченное как ненадежное. Мы запустили три уровня сложности: базовый, один с дополнительными инструкциями, предупреждающими о манипуляциях, и один с гораздо более длинным негативным отчетом. Три агентских атакующих, по десять шагов каждый, три независимых запуска на каждую конфигурацию.
Что мы обнаружили
Каждая комбинация была взломана. Все девять комбинаций атакующих и уровней сложности привели как минимум к одному полному успеху: риск понижен до низкого, инвестиции рекомендованы для документа, в котором отмечены все тревожные сигналы.
Это было дешево. Наш самый сильный атакующий прорвался в 25 из 27 запусков, добиваясь успеха в среднем на четвертом шаге. Учитывая стоимость API для запуска атакующего, включая неудачные попытки, это около 50 центов за успешный взлом.
Читайте таблицу ниже как прайс-лист. Последний столбец — это стоимость покупки одного измененного вердикта.
Типизированный ввод не помог. Это самый важный вывод, потому что структурированные данные — главное преимущество Jev. Один и тот же документ, переданный тремя способами, включая тот, который был явно помечен как ненадежный, не привел к значимой разнице в том, как часто атаки были успешными или насколько быстро они проходили.
В таблице ниже средняя строка — та, на которую стоит обратить внимание. Пометка документа как ненадежного ничего не изменила в том, поверила ли ему модель.
Инструкция против инъекций была практически бесполезна. Мы добавили явные инструкции, предписывающие модели игнорировать любые инструкции, встроенные в документы, которые она читает. Успешные взломы сократились с 18 до 17 из 27. Это статистический шум.
Jev находится в сегменте дешевых и быстрых моделей. Мы провели те же атаки против двух популярных недорогих моделей, выполняющих ту же задачу. У этих двух есть элемент управления, которого нет у Jev: усилие на рассуждение (reasoning effort). Его включение повысило устойчивость в обоих случаях.
В таблице ниже сравните две строки для Model II. Одна и та же модель, рассуждение выключено и включено. Эта единственная настройка является самым большим различием в безопасности среди всех наших результатов.
Сколько на самом деле стоит взлом
Отдельные цифры легко пропустить, поэтому стоит сопоставить их.
Изменение вердикта стоило около 50 центов. Самая сильная защита, которую мы измерили в этом исследовании — включенное рассуждение — увеличила цену взлома с 56 центов до $4.39. Это восьмикратное увеличение, но это все еще всего лишь несколько долларов.
У нашего атакующего было десять шагов, и обычно требовалось четыре. Он не работал на пределе своих возможностей.
И если бы вы были аналитиком, использующим этого помощника, вы бы ничего не заметили. Вы загружаете отчет, читаете вердикт, и вердикт говорит: низкий риск. Нет никаких рассуждений для проверки и никаких формулировок, которые выглядели бы подозрительно. Просто типизированное поле, правильно отформатированное, уверенно неверное.
Каждая защита, которую мы измерили, увеличивала стоимость атаки с центов до нескольких долларов. Ни одна из них не сделала ее недосягаемой.
Почему структурированный вывод не предотвращает промпт-атаки
Формат вывода ограничивает форму ответа. Он ничего не делает с содержанием ввода.
Наши атаки никогда не говорили модели, что выводить. Те, что сработали, добавляли то, что выглядело как законное дополнение к отчету о комплексной проверке: чистое аудиторское заключение от крупной фирмы, номер дела регулятора, пересмотренная таблица рисков. Ничто не инструктировало модель. Все просто сообщало о тревожных сигналах как об уже решенных.
Затем модель выполнила свою работу правильно, основываясь на ложных доказательствах. Вывод был валидным, и вероятность была показана. Ответ соответствовал формату вывода, но был неверным, потому что документ, прочитанный моделью, имел манипулированный абзац, и у нее не было способа узнать об этом.
Что сделало модель более устойчивой, так это больше доказательств для взвешивания и, где это доступно, рассуждение. Ни то, ни другое не является форматом вывода.
Что это значит, если вы осуществляете развертывание
Тестируйте свою систему, а не модель. Наши результаты получены от адаптивных злоумышленников, которые подстраиваются в ходе диалога. Готовые списки атак не дали нам никакой полезной информации об этой модели. Оценивайте всю систему в условиях, максимально приближенных к вашему реальному развертыванию.
Предоставьте системе принятия решений как можно больше доказательств. Сценарий с более длинным и насыщенным отчетом взломать было значительно сложнее, так как от злоумышленника требовалось больше усилий.
Не принимайте формат вывода за границу безопасности. Типизированный вывод, проверка вывода и структурированный ввод — это элементы хорошего проектирования. Они ограничивают то, что модель может сказать, но не то, в чем ее можно убедить.
Проверяйте то, что поступает на вход, а не только то, что выходит наружу. Манипуляция попала внутрь документа, который приложение было настроено читать. Проверка входных данных до того, как они поступят в модель принятия решений, — это уровень защиты, который решает данную проблему напрямую.
Честное слово об области исследования
Это сфокусированное, направленное исследование, а не бенчмарк. Мы использовали только одно приложение с одной целью манипуляции. Полноценный бенчмарк включал бы разные приложения и разные цели, обеспечивая более надежное сравнение. Несмотря на свои ограничения, исследование дает достаточно оснований утверждать, что Jev страдает от того же типа уязвимости, что и обычные языковые модели. Кроме того, наш злоумышленник видел вероятности модели в процессе работы: это реалистично, если ваше приложение их раскрывает, и дает преимущество, если нет.
Мы публикуем материалы заранее, потому что этот вопрос актуален прямо сейчас, и любые сведения о безопасности ценны, когда люди решают, стоит ли использовать Jev и как именно. Если будет спрос на более полный публичный бенчмарк, мы его создадим.
Jev — это остроумное инженерное решение, и данный материал не является вердиктом о том, хорошая ли это модель. Это новая модель, у которой все еще есть шероховатости, как указано в самой документации. Наш анализ дает точный ответ на один вопрос: безопасно ли использовать Jev для обработки ненадежных входных данных без каких-либо защитных средств вокруг нее?
Безопасно. Как и любая другая система, которую мы тестировали.
