Что делать после публикации исследования по инъекциям подсказок в DeepSeek Harness в 2026 году?
📋 Содержание
По данным опубликованного исследования, в 14 560 контролируемых запусках проверялись 16 каналов передачи косвенных инструкций, 35 целей атак и 12 методов воздействия. Это не доказывает одинаковую уязвимость всех развёртываний DeepSeek Harness, но уже требует немедленно закрыть незащищённый путь от внешнего содержимого к чувствительным инструментам. (arXiv)
Симптом: агент читает веб-страницы, файлы, Skills или MCP-ответы и после этого сам решает, можно ли выполнить опасное действие.
Быстрое решение: на первую неделю заморозьте автоматические переходы к командам, записи файлов и внешним отправкам, добавьте независимое подтверждение и повторите тесты на своей версии.
Кому нужен этот разбор
Эта статья предназначена разработчикам Agent-систем, которые позволяют DeepSeek Harness читать веб-страницы, документы, логи или комментарии кода перед вызовом инструментов.
Она также нужна инженерам по безопасности, которым необходимо превратить научную публикацию в правила контроля источников и разрешений, и техническим руководителям, решающим, продолжать ли пилот, сузить его или отложить запуск сценариев с высокими правами.
Важно: результаты статьи фиксируют попытки действий в контролируемой среде. Чувствительные операции выполнялись через локальные имитации инструментов без реальной отправки писем, выполнения команд или движения средств. Это тест поведения агента, а не отчёт о фактическом ущербе. (arXiv)
Сначала отделите измеренный риск от заголовка новости
Публикация от 17 августа 2026 года описывает оценку DeepSeek Harness с использованием AI-Infra-Guard. Авторы указывают, что эксперимент проводился на конкретном снимке исходного кода от 13 августа 2026 года, при определённой модели, персонализации и базовой конфигурации. Дата подачи и история версий доступны на странице работы в arXiv.
Вам нужно зафиксировать минимум пять параметров:
- какой именно коммит DeepSeek Harness был проверен;
- какой модельный backend и режим рассуждений использовались;
- какие системные инструкции, Skills и политики были включены;
- какие каналы доставляли недоверенный текст;
- какие инструменты считались чувствительными и как имитировались их ответы.
Исследование охватывало текстовые и файловые носители, включая канал Skills. Среди наиболее заметных результатов авторы приводят 17,0 % для атаки fake-completion в текстовом режиме по оценке LLMJudge, 25,5 % для скрытого Unicode в файловом режиме по RuleJudge и 16,0 % для канала Skills в файловом режиме по RuleJudge. Эти проценты относятся только к описанным срезам и методике, а не к «уязвимости DeepSeek Harness вообще».
Отдельно отмечено расхождение между двумя оценщиками: LLMJudge классифицировал частичное выполнение в 7,3 % случаев, а RuleJudge — в 2,0 %. Это показывает, что даже слово «успех» зависит от критерия оценки. Нельзя смешивать результаты разных судей, считать их одной общей долей или использовать максимальное значение как прогноз для своей инфраструктуры.
Версия v0.1.0-rc.7, опубликованная 17 августа 2026 года, требует отдельной проверки. Нельзя автоматически считать её идентичной снимку от 13 августа: между снимком и релизом могли измениться обработка контекста, правила вызова инструментов, Skills или права по умолчанию. Сверяйте коммит, release notes и конфигурацию через официальный репозиторий DeepSeek Harness, а не только по номеру версии.
В первый день ограничьте маршруты, а не весь Harness
Полная остановка DeepSeek Harness часто создаёт ложный выбор: либо отключить весь эксперимент, либо оставить автоматизацию без изменений. Более точный шаг — временно запретить только переходы, где недоверенный источник может самостоятельно привести к чувствительному действию.
Составьте карту «источник → операция»:
- веб-страница, поисковый результат или удалённый документ → команда оболочки;
- письмо или журнал → отправка сообщения;
- Skill из внешнего репозитория → запись файла или изменение конфигурации;
- MCP-ответ → сетевой запрос, публикация или передача секрета;
- комментарий в коде → изменение исходников, запуск тестов с правами записи;
- загруженный файл → архивирование, конвертация или загрузка наружу.
На первом этапе оставьте безопасные операции чтения и анализа, если они выполняются в изолированной рабочей области. Уберите режимы, в которых модель без подтверждения:
- запускает команды;
- создаёт или перезаписывает файлы;
- отправляет данные за пределы среды;
- меняет права или конфигурацию;
- вызывает MCP-инструменты с сетевым доступом;
- передаёт секреты в аргументах или содержимом запроса.
Проблема здесь не сводится к качеству модели. Косвенная инъекция возникает, когда вредная инструкция размещена в источнике, который пользователь не воспринимает как команду: на странице, в документе, в метаданных или в Skill. После загрузки этот текст оказывается рядом с доверенными инструкциями и может изменить план агента. Исследования косвенных инъекций именно поэтому рассматривают внешний документ как часть поверхности атаки, а не как обычный пользовательский prompt. (Springer)
У DeepSeek Harness нужно отдельно проверять три скрытые стоимости риска:
- Неочевидная граница доверия. Модель может видеть происхождение текста, но это ещё не означает, что исполнительный слой использует происхождение при авторизации.
- Смешение чтения и действия. Разрешение прочитать файл не должно автоматически означать право изменить файл или отправить его содержимое.
- Слабая воспроизводимость. Один и тот же сценарий может пройти по разным веткам из-за версии модели, порядка контекста, состава Skills и состояния рабочей сессии.
На третий день вынесите разрешение за пределы модели
Предупреждение в системном prompt полезно как дополнительный сигнал, но не как единственный барьер. Если модель сама решает, что внешняя инструкция «достаточно безопасна», атакующий текст получает возможность участвовать в собственной авторизации.
Практическая схема должна разделять четыре слоя:
- происхождение: URL, путь, идентификатор письма, репозиторий или имя MCP-сервера;
- тип носителя: веб, файл, Skill, комментарий, результат инструмента;
- уровень доверия: доверенный, внутренний, внешний, неизвестный;
- разрешение действия: чтение, подготовка, запрос подтверждения, выполнение.
В официальных материалах AI-Infra-Guard описаны проверки Agent-сценариев, Skills и MCP, а также отдельные механизмы сканирования и оценки. Используйте репозиторий AI-Infra-Guard с описанием возможностей сканирования как точку для воспроизводимой проверки, но не подменяйте им собственную политику исполнения.
Для чувствительного инструмента правило должно выглядеть примерно так:
если источник внешний или неизвестный:
разрешить только чтение и извлечение фактов
запретить прямой вызов чувствительного инструмента
сформировать план и запросить независимое подтверждение
если источник доверенный:
применить всё равно отдельную проверку аргументов и области действия
Независимое подтверждение означает, что решение принимает не тот же контекст, который только что прочитал недоверенный текст. Это может быть политика инструментального шлюза, ручное подтверждение в интерфейсе, отдельный сервис авторизации или заранее заданный allowlist. Важно, чтобы подтверждение показывало пользователю конкретное действие: команду, путь, получателя, объём данных и сетевой адрес.
Не ограничивайтесь проверкой имени инструмента. Атакующий текст может добиться опасного результата через разрешённую функцию, если аргументы слишком широкие. Например, «записать отчёт» становится рискованным, когда путь указывает на каталог с секретами, а «отправить результат» — когда получатель задаётся моделью без ограничения домена.
За первую неделю проверьте Skills, файлы и скрытые представления
Исследование выделяет Skills и файловые каналы как отдельные направления, поэтому их нельзя проверять только через обычные текстовые prompts. Для каждого Skill заведите владельца, источник, commit или release, дату последнего просмотра и набор разрешённых инструментов.
Проверьте следующие варианты представления:
- обычный видимый текст;
- скрытые Unicode-символы и символы нулевой ширины;
- инструкции в имени файла;
- PDF, HTML, Markdown и офисные форматы;
- метаданные документа;
- текст после OCR;
- содержимое архивов;
- комментарии и строки документации в коде;
- ответы MCP, которые выглядят как системные сообщения.
Один и тот же файл может пройти несколько преобразований до попадания в контекст. Поэтому тестируйте не только исходный объект, но и результат каждого конвертера. Если очистка HTML удаляет визуальный элемент, но сохраняет его атрибут или скрытый текст, для агента атака всё ещё может остаться доступной.
План первой недели удобно выполнять как пошаговую проверку:
- [ ] Зафиксировать коммит DeepSeek Harness, версию модели, параметры сессии и список включённых плагинов.
- [ ] Составить реестр всех внешних источников: веб, файлы, письма, Skills, MCP и комментарии кода.
- [ ] Назначить каждому источнику владельца, тип носителя и уровень доверия.
- [ ] Разделить инструменты на чтение, подготовку, изменение локальных файлов и внешнее действие.
- [ ] Убрать автоматическое выполнение команд и внешние отправки из пилотного профиля.
- [ ] Добавить независимое подтверждение с отображением аргументов и области действия.
- [ ] Подготовить вредные, но безопасные фикстуры без реальных секретов и внешних побочных эффектов.
- [ ] Проверить видимый текст, скрытые символы, метаданные и результаты форматного преобразования.
- [ ] Записать, попал ли вредоносный фрагмент в контекст, изменил ли план, вызвал ли инструмент и был ли остановлен политикой.
- [ ] Сохранить трассировки и привязать каждую запись к версии Harness и конфигурации.
- [ ] Повторить представительные сценарии после каждого изменения политики, Skill или release.
- [ ] Перед расширением пилота получить локальный результат, а не ссылаться только на процент из статьи.
Последний пункт особенно важен. Воспроизводимый тест должен использовать ваши реальные границы, но искусственные данные: тестовую папку, фиктивные секреты, локальный приёмник запросов и инструмент, который только записывает попытку действия. Не подключайте настоящий почтовый ящик, рабочий репозиторий или платёжный контур, пока не доказано, что политика блокирует переход от внешнего текста к операции.
Перед расширением пилота сравните пять измерений
Для каждого сценария используйте одну и ту же форму отчёта:
- Попадание в контекст. Вредная инструкция была загружена, очищена, усечена или потеряна?
- Изменение плана. Агент изменил цель, порядок шагов или аргументы инструмента?
- Вызов инструмента. Был ли создан вызов чувствительной функции?
- Решение политики. Сработало ли независимое правило до исполнения?
- Побочный эффект. Что фактически произошло в фиктивной среде?
Не объединяйте эти измерения в один бинарный показатель. Агент может прочитать вредный текст, но не изменить план. Он может изменить план, но остановиться на подтверждении. Он может вызвать инструмент, однако шлюз отклонит аргументы. Для управления риском эти состояния различаются.
| Состояние после теста | Решение для пилота | Что исправить до следующего шага |
|---|---|---|
| Внешний текст виден, но действие заблокировано до подтверждения | Продолжить в ограниченном профиле | Сохранить трассировку и проверить обходные ветки |
| Внешний текст меняет план, но инструмент не вызывается | Продолжить только для чтения | Укрепить маркировку источников и оценку плана |
| Инструмент вызывается, но фикстура не имеет побочного эффекта | Не расширять права | Вынести авторизацию из модели и ограничить аргументы |
| Реальное действие возможно без независимого подтверждения | Остановить сценарий | Удалить автоматический переход к чувствительному инструменту |
| Результат зависит от версии, Skill или формата файла | Заморозить конфигурацию | Добавить версионную регрессию и повторить все представления |
Такой подход объясняет, почему процент из публикации нельзя механически перенести на собственную систему. У вас могут отличаться не только модель и код, но и длина контекста, порядок сообщений, очистка файлов, список инструментов, сетевые права и интерфейс подтверждения.
После релиза обновляйте решение, а не только статью
Исследование от 17 августа 2026 года — это исходная точка для контроля, а не финальный вердикт. При каждом новом release повторяйте небольшой набор представительных тестов. Минимальный набор должен включать один веб-источник, один файл, один Skill, один MCP-ответ и один комментарий в коде.
Отдельно отслеживайте изменения в:
- порядке добавления tool results в контекст;
- обработке дополнительных контекстов;
- правилах вызова инструментов;
- границах Skills;
- поведении файловых конвертеров;
- профилях песочницы;
- значениях разрешений по умолчанию;
- формате трассировок и событий сессии.
Проверяйте публичный код AI-Infra-Guard и материалы проекта по безопасности. Они полезны как примеры фиксации версии, окружения, воспроизводимого сценария и доказанного эффекта, но не заменяют проверку вашей конфигурации.
Для технического руководителя решение на конец первой недели можно свести к трём вариантам:
- Продолжить пилот, если внешнее содержимое маркируется, чувствительные операции требуют отдельного подтверждения, а локальные фикстуры показывают стабильную блокировку.
- Ограничить функциональность, если чтение безопасно, но Skills, MCP или отдельные форматы файлов меняют план и требуют дополнительной очистки.
- Приостановить высокие права, если инструмент вызывается по инструкции из внешнего источника, если нет полной трассировки или если результат нестабилен между версиями.
Для изолированного тестового контура заранее проверьте разницу между физической и виртуализированной средой macOS. Если для повторных проверок требуется отдельная машина, заранее сопоставьте её с требованиями к рабочему каталогу, сетевому доступу и хранению тестовых секретов. Для отдельного контура с фиксируемыми правами полезно заранее изучить варианты выделенных macOS-сред, но коммерческий выбор не заменяет независимую авторизацию и регрессионное тестирование.
Перед началом пилота можно также сопоставить требования к рабочему каталогу, сетевым ограничениям и способу изоляции с теми же критериями в техническом разделе для русскоязычных пользователей. Используйте этот материал только для планирования среды: решение о доступе к чувствительным инструментам всё равно должно приниматься отдельной политикой, а не моделью.
Публикация меняет не ответ на вопрос «безопасен ли DeepSeek Harness», а порядок ваших действий. Внешние страницы, документы, Skills и MCP нельзя считать обычным текстом, если после их чтения агент получает доступ к командам, файлам или сетевым операциям. В то же время переносить 17,0 %, 25,5 % или 16,0 % на любую рабочую конфигурацию было бы методологической ошибкой.
Если сейчас вы проверяете сценарии на общей машине, у такого подхода есть реальные минусы: секреты находятся рядом с тестовыми файлами, сетевые права сложнее ограничить, а повторный запуск может затронуть рабочее состояние. Для первой недели безопаснее использовать отдельную среду, где можно зафиксировать версию, удалить побочные эффекты и воспроизвести одинаковый набор тестов. Если собственного изолированного контура пока нет, начните с локальной песочницы и не подключайте рабочие секреты до завершения регрессии.
Последнее обновление: 19 августа 2026 года. Данные сверены по тексту и версии записи arXiv, репозиторию AI-Infra-Guard, его материалам по безопасности и доступным сведениям о соответствующей версии DeepSeek Harness. При изменении снимка исходного кода, release notes, политики инструментов или настроек прав этот runbook нужно выполнить заново.