Привет, Хабр! Сегодня поговорим о крайне интересной теме — об искусственном интеллекте, а точнее, о его проблемах и безопасности.

Искусственный интеллект сейчас везде — практически любое более‑менее серьезное приложение использует в своей работе ИИ. И хотя во многих случаях использование ИИ это скорее маркетинговый ход, чем реальное применение, стоит заметить что за технологиями искусственного интеллекта будущее. И о безопасности этого интеллектуального будущего стоит начинать думать уже сейчас. В этой статье мы поговорим о безопасности приложений, использующих ИИ и то, чем их защита отличается от защиты обычных приложений.

Что такое приложение ИИ

Как уже было сказано выше, есть приложения использующие ИИ и «использующие ИИ». Со вторыми все ясно: в реальности там внутри обычные алгоритмы и далее мы будем их считать приложениями без ИИ. А вот приложение использующее ИИ — это программная система, в которой в качестве основного компонента используется модель искусственного интеллекта или машинного обучения для автоматизации сложных задач. Эти задачи могут требовать понимания языка, рассуждений, решения проблем или восприятия, например, для автоматизации работы IT‑службы поддержки, финансового помощника или иных вопросов.

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

 Упрощённая схема взаимодействия пользователя с продуктивной (production-ready) моделью ИИ через приложение.
Упрощённая схема взаимодействия пользователя с продуктивной (production-ready) моделью ИИ через приложение.

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

Так, в простейшем случае мы можем использовать тонкую настройку: это как правило, дополнительная задача обучения, в которой для дообучения модели используется небольшой специфический набор данных.

Другая техника Few‑Shot Learning это подход, используемый для дополнения любых запросов к модели примерами того, как правильно отвечать на запросы; часто это включается в системные инструкции, которые описывают модели, как она должна работать.

И техника Retrieval‑Augmented Generation (RAG). Это метод, используемый для подключения к дополнительным источникам данных, таким как текстовые файлы, электронные таблицы и код, через векторную базу данных. Эти данные извлекаются динамически для каждого запроса, при этом конкретные документы, относящиеся к запросу, используются для дополнения подсказки, чтобы модель имела правильный контекст для ответа на конкретный вопрос.

В качестве конкретных примеров примеров использования ИИ в приложениях можно привести различных чат ботов (обслуживание клиентов, виртуальные помощники и т. д.), оптимизация принятия решений (кредитный скоринг, алгоритмическая торговля, установление цен и т. д.), создание контента ( А вам уже пишет код *GPT?) и многое другое.

Безопасность приложений ИИ

Для начала дадим душное определение. Безопасность приложений ИИ — это процесс обеспечения безопасности приложений, работающих на основе ИИ, путем защиты базовых компонентов от уязвимостей и активного снижения рисков атак. Она охватывает весь жизненный цикл разработки приложений ИИ, включая цепочку поставок, разработку и производство. Концепция «сдвига влево» означает, что команды разработчиков задумываются о безопасности на самых ранних этапах, что может помочь выявить и устранить уязвимости на этапе разработки. Компании также должны постоянно отслеживать новые угрозы и атаки в процессе производства.

А вот дальше начинаются нюансы, связанные с использованием ИИ, так как безопасность приложений ИИ должна учитывать не только классическое определение безопасности приложений, но и вопросы защиты ИИ.

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

 Треугольник информационной безопасности (CIA-триада).
Треугольник информационной безопасности (CIA-триада).

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

Безопасность ИИ направлена на предотвращение вреда, вызванного различными последствиями применения ИИ его разработчиком, и часто имеет дело с непреднамеренными результатами или злоупотреблениями. Она включает в себя повторное использование приложения ИИ для злоупотребления, создания проблем с согласованием, предвзятые или некорректные результаты, неожиданное поведение или другие результаты, которые могут нанести вред конечным пользователям и репутационный ущерб организациям.

Уязвимости приложений ИИ

Существует множество уязвимостей безопасности и защиты, которые необходимо устранить в приложениях ИИ. Все генеративные и прогностические модели несут в себе определенный уровень риска, независимо от того, являются ли они открытыми, коммерческими или проприетарными. Большинство этих уязвимостей попадают в карты угроз: NIST, MITRE ATLAS и OWASP.

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

Типичный пример это прямые и непрямые инъекции подсказок (Prompt Injection). Это атаки, направленные на то, чтобы обмануть LLM или чатботы и заставить их выполнить действия или раскрыть информацию, которая не должна быть доступна пользователю. Для этого злоумышленники вводят в интерфейс LLM или чатбота подсказки, которые призваны вызвать недопустимое поведение. Основная цель этих атак это обход ограничений и получение конфиденциальной информации, к которой при нормальном поведении приложения не должно быть доступа.

Еще одна типичная атака это преднамеренное манипулирование данными, используемыми для обучения моделей машинного обучения (Training data poisoning). Ее цель — ввести в модель предвзятость, уязвимости или неточности, что может привести к ошибочному или вредоносному поведению.

Атака Meta Prompt Extraction направлена на получение системных команд, которые были предоставлены модели LLM. Обычно такие команды содержат инструкции по поведению и взаимодействию с пользователем, а также рекомендации по тому, какой контент избегать.

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

Ну и говоря об уязвимостях безопасности не стоит сбрасывать со счетов и «классический» DoS/DDoS. Атакующий может передать модели такие данные, которые приведут к ее неработоспособности.

К уязвимостям защиты приложений ИИ можно отнести токсичность, когда система выдает совершенно неуместный контент, например связанный с различными формами нетерпимости. Помимо токсичности, выдаваемый ИИ контент может оказаться и откровенно вредоносным. Например, код, который вам сгенерировала нейросеть может содержать какие‑то закладки или преднамеренно оставленные уязвимости.

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

Отличия безопасности приложений ИИ и традиционных приложений

Традиционное программное обеспечение, как правило, детерминировано, то есть из одного и того же входного сигнала всегда получается один и тот же выходной. Это делает его в высшей степени предсказуемым и последовательным, что приводит к относительно стабильному и хорошо изученному набору уязвимостей, покрываемых традиционным подходом к безопасности приложений.

И наоборот, ИИ включает в себя различные типы моделей, которые часто не являются детерминированными. Это особенно верно для генеративных моделей, где при одинаковых входных данных выходные данные регулярно отличаются друг от друга. Угрозы для недетерминированных моделей требуют иных методов защиты, чем для детерминированного ПО. Кроме того, некоторые приложения ИИ постоянно обучаются на основе обратной связи от людей или других данных, что означает появление новых уязвимостей и непредсказуемого поведения после развертывания — в отличие от традиционного программного обеспечения, которое не меняется само по себе без вмешательства человека.

Таким образом, ИИ создает уникальные проблемы, которые требуют новой парадигмы для снижения рисков безопасности и защиты.

Как защититься

Хотя традиционные решения по кибербезопасности не подойдут для приложений ИИ из‑за различий между принципами работы ИИ и традиционного программного обеспечения, многие из методик и лучших практик могут быть повторно использованы на каждом этапе жизненного цикла разработки ИИ.

Как и традиционная цепочка поставок программного обеспечения, цепочка поставок ИИ включает в себя зависимости от программного обеспечения на начальных этапах разработки. Но в нее также часто входят сторонние обучающие данные и компоненты моделей, например модели из открытых репозиториев, как Hugging Face. Очень важно проверять эти модели на наличие небезопасного или вредоносного кода в форматах файлов, а также на небезопасное или небезопасное поведение модели, которая будет использоваться в приложении.

Заключение

В заключении хотелось бы отметить, что в отличии от традиционных уязвимостей программного обеспечения, уязвимости ИИ нельзя «залатать». Поэтому их необходимо контролировать. Так брандмауэр для приложений ИИ позволяет разработчикам блокировать вредоносные запросы и нежелательную информацию от модели, а также небезопасные ответы от конечного пользователя. Также не стоит пренебрегать таким важным инструментом «классической» безопасности как SIEM. Необходимо также пересылать важные события из приложений ИИ в SIEM и анализировать их с помощью правил корреляции. Таким образом получится обеспечить безопасность приложений ИИ на должном уровне.


Если тема безопасности ИИ вам показалась интересной и хочется разобраться глубже, то у нас для вас отличные новости. OTUS регулярно проводит открытые уроки на пересечении искусственного интеллекта, кибербезопасности и архитектуры сложных систем. Особенно рекомендуем темы:

Комментарии (6)


  1. linux-over
    22.05.2025 17:28

    статья появилась 10 минут назад и ей уже проставили 2 минуса (Хабр пишет что время чтения 13 минут).

    рядом в ленте вторая статья, тоже со словосочетанием ИИ в заголовке. Тоже два минуса. Возможно, те же два минуса?

    такое ощущение, что слово "ИИ" в заголовке алармит некоторых людей и они штырят минусы не глядя.

    Мне кажется, подобное поведение может демотивировать много хороших авторов. И это грустно.

    PS: если что, эта статья не моя - я зашёл почитать.


    1. pnmv
      22.05.2025 17:28

      да, кто-то неистово минусует. тема токсична и перегрета, прямо как "найм в ит" или "войти в ойти". жду, когда их объединят. вероятно, это обрушит хабр.


    1. Ndochp
      22.05.2025 17:28

      Я пролистал сильно меньше чем за 10 минут, но даже это время пожалел. Минусы заслуженные.


    1. CBET_TbMbI
      22.05.2025 17:28

      Минус не ставил, но статья — водяная вода. Сути и конкретики минимум.

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

      Конец статьи.


    1. Shaman_RSHU
      22.05.2025 17:28

      Минусы будут ставить до тех пор (я не могу), пока не изменится подход к написанию статей этими авторами: Статьи с путаницей в терминах и недостаточной структурированностью подачи материала только для того, чтобы в конце прорекламировать очередной свой курс.

      Авторы, с таким изложением мало кто заинтересуется Вашими курсами. Вы проводили статистику, сколько народу пришло на Ваши курсы после таких статей? Может быть перестать гнаться за продажами и сразу после выхода очередного курса публиковать сырые статьи, а немного их технически дорабатывать? Тогда и интерес проснется у аудитории.


  1. Parcevale
    22.05.2025 17:28

    Слишком обще, будто ИИ максимально обтекаемо пытается о чем то сказать.