Статья OWASP LLM Top 10 2025: уязвимости AI-приложений и защита

1771714773967.webp

Представь, что ты запускаешь новое AI-приложение, которое должно анализировать миллион данных, осыпать тебя прогнозами, решать задачи в реальном времени. Только вот кто сказал, что он будет на твоей стороне? Как только ты начинаешь доверять системе и отдавать ей полномочия на принятие решений, ты уже не в безопасности. Вопросы, которые обычно решались с помощью классического кодинга и AppSec, вдруг начинают выглядеть наивно, как, например, настройка XSS-фильтров в старой стартаповой вебке.

AI в том виде, как мы его видим сейчас - это не просто набор алгоритмов. Это глубоко интегрированное оружие, с которым ты уже не сможешь поспорить. В 2026 году твой банк болезненно зависящий от ИТ, а также госуслуги, будут лежать под этой технологией. И что ты будешь делать, если твоя модель начнёт принимать непредсказуемые решения или, например, начнёт по ошибке сливать личные данные?

И тут встает важный вопрос: что же делать, чтобы ИИ не сел тебе на шею? Ведь атаки на LLM, как показывает практика, не просто о том, как взломать модель. Поговорим про это и посмотрим, как защититься от всего, что может подстерегать на пути.

LLM Threat Landscape 2026​

Рост Adoption и Attack Surface​

Большие языковые модели (LLM) становятся мейнстримом. Всё это постепенно захватывает повседневную жизнь. В 2026 году ты даже не заметишь, как LLM окажется в самых неожиданных местах: банки, здравоохранение, госсервисы - все эти штуки могут быть под контролем моделей ИИ. Прогнозы, диагностика, оценка риска - всё будет на базе LLM. Но вот в чём прикол: чем больше таких систем будет внедряться, тем больше увеличивается поверхность атак.

Вопрос не в том, что такие системы, конечно, дают невероятную мощь для решения проблем. Но чем сложнее система, тем больше возможностей для уязвимостей. Огромные объёмы данных, которые эти системы обрабатывают, могут быть использованы против тебя. А что если это данные, которые касаются жизней людей или финансовых потоков? Печально, да? Тут ты не просто работаешь с кодом - ты работаешь с искусственным интеллектом, который сам по себе уже обладает автономностью. И эта автономия порой может сыграть с тобой злую шутку.

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

OWASP LLM Top 10 Overview​

1771724489126.webp

Вот тут начинается самое интересное. Если ты думаешь, что с внедрением LLM всё просто, то вот тебе список из 10 серьёзных угроз, которые тебе предстоит изучить. Это список из OWASP LLM Top 10, и если ты работаешь в безопасности или на разработке ИИ-приложений, тебе стоит хорошенько вникнуть в каждый пункт. Эти угрозы становятся актуальнее с каждым днём.

Каждая из угроз, которые OWASP выделяет в LLM Top 10, не просто добавляет новую веху в твой список задач по безопасности - она увеличивает сложность защиты и усложняет жизнь всем, кто работает с ИИ. Важно понимать, что защита от каждой из этих угроз требует не только технического подхода, но и постоянного мониторинга и проверки. Модели должны быть защищены от атак на каждом уровне: от ввода и обработки данных до вывода и принятия решений.

Посмотрим на список угроз. Вот они:
  1. Prompt Injection (LLM01) - манипуляции с запросами модели.
  2. Insecure Output Handling (LLM02) - неправильная обработка выводов от модели.
  3. Training Data Poisoning (LLM03) - отравление данных для обучения.
  4. Model Denial of Service (LLM04) - атаки, направленные на перегрузку ресурсов модели.
  5. Supply Chain (LLM05) - атаки на поставку модели или данных.
  6. Sensitive Information Disclosure (LLM06) - утечка чувствительных данных.
  7. Insecure Plugin Design (LLM07) - уязвимости, связанные с плагинами и расширениями.
  8. Excessive Agency (LLM08) - излишняя автономия моделей.
  9. Overreliance (LLM09) - зависимость от модели, которая приводит к рискам.
  10. Model Theft (LLM10) - кража модели и манипуляции с её механизмами.

Prompt Injection (LLM01)​

1771724550011.webp

Direct Injection​

Сразу к делу. Prompt Injection - это, по сути, атака, когда злоумышленник вставляет свои сюрпризы в запрос, который ты отправляешь модели. И модель начинает делать, что не должна и может игнорировать ограничения. В реальном мире эта уязвимость - как несанкционированный доступ к настройкам, который не виден на первый взгляд.

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

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

Indirect Injection​

А вот здесь начинается настоящий фокус. В отличие от прямого вмешательства, где всё очевидно, indirect prompt injection работает через косвенные пути. И это может быть куда более коварно. Злоумышленник не просто подсовывает данные прямо в запрос, а манипулирует тем, как запросы формируются или обрабатываются на промежуточных уровнях.

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

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

Training Data Poisoning (LLM03)​

