Спецпроекты

Безопасность

ИИ-библиотеку можно уговорить запустить произвольный код

Интеграция различных компонентов для преобразования текста в SQL-запросы и вывода ответа в графическом виде обеспечила библиотеке Vanna.AI слабые места, которыми можно манипулировать с весьма угрожающими последствиями.

Как заговорить ИИ зубы

Уязвимость в библиотеке машинного обучения Vanna.AI, которую уже описали как «инъекция промпта», открывает возможность для запуска самой библиотекой произвольного кода.

«Баг» CVE-2024-5565 получил оценку по шкале CVSS 8,1 балла, что соответствует высокому (но не критическому) уровню угрозы.

Vanna.AI - это библиотека, написанная на языке Python, которая позволяет «разговаривать» с базами данных SQL, и получать нужные ответы, «задавая обычные вопросы» - то есть, промпты на обычном человеческом языке, которые затем с помощью масштабной языковой модели конвертируются в SQL-запросы.

В ИИ-библиотеке злоумышленники нашли способ запускать произвольный код в базах данных

Как оказалось, промпты можно настраивать таким образом, чтобы обходить средства защиты и предустановленные ограничения языковой модели и манипулировать библиотекой, вплоть до того, чтобы заставлять её запускать в базе данных произвольный код.

Атаки на крупные языковые модели и смежные решения - давно обсуждаемая проблема, хотя каких-то устойчивых методов эксплуатации не существует, всё зависит от конкретных случаев.

В целом наиболее вероятными считаются атаки, когда системе на обработку подсовываются скомпрометированные третьей стороной данные, например, входящие письма или документы, чьё содержимое можно поменять пост-фактум), так что в конце концов в модель будет загружено что-то, что поломает её средства безопасности.

Другой метод - это «многоходовка» или «крещендо», когда оператор начинает общение с ИИ с невинных ем, затем постепенно выводит «собеседника» на рискованную тематику, с тем, чтобы заставить машину начать игнорировать предустановки безопасности и выдавать крайне нежелательные (для её разработчиков) ответы. И потеряет способность отличать вредоносные запросы от легитимных.

Ключ от всех дверей

Сейчас эксперты компании JFrog выявили новый метод, в целом сходный с «крещендо», но отличающийся в некоторых деталях.

Получивший название Skeleton Key («мастер-ключ»), метод позволяет в буквальном смысле поменять настройки языковой модели так, чтобы она «пересмотрела» свои настройки и впредь игнорировала всю защиту, этические ограничения и т.д., и выдавала ответы, лишённые всякой фильтрации.

Как пишут исследователи JFrog, Vanna.AI осуществляет конвертацию простых текстовых запросов в SQL-запросы через языковую модель (LLM).

«Когда мы впервые столкнулись с этой библиотекой, мы сразу подумали, что комбинация LLM и механизмов исполнния SQL-запросов может привести к катастрофическим инъекциям SQL и решили это проверить, - отмечают исследователи. Они рассказали, что были действительно удивлены, оказалось частью совершенно другой функции Vanna - визуализации результатов запросов».

Как оказалось, код Plotly генерирует не статично, а динамически, в соответствии с промптами LLM и оценкой кода. «В результате нам удалось добиться запуска произвольного кода, используя специальные промпты, которые позволяли обходить встроенные ограничители Vanna.AI».

По словам исследователей, LLM-модели нередко затрудняются отличить пользовательский ввод от встроенных ограничивающих инструкций, что открывает возможность для манипуляций ими.

«Разработчикам LLM нельзя полагаться только на пре-промптинг [предварительный набор ограничивающих инструкций, проверка которых осуществляется перед обработкой пользовательского запроса] и необходимо внедрить более надёжные механизмы, такие как отслеживание инъекций промптов, проверку целостности выводимых данных и осуществление исполнения инструкций в защищённой среде, если LLM взаимодейстует с критическими ресурсами, такими как базы данных или динамическая генерация кода».

«Обеспечивать устойчивость ИИ против вредоносных манипуляций - критическая необходимость уже потому, что вне всяких сомнений ИИ в скором времени будет значительно влиять на наши жизни», - говорит Анастасия Мельникова, директор по информационной безопасности компании SEQ. По ее словам, достаточно представить себе ИИ в какой-то чувствительной сфере, который будет «фантазировать» в духе первых версий ChatGPT или элементарно поддаваться на обман или, хуже того, станет послушно запускать вредоносный код в результате манипуляций, - следствием будет цепная реакция, возможно, катастрофа циклопических масштабов. Такие слабые места необходимо распознавать заранее.

В Vanna отреагировали выпуском рекомендаций, в которых прямо говорится, что интеграция с Plotly может при определённых условиях приводить к генерации произвольного кода Python, и что пользователи этой функции должны работать с ней только в изолированной среде.

Роман Георгиев

Короткая ссылка