Опубликовано на vc.ru
Недавно на New Retail вышел материал о том, какие вопросы сегодня звучат в адрес технологий на базе искусственного интеллекта. Наш генеральный директор Александр Обысов и независимый эксперт по инновациям в ритейле Борис Агатов прислушались к голосам скептиков и подробно разобрали их тезисы.
Сегодня, в продолжение темы рисков, связанных с ИИ — небольшое интро в уязвимости больших языковых моделей. Спойлер — никогда не кидайте в чат с ботом чувствительные данные типа номеров банковских карт или паролей. И не используйте для работы с ChatGPT посредников в виде телеграм-ботов. Вы отдаёте всю инфу не только OpenAI, но и неизвестному хозяину бота.
Первые сообщения об уязвимостях в больших языковых моделях появились вскоре после широкого внедрения ChatGPT в 2022 году. Эти уязвимости были связаны с различными аспектами безопасности — манипуляцией данными, утечкой информации и вредоносными действиями.
Большой вклад в систематизацию рисков, связанных с использованием LLM, внёс (и продолжает вносить) фонд OWASP. Open Web Application Security Project — это открытый проект по изучению безопасности веб-приложений. В сообщество OWASP входят корпорации, образовательные организации и частные лица.
Фонду принадлежит самая адекватная классификация уязвимостей LLM, которые сегодня эксплуатируют злоумышленники. Опубликовано уже три версии этой классификации. Это очень динамичная область знаний, и если вы работаете с большими языковыми моделями, делаете проекты не в стол, а для клиентов и всерьёз думаете о «секурности» — полезно следить за обновлениями в этом документе.
Итак, какие уязвимости больших языковых моделей выделяет OWASP и чем может грозить их эксплуатация злоумышленниками?
Внедрение в промпт, инъекции в промпт
Социальная инженерия работает и с машинами! Одни злоумышленники используют уловки в своей речи, чтобы выудить конфиденциальные данные у людей. Другие схожим образом экспериментируют с промптами, чтобы заставить языковую модель действовать выгодным себе образом в ущерб другим.
Хитро сконструированным промптом можно вынудить модель выдать конфиденциальную информацию или выполнить вредоносные действия. Для этого в промпт добавляют скрытые инструкции. Модель интерпретирует их как команды — и выполняет
Как с этим бороться?
Неосторожное обращение с текстом от LLM
Это происходит, когда ответ от LLM-агента пользователи воспринимают как заведомо безопасный и обращаются с ним без должных мер предосторожности. Текст ответа от LLM получает доступ к бэкенд-системам — это может быть текст, который LLM получила от злоумышленника, и в нём содержится, например, вредоносный код или злонамеренные инструкции.
Это может обернуться типичными уязвимостями в приложениях — межсайтовому скриптингу (XSS), межсайтовой подделке запросов (CSRF), межсайтовой подделке запросов на сервере (SSRF), опасной эскалации привилегий агента или удалённому выполнению кода на серверной стороне.
Как с этим бороться?
Отравление обучающих данных
Из самого термина понятно — злоумышленник внедряется в датасет, на котором обучается языковая модель. Он может либо подменять эти данные или проводить их тонкую настройку (fine tuning) в своих интересах. Через API или с помощью сотрудника внутри компании отравленные данные попадают в обучающий набор, а затем и в саму модель. Так в LLM можно ввести уязвимости и бэкдоры или, например, заставить её отвечать на запросы пользователей нужным злоумышленнику образом.
Как с этим бороться?
Отказ. Модель просто отказывается работать.
Есть несколько способов устроить DoS-атаку на LLM:
— Затопить модель огромным количеством запросов, заставляющих её работать на износ.
— Использовать специальные хитрые запросы, обработка которых требует больших вычислительных ресурсов.
— Вводить запросы большой длины. Модель атакуют последовательными запросами, которые приближаются к пределу контекстного окна модели, что вызывает большую нагрузку на систему.
Такая сверхнагрузка либо «кладёт» сервис, либо заставляет его тратить огромное количество ресурсов.
Как с этим бороться?
Уязвимость в «цепочке поставок»
Любое приложение — система, включающая несколько (или множество) подсистем. На конечный результат для пользователя в приложении могут работать базы данных, плагины, предварительно обученные модели, библиотеки и другие сторонние компоненты. Каждый из них — потенциальное окно для уязвимости.
Supply Chain Vulnerabilities — скорее зонтичный термин для всех типов атак на любом из этапов работы приложения. Результатом могут стать скомпрометированные библиотеки или компоненты, используемые в процессе разработки, отравленные обучающие данные и т. д.
Могут быть разными и цели злоумышленников — от кражи данных и манипуляции результатами до создания дезинформации и подрыва доверия к системе.
Как с этим бороться?
Раскрытие чувствительных данных
В своих ответах LLM может непреднамеренно «сдать» важную информацию, которая попала в неё вместе с обучающими данными.
Это может произойти случайно — тогда эту информацию получает законопослушный пользователь, не имеющий в виду использовать эти данные в своих целях. А может быть и так, что злоумышленник с помощью специально сконструированных промптов выясняет, что в обучающем датасете есть приватные данные, и вытягивает их.
Как с этим бороться?
Уязвимость, связанная с использованием в приложениях небезопасных плагинов
Злоумышленники могут использовать несколько методов для эксплуатации уязвимости:
Плагины могут принимать на вход текст без проверки. Этим могут воспользоваться злоумышленники, чтобы вводить вредоносные команды или запросы. Например, если плагин принимает параметры в одном текстовом поле, а атакующий внедряет в них SQL-запросы.
Если плагины не имеют строгих мер контроля доступа, злоумышленники могут получить доступ к функциям, которые не должны быть доступны. Это может привести к выполнению несанкционированных действий.
Плагины могут излишне доверять входным данным от других плагинов и не проверять их. Атакующий может воспользоваться этим и заставить плагин выполнить вредоносные действия.
Цели атакующих могут варьироваться от кражи конфиденциальной информации до выполнения удалённого кода и эскалации привилегий.
Как с этим бороться?
Избыточная агентность (то есть автономность, самостоятельность) модели
Злоумышленники могут использовать несколько методов, чтобы эксплуатировать избыточные права, выданные модели:
Цели атакующих могут включать кражу средств, манипуляцию данными и дезинформацию пользователей.
Как с этим бороться?
Чрезмерное доверие к LLM
Первое правило работы с приложениями на базе LLM — критически осмыслять поставляемую ими информацию, проверять важные факты. Безоглядное доверие ко всему, что «говорит» ИИ, может спровоцировать нежелательные последствия, в том числе юридические или репутационные. Оно может привести к распространению дезинформации, принятию неверных решений и возникновению уязвимостей в системах. Масштаб бедствия зависит от того, в какой сфере работает приложение и того, какие решения людей зависят от контента, поставляемого LLM.
Как злоумышленник может воспользоваться этим:
Как с этим бороться?
Кража предобученной проприетарной модели
Такое тоже бывает — языковую модель, на обучение которую компания затратила множество ресурсов, просто уводят.
Как результат — злоумышленники могут найти в ней чувствительные корпоративные данные, нанести финансовый урон или просто воспользоваться вашим трудом, чтобы конкурировать с вами в вашей же нише.
Вот как это может произойти технически:
Как с этим бороться?
Этот материал опубликован на vc.ru