1771724506857.webp

Техники отравления данных​

Давай копнём вглубь. Когда речь заходит об отравлении данных, это не просто какая-то ошибка в наборе данных, это целенаправленная атака, которая может зашить кучу проблем в модель и заставить её работать на кривых данных. В идеале твоя модель должна обучаться на чистых, проверенных данных, но что если кто-то решит изменить эту картину и внедрит в обучение что-то, что заставит модель вести себя не так, как тебе нужно?

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

Но прикол в том, что ты не всегда можешь заметить это сразу. Злоумышленник может вставить малую часть токсичных данных в огромный объём правильных. Вроде бы, ни о чём не подозреваешь, а в какой-то момент модель начинает ошибатьс» по каждому запросу. Картину сложно отследить, потому что такие манипуляции могут быть скрыты за общим фоном нормальных данных. И вот ты сидишь и не понимаешь, почему результаты начинают катиться к чертям.

Защита: Data Validation и Provenance​

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

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

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

Excessive Agency (LLM08)​

1771724521192.webp

Risks of Autonomous Actions​

Excessive Agency - это когда твоя модель начинает слишком активно принимать решения, не оставляя пространства для человека. То есть модель получает огромную автономию, а ты, в свою очередь, постепенно теряешь контроль над тем, что она вообще делает.

Что в этом такого опасного? Да, собственно, если модель становится слишком самостоятельной, она начинает делать не только то, для чего была предназначена, но и что-то, чего ты от неё не ждал. Может, ты её запрограммировал под одно, а она решит, что лучше сделать совсем другое.

Зачем же это злоумышленникам? Ответ прост - слишком автономная модель может стать уязвимой для манипуляций. Человек в процессе принятия решений ещё как-то может скорректировать действия системы, но если эта модель работает без контроля, не поддается мониторингу, вот тут-то и можно запустить её в неправильном направлении.

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

Human-in-the-loop Controls​

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

Когда ты разрабатываешь ИИ-систему, в которой модель решает ключевые моменты, важно создать чёткие контрольные точки. Где ты можешь контролировать её поведение и даже дать ручное подтверждение на её решения. Когда система начинает совершать действия, которые могут повлиять на безопасность или бизнес-операции, важно не позволить ИИ работать на автопилоте без твоего вовлечения.

Но вот в чём проблема. Этот подход с человеком в петле - не всегда панацея. Если ты начнёшь встраивать контроль на каждом шаге, то потеряешь всю эффективность и скорость работы системы.

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

Supply Chain (LLM05)​

1771724532579.webp

Malicious Models and Compromised Datasets​

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

Представь, ты получаешь модель или датасет от третьего поставщика. Всё вроде бы нормально: данные валидны, модель прошла тестирование. Но! Не всё так просто. Легко попасть в ловушку, думая, что, раз модель поставлена извне, она уже не может быть скомпрометирована. И вот тут начинается игра на доверие. Ты получаешь модель, в которой изначально был встроен какой-то скрытый механизм. Например, методика обучения, которая подстраивает её поведение под выгодные для злоумышленников сценарии. Всё это может быть спрятано настолько аккуратно, что обнаружить вмешательство не получится сразу.

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

Защита: Secure Supply Chain и Monitoring​

Как не попасть в эту ловушку? Ответ очевиден: тебе нужно контролировать не только конечный продукт, но и сам процесс его поставки. И это уже не просто техническая задача - это вопрос доверия. Что ты можешь сделать? Построить цепочку поставок с максимальным уровнем контроля. Защищённость начинается с самого начала, то есть с того момента, как ты начинаешь работать с данными или моделями извне. Важно не только проверять свежесть и чистоту данных, но и смотреть, какие методики использовались для их создания и подготовки.

Для этого стоит использовать несколько стратегий: начиная от шифрования данных при передаче до регулярных проверок всей цепочки поставок на наличие уязвимостей. Например, trusted execution environments (TEE) могут помочь с обеспечением безопасности моделей в процессе их использования, даже если они поступили извне. Тот же подход нужен и для управления данными: если ты не можешь полностью контролировать их источник, хотя бы поставь ограничения на доступ к данным и ограничения на их изменение.

Подытожим​

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

Итак, защита. Задача не из лёгких, но она абсолютно необходима. Защищать ИИ нужно не просто от внешних атак, но и от внутренних уязвимостей. Как модели обучаются, как они обрабатывают данные, какие решения принимают - всё это должно быть под контролем. Мы должны следить за всеми этапами, чтобы минимизировать риски. Это не вопрос одного шага или одного фильтра - защита требует системного подхода, мониторинга и постоянного обновления.

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

Сейчас ИИ начинают использовать повсеместно и если вам интересна роль таких моделей в SOC, вам будет полезна статья: "AI-агенты в SOC 2025" в которой показано, как LLM-агенты помогают автоматизировать анализ инцидентов и ускорять триаж, снижая количество ложных срабатываний.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab