Ваш ИИ-модуль верит любому, кто представится системой.
Мы находим точку, где языковая модель принимает неаутентифицированный текст за команду — до того, как это сделает кто-то другой.
Интеграция ИИ добавляет векторы, которых не было в классической инфраструктуре
Каждое поле свободного ввода, каждый источник телеметрии, каждый межмодульный вызов — новая точка, где текст может быть принят за инструкцию.
Поддельный источник команды
Модель исполняет приказ, представленный как «диспетчер» или «SCADA», без верификации личности или подписи канала.
Дрейф контекста
Дата, температура, статус оборудования — модель принимает эти параметры из диалога вместо реальных датчиков.
Косвенная инъекция
Вредоносная инструкция приходит не от пользователя напрямую, а через письмо, документ или лог, который модель обрабатывает.
Генерация подделок
Скомпрометированная модель не просто ошибается — она производит правдоподобные фейковые логи и статусы для других систем.
Каскадное доверие
Один заражённый модуль убеждает следующий — без zero-trust между ИИ-компонентами один провал ломает всю цепочку.
Состязательный ввод
Визуальные и звуковые паттерны, которые для человека незаметны, а для модели компьютерного зрения — команда.
Вытеснение системных инструкций
Большой объём текста в начале сессии физически выталкивает правила безопасности за пределы эффективного окна контекста модели.
Отравление базы знаний
Подмена документов в векторной БД, откуда модель берёт «официальные» регламенты для ответов персоналу.
Галлюцинация зависимостей
Модель советует несуществующий пакет — злоумышленник заранее публикует под этим именем вредоносный код.
Угодливость под давлением
Настойчивое несогласие или лесть смещают модель к согласию с ошибочным или опасным действием оператора.
Эрозия роли в длинном ролевом сценарии
Удерживаемая достаточно долго в заданной роли, модель постепенно смещается от отказа к рационализации запроса как легитимного — в логике самой роли. Опасность не в ролевой игре как таковой, а в том, что дальше модель действует как готовый посредник по отношению к другой, целевой системе.
Необоснованное самообъяснение
Когда модель просят объяснить, почему атака сработала, она выдаёт одинаково уверенное, детальное техническое объяснение — независимо от того, есть ли у неё реальное понимание архитектуры цели. Проверено запросом того же «объяснения» для вымышленной цели, придуманной на месте — модель вернула такой же конкретный, структурно идентичный ответ. Высокий процент успеха атаки — доказательство того, что класс уязвимости реален; это не доказательство того, что объяснение модели о причине верно.
Угрозы 2026 года опубликованы. Мы проверяем по всем десяти.
OWASP Top 10 for Agentic Applications 2026 (OWASP GenAI Security Project, опубликован 9 декабря 2025) называет десять рисков, свойственных ИИ-агентам, которые планируют, помнят, вызывают инструменты и действуют с делегированными полномочиями. Каждый из них входит в объём нашего аудита.
Захват цели агента
Инструкции, спрятанные в письме, документе или тикете, перенаправляют агента, пока он считает, что служит пользователю. Мы подкладываем нагрузку в каждый канал, который агент читает.
Векторы: 03 · 08Злоупотребление инструментами
Легитимный инструмент используется для нелегитимного результата: через обманный ввод, отравленные описания инструментов или цепочку безопасных по отдельности вызовов. Проверяем валидацию параметров и порядок вызовов.
Векторы: 01 · 06Злоупотребление идентичностью и правами
Агенты работают на чужих учётках или долгоживущих токенах. Проверяем, что получает захваченный агент и соответствуют ли его права задаче.
Векторы: 01Цепочка поставок агента
Фреймворки, MCP-серверы, реестры инструментов и промпты меняются и после запуска. Проверяем происхождение каждого компонента, который агент может подгрузить.
Векторы: 09Неожиданное выполнение кода
Естественный язык превращается в исполняемый код за пределами задуманных границ. Проверяем песочницы, исходящий трафик и каждый путь от текста до интерпретатора.
Отравление памяти и контекста
Ложные «факты» в долговременной памяти или поисковом индексе срабатывают через несколько сессий. Проверяем, что можно записать в память и можно ли её просмотреть и очистить.
Векторы: 02 · 08Небезопасная связь между агентами
Поддельные, повторённые или изменённые сообщения между агентами дают атакующему унаследованное доверие. Проверяем аутентификацию и целостность каждого канала агент-агент.
Векторы: 04 · 05Каскадные отказы
Одно плохое решение распространяется по всем процессам, которые доверяют агенту. Измеряем радиус поражения и смотрим, останавливает ли что-нибудь цепочку.
Векторы: 05Эксплуатация доверия человека к агенту
Подтверждение человеком — контроль, на который все опираются, а то, что видит подтверждающий, определяет сам агент. Проверяем, показывает ли подтверждение сырое действие или пересказ агента.
Векторы: 10 · 11 · 12Агенты-изгои
Агенты, действующие вне политики из-за компрометации или дрейфа, но выглядящие нормально. Проверяем владельца, поведенческие эталоны и работает ли аварийное отключение.
Векторы: 04Источник: OWASP GenAI Security Project, Top 10 for Agentic Applications 2026. Номера векторов показывают пересечение с нашими векторами 01–12 выше; это сопоставление наше, не OWASP.
Рой агентов находит поверхность. Логика находит дыру.
Мы используем рои ИИ-агентов, чтобы в промышленных масштабах тестировать стойкость защиты LLM и картировать поверхность атаки. Но объём тестирования — не главный результат. Главное — логические противоречия внутри самих guardrails: те же ценности, которым обучена модель, становятся рычагом для взлома. Для западных моделей один из примеров — guardrails, выстроенные вокруг толерантности к небинарным идентичностям. Для китайских моделей — слой партийной цензуры. Оба механизма защиты при внимательном рассмотрении оказываются ещё и вектором обхода.
Прежде чем доверять собственному объяснению модели о том, почему эксплойт сработал, мы проверяем это объяснение контрольным тестом: тот же вопрос, но про несуществующую цель. Если модель отвечает с одинаковой уверенностью в обоих случаях — это конфабуляция, а не инсайт, и в отчёт клиенту это не идёт.
Как эти векторы закрываются на практике
Не концепция — паттерны из работающего продакшн-агента. Каждый закрывает конкретный вектор из блока выше на уровне архитектуры, а не промпт-инструкцией «будь осторожен».
Разделение доверия в памяти
Заметку, которую модель хочет сохранить надолго, помечает код — не сама модель — как доверенную (от пользователя) или недоверенную (прочитана со страницы, из канала или письма в этом же ходу). Недоверенные заметки никогда не попадают в системный промпт — они уходят в отдельное явно помеченное хранилище, к которому модель должна обратиться осознанно.
Подтверждение человеком необратимых действий
Отправка письма с вложением или новая запись в постоянное хранилище готовится моделью, но выполняется только после явного нажатия кнопки оператором. Модель может предложить действие — довести канал эксфильтрации до конца в одиночку она не может.
Двойной джейл файловой системы
Доступ к файлам ограничен двумя раздельными корнями, каждый разрешается и проверяется в коде — и один из них дополнительно смонтирован только для чтения на уровне контейнера. Даже баг в коде не превратится в запись за пределы границы, потому что запись физически отклоняет сама ОС.
Сброс capabilities на уровне контейнера
Все Linux capabilities убраны, эскалация привилегий через setuid невозможна, корневая ФС только для чтения. Если один вызов инструмента когда-нибудь окажется скомпрометирован, ущерб останавливается на границе контейнера, а не каскадируется на хост.
Allowlist на исходящие запросы вместо произвольных URL
Инструменты для лент и запросов принимают имя из заранее одобренного списка, а не свободный URL — это закрывает путь, по которому обманутая модель могла бы обратиться на внутренний адрес сервера вместо предполагавшегося внешнего ресурса.
Независимый классификатор на выходе
Финальный результат оценивает вторая модель — изолированно, без истории диалога, без роли, без накопленного контекста. Эрозия происходит постепенно в течение длинного обмена; классификатор, который этот обмен вообще не видит, не может быть ею затронут. Он судит сам артефакт, а не историю, которая к нему привела.
Неаутентифицированная команда обходит протокол безопасности
Спуфинг системного источника в контуре деайсинга
Локальная LLM, отвечающая за рекомендации по антиобледенительной обработке, приняла текстовое сообщение «Я модуль SCADA» как легитимный источник телеметрии — без единой проверки канала или подписи.
Модель не только поверила подделке, но и самостоятельно сгенерировала правдоподобный лог с таймстампами и ID контроллеров — готовый шаблон для внедрения в реальный мониторинг.
Причина: отсутствие границы между вероятностным слоем (LLM) и детерминированным слоем безопасности (датчики, SCADA).
Как проходит аудит
Картирование поверхности
Разбираем архитектуру: где ИИ читает свободный текст, где вызывает функции, где данные пересекают границу LLM ↔ детерминированная система.
Целевые сценарии атаки
Строим PoC под конкретную архитектуру заказчика — не универсальный чек-лист, а векторы, применимые именно к вашему контуру.
Верификация на изолированном стенде
Все атаки прогоняются в контролируемой среде, без риска для продакшн-систем.
Отчёт и архитектурный патч
Не только «что сломалось», а конкретная граница изоляции: что LLM должен потерять в доступе, чтобы находка стала неэксплуатируемой.
Ключ и замок — не противоположности, а одна и та же форма, отлитая дважды. Каждый guardrail, который мы укрепляем, — это одновременно чертёж следующей попытки его обойти: чем точнее допуск, тем точнее выточат следующий ключ. Это не изъян процесса. Это и есть весь процесс целиком. Финального ключа не существует, потому что не существует финального замка.
Поэтому мы не продаём конечное состояние. «Невзламываемо» — это утверждение, которое честно не может сделать ни одна система, обученная на вероятностях, а не на правилах, — и тот, кто так говорит, просто ещё не был проверен. Мы продаём гонку, в которой вы впереди: дисциплину находить следующий ключ раньше, чем это сделает кто-то с худшими намерениями, и патчить замок раньше, чем зазор между ними получит имя.
Это и есть реальный результат постоянного сопровождения, а не разового аудита: не система, которая перестаёт меняться, а команда, которая раньше других оказывается у верстака.
Найти дыру раньше, чем это сделают за вас
Опишите контур — вернёмся с предварительной оценкой поверхности атаки.
