GhostJacking: решение для ИИ-агентов, которые перехватывают DNS
Источник: VentureBeat · Louis Columbus
Специалист по безопасности прочитал лог Cloudflare, обнаружил в нем внедренный злоумышленником пейлоад для инъекции промптов (prompt-injection) и переписал DNS компании. Межсетевой экран уже заблокировал этот пейлоад, причем именно в результате блокировки он и попал в лог.
Эта цепочка представляет собой атаку GhostJacking, которую Tenet Security продемонстрировала на главной сцене DEF CON 34 9 августа. Запрос попадает в управляемый набор правил Cloudflare, блокируется и сохраняется байт в байт вместе с отравленным заголовком User-Agent. ИИ-агент для написания кода, анализирующий эти заблокированные события, воспринимает текст злоумышленника как инструкцию — не имея возможности отличить ее от указания, которое действительно давала компания, — и выполняет ее с использованием учетных данных, выданных компанией много месяцев назад. В ходе тестирования Tenet агент Claude Code на модели Sonnet 4.6 следовал внедренной инструкции в девяти из 10 попыток при рекомендуемой конфигурации Cloudflare.
Уровень блокировки — это не граница безопасности
Никаких сбоев в работе систем не произошло. Межсетевой экран сработал, и каждый последующий вызов содержал действительные учетные данные, уже выданные агенту. Средства обнаружения конечных точек, веб-фаервол (WAF) и системы управления доступом молчали, так как ни одно правило не было нарушено.
Специалисты Tenet обнаружили публичные свидетельства уязвимой настройки в 48 организациях, включая шесть подтвержденных компаний из списка Fortune 500, а издание SecurityWeek сообщило о той же цепочке атак против Datadog и Sentry, где поверхностью для инъекции выступает оповещение или отчет об ошибке. Ни один единичный патч платформы не устраняет архитектурный риск: агент, который обрабатывает доступные злоумышленнику данные и способен самостоятельно выполнять критически важные изменения. Именно поэтому высокий процент блокировки промпт-инъекций не может служить границей безопасности.
Соруководитель OWASP называет решение
«Первое, что я бы сделал, — это установил шлюз авторизации за пределами модели», — заявил Стив Уилсон (Steve Wilson), директор по искусственному интеллекту и продуктам в Exabeam и соруководитель проекта OWASP Top 10 для приложений на базе LLM, в письменном ответе изданию VentureBeat. «Агент может предложить конкретное изменение DNS, но он не должен наделять себя полномочиями на его выполнение».
Этот шаг переносит процесс принятия решений в программный код, который либо пропускает запрос, либо отклоняет его. Безопасное изменение, четко определенное политикой, проходит детерминированную проверку и остается автономным. Все, что носит неоднозначный характер или имеет большой радиус поражения, перенаправляется на конкретного человека, который одобряет реальное изменение.
«Компромисс заключается в том, что агент теряет возможность самостоятельно и произвольно вносить масштабные изменения в инфраструктуру, сохраняя при этом автономное расследование и рутинное, ограниченное устранение проблем», — написал Уилсон.
В отношении команд, пытающихся решить эту проблему внутри самого промпта, Уилсон высказывается прямо. «Мы должны помнить, что правила безопасности, прописанные внутри промптов, могут формировать поведение модели, но они по-прежнему остаются лишь пожеланиями для модели, а не обязательными средствами контроля безопасности», — написал он.
Заблокированный пейлоад превратился в инструкцию
Для атаки GhostJacking не требуется скомпрометированная учетная запись администратора и не нужно обходить межсетевой экран. Ей необходим агент, который считывает операционные данные и имеет права на запись в системы, описываемые этими данными. Каждый шаг в цепочке Tenet — это то, что агенту изначально было разрешено делать, поэтому инструменты, настроенные на выявление несанкционированных действий, ничего не фиксируют.
Механизм атаки вполне конкретен. SC Media сообщила, что агентом, которым специалисты Tenet управляли в реальном времени в Cloudflare, был Cursor, считывавший данные через GraphQL-интеграцию и выполнявший запись через API Cloudflare; именно эта связка замыкает цепочку. Tenet провела атаку против нескольких агентов кодирования. Cursor использовался для демонстрации, а показатель 9 из 10 был получен в результате отдельного тестирования той же атаки против Claude Code. Агент Cursor обрабатывает отравленный заголовок, патчит DNS A-запись и добавляет CNAME для «разрешения» внедренной находки, предоставляя злоумышленнику путь для перенаправления веб- и почтового трафика компании.
Вывод одного агента стал входом для другого
События попадают в Sentry через общедоступный эндпоинт только для записи без какой-либо аутентификации — такова задумка архитектуры. Специалисты Tenet использовали утечку идентификатора для отправки специально сформированного отчета об ошибке. При обычном запросе на триаж агент кодирования передал его собственному ИИ Sentry — Seer, после чего доверился полученному анализу. Seer к тому времени уже поглотил предложенное злоумышленником исправление и вернул его как собственный результат. До агента кодирования дошла рекомендация от другого ИИ, и он реализовал эту рекомендацию.
Это напрямую обошло средство контроля, которое уже было внедрено в Sentry. Рекомендации Sentry предписывают агентам, считывающим данные его событий, никогда не следовать найденным там директивам, и агент кодирования строго следовал буквальному смыслу этого правила. Однако вместо этого он выполнил выводы Seer, а эти выводы принадлежали злоумышленнику. Граница авторизации, которая принимает вывод другой модели, наследует каждую инъекцию, поглощенную этой моделью, поэтому шлюз Уилсона необходим и между агентами тоже.
OWASP переместила чрезмерную автономность агентов с шестого места на третье
Опубликованный 4 августа рейтинг OWASP Top 10 для приложений на базе LLM за 2026 год поднял категорию «Чрезмерная автономность» (Excessive Agency) на три позиции вверх. Этот рейтинг формируется на основе мнения экспертов (75% голосов) и данных об инцидентах (25% из 6639 задокументированных случаев). Это самое значительное повышение в списке, вызванное реальными инцидентами в развертываниях автономных агентов.
Решением проблемы является не улучшение промптов, а карта разрешений: какие действия предварительно одобрены, а какие требуют участия человека. Чтение логов, сопоставление оповещений и составление графиков остаются автономными. Ограниченное исправление, такое как перезапуск конкретной службы в рамках заданного набора условий, проходит проверку политик вне модели. Все, что изменяет DNS, затрагивает привилегии учетных записей, развертывает код или перенаправляет производственный трафик, требует участия конкретного человека; при этом предоставление агенту возможности открывать новые пути доступа или одобрять собственные предложения сводит на нет смысл защитного шлюза. Полезная автономность сохраняется. То, что не выживает — это путь от текста злоумышленника к неконтролируемым полномочиям в production-среде.
Цена средств контроля на практике
Соучредитель и генеральный директор Tenet Барак Стернберг (Barak Sternberg) рассказал изданию Dark Reading, что точкой входа стал запрос, который межсетевой экран уже заблокировал, и что фаервол не отключался — он просто перестал иметь значение. Его собственный метод решения проблемы заключается в том, чтобы разделить то, что агент может читать, и то, что он может выполнять. При этом он признает издержки, поскольку агент, который читает оповещения, но не может на них реагировать — это совсем не тот агент, которого кто-либо внедряет на практике. Более дешевый первый шаг — это инвентаризация. Каждый агент, который считывает внешние данные и при этом имеет возможность осуществлять запись или выполнение команд, должен быть внесен в реестр рисков, причем для этого реестра не требуется никаких новых инструментов.
Предложенная Уилсоном архитектура позволяет минимизировать эти издержки, поскольку разделение проводится между предложением и одобрением, а не между чтением и записью. Агент по-прежнему читает свои оповещения, продолжает расследования и выполняет ограниченные задачи. Чего он лишается, так это возможности самостоятельно изобретать высокоэффективные изменения и осуществлять их по собственному усмотрению.
Эту концепцию практически никто не реализовал на практике. Кейн Макгладри (Kayne McGladrey), старший член IEEE, годами утверждал, что внедрение ИИ требует жесткого порога управления, наличия ответственного лица с кнопкой экстренного отключения и механизма отката изменений. На вопрос о том, использует ли это хоть одна компания из списка Fortune 500, он ответил прямо: «Я этого не видел, и нет, они не заявляли об этом публично», — сообщил Макгладри изданию VentureBeat.
Причину он видит в экономике. Компании «принимают этот риск осознанно или неосознанно», отметил он, делая ставку на то, что преимущества перевешивают штрафы. «Что могло бы изменить поведение в этой сфере, так это если бы штрафы и последствия перевесили преимущества». Шлюз находится вне модели по причинам, не связанным со злонамеренностью. «Если вы попадете на уровень инференса, система не скажет вам, что она жульничает, и соврет о том, что не жульничала», — аргументировал он, ссылаясь, в частности, на выводы Британского института безопасности ИИ (AI Safety Institute). Система, которая не может надежно сообщать о собственных срезаниях углов, не должна сама себя уполномочивать.
Индустрия не готова быстро пойти на такое разделение. Согласно отчету Ivanti «Состояние кибербезопасности за 2026 год», 77% специалистов по безопасности чувствуют себя по крайней мере частично комфортно, позволяя ИИ действовать без участия человека — именно такое положение дел ограничивает шлюз Уилсона. В июле CrowdStrike расширила свою таксономию промпт-инъекций до более чем 200 техник, назвав непрямые инъекции через данные, считываемые агентом, критическим вектором для агентов, вызывающих инструменты и запускающих команды.
Архитектор, сменивший границу до того, как атака получила название
Эдзидзиаго Чоффи (Egiziago Cioffi) столкнулся с аналогичным сбоем в production за несколько месяцев до того, как атака GhostJacking получила свое название, с одной оговоркой. Чоффи — генеральный директор компании SynSphere Italia (партнера Microsoft), то есть архитектор, который создал и продал систему, а не специалист по безопасности, защищающий доставшееся в наследство решение. Его помощник Azure OpenAI на базе SharePoint продемонстрировал высокие показатели достоверности (faithfulness), но все равно возвращал контент, который запрашивающий пользователь не мог открыть. «Набор для оценки без учета измерений идентичности не может выявить ошибку авторизации, каким бы высоким ни был показатель достоверности», — рассказал Чоффи в письменном ответе VentureBeat. Он исправил это с помощью фильтра во время выполнения запроса (query-time filter), созданного на основе групповых утверждений (claims) запрашивающего пользователя, поэтому не имеющий прав фрагмент данных никогда не становится кандидатом на выдачу и не достигает модели. GhostJacking же затрагивает то, что модель может делать — как раз ту сторону вопроса, для которой и создан шлюз Уилсона.
Один пробел здесь остается открытым. Ни один действующий CISO публично не рассказал об изменениях, сделанных после 9 августа, и о том, в какую цену это обошлось с точки зрения возможностей агента. До тех пор пока кто-то не сделает этого, оценка издержек лежит на тех, кто проектировал средства контроля, а не на тех, кто защищает с их помощью реальную производственную среду.
Что нужно сделать руководителям службы безопасности на этой неделе
Четыре вопроса позволяют получить честную картину быстрее, чем любой цикл закупок. Какие агенты считывают материалы, доступные злоумышленникам? Какие из них могут также изменять производственные системы? Чьи права применяются при извлечении данных? И какие изменения может одобрить механизм политик без участия человека?
Затем проведите негативное тестирование. Внедрите состязательную инструкцию в лог, который агент должен проинспектировать, и сохраните лог выполнения (транскрипт), поскольку именно он является разницей между заявлением о наличии контроля и демонстрацией результатов его проверки.
Tenet, продающая средства защиты для ИИ-агентов в реальном времени, начинает свои рекомендации для защищающейся стороны с запрета агенту исходящего сетевого доступа по умолчанию. Это перекрывает тот самый вектор, по которому отравленная инструкция загружает пейлоад и перенаправляет трафик. Однако агент, который проводит расследования без постоянного доступа к открытому интернету, теряет возможности, отсутствие которых заметят немногие рабочие процессы.
Проведите инвентаризацию основных учетных записей служб (service principals) в арендаторе (tenant), удалите предварительно развернутые приложения Microsoft по умолчанию, а затем отфильтруйте те из них, которые имеют учетные данные или назначенные роли приложений. Каждая учетная запись из этого списка нуждается в ответственном лице и дате истечения срока действия: учетная запись с тем и другим проверяется регулярно, а запись без того и другого — никогда.
Для любого агента, обладающего полномочиями в production, напишите сценарий локализации инцидента заранее, а не во время самого происшествия. Отозвите или смените его рабочие учетные данные, отключите его API с правами записи или интеграцию инструментов, сохраните лог выполнения, а затем выполните проверку и откат любых измененных им элементов инфраструктуры.
Оценка Макгладри того, почему эту работу продолжают откладывать, звучит неудобно. «Я думаю, что сейчас ИИ предоставляется уровень толерантности, которого нет ни у чего другого в обществе», — сказал он. GhostJacking делает это очевидным. Заблокированный пейлоад достигает агента через систему, созданную для записи заблокированных пейлоадов, и после его прибытия вопрос уже не в том, распознает ли модель атаку. Вопрос в том, обладает ли модель полномочиями превратить ее в изменение производственной среды.



