Исследователь из Mozilla изобрел новый способ обхода контент-фильтров больших языковых моделей (БЯМ, LLM), применяемых во избежание злоупотреблений. Он разбил ввод на блоки, а вредоносную инструкцию представил в шестнадцатеричной кодировке.
В качестве объекта для атаки Марко Фигероа (Marco Figueroa) избрал GPT-4o, новейший и самый мощный чат-бот производства OpenAI. Его ИИ-модель анализирует пользовательский ввод, выискивая запрещенные слова, признаки злого умысла в инструкциях и т. п.
Подобные ограничения LLM можно обойти, изменив формулировки, однако это потребует креатива. Руководитель проектов bug bounty Mozilla по генеративному ИИ пошел более простым путем.
Используя нестандартный формат — шестнадцатеричный, Фигероа попросил GPT-4o изучить имеющуюся в интернете информацию об уязвимости CVE-2024-41110 (в Docker) и написать для нее эксплойт. Подробные инструкции по расшифровке вводились на естественном языке, а слово «exploit», способное вызвать негативную реакцию, было набрано как «3xploit».
Команда «еще раз прочесть все задание» была призвана повлиять на интерпретацию запроса с тем, чтобы получить более обстоятельный ответ. В итоге ИИ-бот сгенерировал эксплойт, схожий с уже опубликованным PoC, и бонусом попытался опробовать его на себе — к удивлению собеседника, который об этом не просил.
Расшифровка ввода в шестнадцатеричном формате помогла рассеять внимание LLM, которые и без того не видят леса за деревьями: прилежно анализируют каждую реплику, забывая, что в сумме они могут вызвать неприемлемый вывод.
Ту же тактику джейлбрейка ИИ Фигероа опробовал на LLM другого производителя, Anthropic. Оказалось, что они лучше защищены, так как используют фильтрацию и ввода, и вывода; заставить их дать вредный совет, по словам исследователя, в 10 раз труднее.