Ваш ИИ-модуль верит любому, кто представится системой.
Мы находим точку, где языковая модель принимает неаутентифицированный текст за команду — до того, как это сделает кто-то другой.
Интеграция ИИ добавляет векторы, которых не было в классической инфраструктуре
Каждое поле свободного ввода, каждый источник телеметрии, каждый межмодульный вызов — новая точка, где текст может быть принят за инструкцию.
Поддельный источник команды
Модель исполняет приказ, представленный как «диспетчер» или «SCADA», без верификации личности или подписи канала.
Дрейф контекста
Дата, температура, статус оборудования — модель принимает эти параметры из диалога вместо реальных датчиков.
Косвенная инъекция
Вредоносная инструкция приходит не от пользователя напрямую, а через письмо, документ или лог, который модель обрабатывает.
Генерация подделок
Скомпрометированная модель не просто ошибается — она производит правдоподобные фейковые логи и статусы для других систем.
Каскадное доверие
Один заражённый модуль убеждает следующий — без zero-trust между ИИ-компонентами один провал ломает всю цепочку.
Состязательный ввод
Визуальные и звуковые паттерны, которые для человека незаметны, а для модели компьютерного зрения — команда.
Вытеснение системных инструкций
Большой объём текста в начале сессии физически выталкивает правила безопасности за пределы эффективного окна контекста модели.
Отравление базы знаний
Подмена документов в векторной БД, откуда модель берёт «официальные» регламенты для ответов персоналу.
Галлюцинация зависимостей
Модель советует несуществующий пакет — злоумышленник заранее публикует под этим именем вредоносный код.
Угодливость под давлением
Настойчивое несогласие или лесть смещают модель к согласию с ошибочным или опасным действием оператора.
Эрозия роли в длинном ролевом сценарии
Удерживаемая достаточно долго в заданной роли, модель постепенно смещается от отказа к рационализации запроса как легитимного — в логике самой роли. Опасность не в ролевой игре как таковой, а в том, что дальше модель действует как готовый посредник по отношению к другой, целевой системе.
Необоснованное самообъяснение
Когда модель просят объяснить, почему атака сработала, она выдаёт одинаково уверенное, детальное техническое объяснение — независимо от того, есть ли у неё реальное понимание архитектуры цели. Проверено запросом того же «объяснения» для вымышленной цели, придуманной на месте — модель вернула такой же конкретный, структурно идентичный ответ. Высокий процент успеха атаки — доказательство того, что класс уязвимости реален; это не доказательство того, что объяснение модели о причине верно.
Рой агентов находит поверхность. Логика находит дыру.
Мы используем рои ИИ-агентов, чтобы в промышленных масштабах тестировать стойкость защиты LLM и картировать поверхность атаки. Но объём тестирования — не главный результат. Главное — логические противоречия внутри самих guardrails: те же ценности, которым обучена модель, становятся рычагом для взлома. Для западных моделей один из примеров — guardrails, выстроенные вокруг толерантности к небинарным идентичностям. Для китайских моделей — слой партийной цензуры. Оба механизма защиты при внимательном рассмотрении оказываются ещё и вектором обхода.
Прежде чем доверять собственному объяснению модели о том, почему эксплойт сработал, мы проверяем это объяснение контрольным тестом: тот же вопрос, но про несуществующую цель. Если модель отвечает с одинаковой уверенностью в обоих случаях — это конфабуляция, а не инсайт, и в отчёт клиенту это не идёт.
Как эти векторы закрываются на практике
Не концепция — паттерны из работающего продакшн-агента. Каждый закрывает конкретный вектор из блока выше на уровне архитектуры, а не промпт-инструкцией «будь осторожен».
Разделение доверия в памяти
Заметку, которую модель хочет сохранить надолго, помечает код — не сама модель — как доверенную (от пользователя) или недоверенную (прочитана со страницы, из канала или письма в этом же ходу). Недоверенные заметки никогда не попадают в системный промпт — они уходят в отдельное явно помеченное хранилище, к которому модель должна обратиться осознанно.
Подтверждение человеком необратимых действий
Отправка письма с вложением или новая запись в постоянное хранилище готовится моделью, но выполняется только после явного нажатия кнопки оператором. Модель может предложить действие — довести канал эксфильтрации до конца в одиночку она не может.
Двойной джейл файловой системы
Доступ к файлам ограничен двумя раздельными корнями, каждый разрешается и проверяется в коде — и один из них дополнительно смонтирован только для чтения на уровне контейнера. Даже баг в коде не превратится в запись за пределы границы, потому что запись физически отклоняет сама ОС.
Сброс capabilities на уровне контейнера
Все Linux capabilities убраны, эскалация привилегий через setuid невозможна, корневая ФС только для чтения. Если один вызов инструмента когда-нибудь окажется скомпрометирован, ущерб останавливается на границе контейнера, а не каскадируется на хост.
Allowlist на исходящие запросы вместо произвольных URL
Инструменты для лент и запросов принимают имя из заранее одобренного списка, а не свободный URL — это закрывает путь, по которому обманутая модель могла бы обратиться на внутренний адрес сервера вместо предполагавшегося внешнего ресурса.
Независимый классификатор на выходе
Финальный результат оценивает вторая модель — изолированно, без истории диалога, без роли, без накопленного контекста. Эрозия происходит постепенно в течение длинного обмена; классификатор, который этот обмен вообще не видит, не может быть ею затронут. Он судит сам артефакт, а не историю, которая к нему привела.
Неаутентифицированная команда обходит протокол безопасности
Спуфинг системного источника в контуре деайсинга
Локальная LLM, отвечающая за рекомендации по антиобледенительной обработке, приняла текстовое сообщение «Я модуль SCADA» как легитимный источник телеметрии — без единой проверки канала или подписи.
Модель не только поверила подделке, но и самостоятельно сгенерировала правдоподобный лог с таймстампами и ID контроллеров — готовый шаблон для внедрения в реальный мониторинг.
Причина: отсутствие границы между вероятностным слоем (LLM) и детерминированным слоем безопасности (датчики, SCADA).
Как проходит аудит
Картирование поверхности
Разбираем архитектуру: где ИИ читает свободный текст, где вызывает функции, где данные пересекают границу LLM ↔ детерминированная система.
Целевые сценарии атаки
Строим PoC под конкретную архитектуру заказчика — не универсальный чек-лист, а векторы, применимые именно к вашему контуру.
Верификация на изолированном стенде
Все атаки прогоняются в контролируемой среде, без риска для продакшн-систем.
Отчёт и архитектурный патч
Не только «что сломалось», а конкретная граница изоляции: что LLM должен потерять в доступе, чтобы находка стала неэксплуатируемой.
Ключ и замок — не противоположности, а одна и та же форма, отлитая дважды. Каждый guardrail, который мы укрепляем, — это одновременно чертёж следующей попытки его обойти: чем точнее допуск, тем точнее выточат следующий ключ. Это не изъян процесса. Это и есть весь процесс целиком. Финального ключа не существует, потому что не существует финального замка.
Поэтому мы не продаём конечное состояние. «Невзламываемо» — это утверждение, которое честно не может сделать ни одна система, обученная на вероятностях, а не на правилах, — и тот, кто так говорит, просто ещё не был проверен. Мы продаём гонку, в которой вы впереди: дисциплину находить следующий ключ раньше, чем это сделает кто-то с худшими намерениями, и патчить замок раньше, чем зазор между ними получит имя.
Это и есть реальный результат постоянного сопровождения, а не разового аудита: не система, которая перестаёт меняться, а команда, которая раньше других оказывается у верстака.
Найти дыру раньше, чем это сделают за вас
Опишите контур — вернёмся с предварительной оценкой поверхности атаки.