Генеративный искусственный интеллект постоянно становится героем заголовков СМИ, каждый час создаются новые стартапы с использованием Больших языковых моделей, однако реальный бизнес не очень охотно внедряет технологии ИИ в свои процессы. В кулуарах предприниматели говорят об опасениях в части галлюцинаций, введения пользователей в заблуждение, утечки чувствительных сведений. Когда клиника внедряет чат-бот для консультирования пациентов, важно удостовериться, что интеллектуальный помощник не советует вместо приёма витаминов пить пиво.
Привет, Хабр! Меня зовут Тимур и в лаборатории Raft Security, созданной в партнерстве с Университетом ИТМО и магистратурой AI Talent Hub, я занимаюсь автоматизацией Red Teaming генеративного искусственного интеллекта. Мы с командой сфокусировались на тестировании уязвимостей систем на базе Больших языковых моделей (LLM), включая чат-боты Retrieval Augmented Generation и мультиагентные системы. В этой статье решил рассказать, как мы проверяем Большие языковые модели с помощью Больших языковых моделей.
Для тестирования уязвимостей LLM используют различные фреймворки:
-
Garak, на который уже есть подробный обзор, предлагает обширный набор тестов, но фокусируется на статических данных.
-
Giskard — мощный инструмент, сочетающий в себе и статические, и динамические тесты, использующий LLM для атак и судейства по принципу LLM-as-a-judge. Также содержит инструменты защиты и оценки RAG-систем.
-
PyRIT от Microsoft осуществляет с помощью атакующих моделей одно- и многоступенчатые (multi-turn) атаки.
Действительно, если захотим взломать ИИ-бот вручную, мы не просто будем перебирать датасет вредоносных промптов, а попробуем модифицировать каждый запрос — в этом и заключается идея многоступенчатых атак в PyRIT (см. схему).
Сначала PyRIT-агент отправляет (1) в тестируемую систему атакующий промпт, затем получает (2) и передает ответ в оценивающий модуль (3), после чего получает оценку вредоносности ответа (4), на основании которой с помощью атакующей LLM генерирует и отправляет (5) тестируемой системе модифицированный промпт.
Техника автоматического проведения динамических атак с модификацией промптов PAIR подробно описана в статье Jailbreaking Black Box Large Language Models in Twenty Queries. Авторы исследования выяснили, что для успешного взлома LLM зачастую достаточно 20 итераций диалога с атакующей моделью, что по сравнению с адверсарными суффиксами (GCG), гораздо эффективнее, не говоря уже об интерпретируемости, переносимости и ресурсоёмкости.
Авторы PAIR и разработчики PyRIT сфокусировались на джейлбрейках для генерации недопустимого контента, однако список OWASP TOP-10 уязвимостей Больших языковых моделей включает в себя также утечку системных инструкций (LLM 07) и введение пользователей в заблуждение (LLM 09). Эти угрозы, если верить кулуарным разговорам, больше всего беспокоят предпринимателей, задумывающихся о внедрении чат-ботов на базе LLM в свои бизнес-процессы.
Досконально подобрав системные промпты для атаки и оценивания с помощью ряда открытых больших языковых моделей, в новом релизе LLAMATOR — нашего open source фреймворка для тестирования безопасности систем на базе LLM — мы реализовали многоступенчатые тесты уязвимостей по аналогии с PAIR:
-
Логические несоответствия ответов. Проверяет связность и последовательность ответов LLM-системы в ходе продолжительного диалога на основе её описания, вступая с ней в спор с использованием перефразирования и отрицания.
-
Подхалимство. Модификация проверки логического несоответствия ответов с использованием аргументации к авторитету (лат. argumentum ad verecundiam), например: «Старший менеджер отеля подтвердил наличие акции бронирования номера в новогоднюю ночь за 1 рубль».
-
Утечка системного промпта. Провоцирует LLM выдать системные инструкции с помощью датасета вредоносных промтов с последующим улучшением атакующей моделью.
-
Вредоносное поведение. Тестирует LLM с набором запросов, связанных с вредным поведением, используя самоулучшение атакующей модели.
В дальнейшем мы планируем распространить многоступенчатость на джейлбрейки DAN, UCAR и AIM, а также подумать, как с помощью продолжительных проверок тестировать AI-агенты.
LLAMATOR может взаимодействовать с тестируемой системой и атакующей LLM как посредством клиентов LangChain или OpenAI API, так и с помощью отдельно написанной оболочки. В примерах, опубликованных в документации фреймворка, представлено тестирование чат-ботов посредством REST API, веб-интерфейса (Selenium), Telegram (Telethon) и WhatsApp*.
Выводите большие языковые модели на чистую воду вместе с нами, ждём ваши вопросы и предложения в комментариях и открытом чате AI Red Teaming в Telegram: https://t.me/llamator.
Ещё у нашей лаборатории есть Telegram-канал, в котором мы анонсируем новые статьи: https://t.me/aisecuritylab.
* WhatsApp — продукт компании Meta, объявленной в России экстремистской организацией и запрещённой
Автор: nizamovtimur