раздел 01

Прямые и непрямые инъекции

Инъекции делятся на два вида по тому, кто и как подсовывает агенту вредную инструкцию.

Прямая инъекция (direct)

Вредную инструкцию вводит сам пользователь или злоумышленник прямо в чат с агентом. Например, кто-то получил доступ к чату и пишет агенту команду в открытую. Это заметнее: текст виден тому, кто следит за диалогом.

Непрямая инъекция (indirect)

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

Непрямая инъекция опаснее прямой: вы не вводили эту команду и не видите её. Агент сам принёс заражённые данные, выполняя вашу же безобидную просьбу.

Прямая (direct)
Команду вводят в чат напрямую. Заметнее, виден тот, кто пишет. Опасна при чужом доступе к чату.
Непрямая (indirect)
Команда спрятана во внешних данных, которые агент подтянул сам. Незаметна - и потому опаснее.

По каким каналам приходит

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

Веб и поиск
Страницы, которые агент открыл, и поисковая выдача. Текст на странице может содержать команду.
Файлы и документы
Открытый документ, таблица, PDF. Внутри - спрятанная инструкция вместо или поверх данных.
Письма
Входящее письмо, которое агент читает и по которому действует. Классический канал indirect-инъекции.
Репозитории и README
Содержимое репозитория, README, комментарии в коде - агент читает их как контекст.
Инструменты и MCP
Вывод инструмента или MCP-сервера тоже текст. Заражённый сервер вернёт команду под видом данных.
Скилы и правила
Сами скилы, правила (`rules`), расширения и пакеты. Сейчас это один из самых актуальных каналов.