# Политика безопасности dsh-agent-tool-filter English version: see [SECURITY.en.md](). ## Поддерживаемые версии Поддерживается только последняя актуальная релизная версия проекта: исправления безопасности выпускаются в ней, более ранние версии не обслуживаются — обновляйтесь до последней. | Версия | Поддержка безопасности | |---|---| | Последняя релизная | поддерживается | | Более ранние | поддержка безопасности не заявлена | Не уверены, затронута ли версия, — сообщайте о последней выпущенной и укажите точную версию или коммит, который проверяли. ## Сообщение об уязвимости Сообщайте о проблемах безопасности КОНФИДЕНЦИАЛЬНО. Не открывайте публичные issue с деталями эксплойта, секретами, дампами памяти или proof-of-concept. Порядок сообщения: 01. Напишите правообладателю Kiol конфиденциальным сообщением через доступный вам приватный канал. 02. Если приватный канал недоступен, откройте минимальный публичный issue с просьбой предоставить приватный контакт — без деталей эксплойта. Что указать: - Версию проекта, коммит, операционную систему и способ установки. - Затронутую функциональность плагина. - Шаги воспроизведения на вымышленных учётных данных и нечувствительных файлах. - Ожидаемое воздействие, например обход ожидаемого ограничения видимости инструментов или нежелательное поведение плагина. - Логи с вымаранными ключами, токенами, локальными путями и персональными данными. Не отправляйте реальные API-ключи, токены, пароли, приватные файлы рабочего пространства и чужие персональные данные. ## Границы безопасности `dsh-agent-tool-filter` — плагин DeepSeek Harness, который с помощью `tools.restrict()` в Agent-scope ограничивает видимость схем инструментов для модели основного агента. Это ограничение видимости, а не sandbox и не гарантия безопасности. Субагенты сохраняют полный набор tools. Заявленные границы и ограничения: - Плагин фильтрует видимость tool-схем для модели основного агента; own-layer tools (например, `team_task_*`) платформой `restrict()` не фильтруются. Плагин предупреждает об этом в логе. - Конфигурация содержит списки имён tools, а не секреты или учётные данные. Код не хранит и не обрабатывает секреты, токены или пароли. - Внешних зависимостей нет; ядро `@deepseek-ai/*` не копируется. - Ошибка применения фильтра логируется и не блокирует работу DSH (fail-open). Ошибка конфигурации отключает фильтр с предупреждением. - Плагин устанавливается в профиль DSH (`node_modules`). Перед обновлением следует создать страховочную копию профиля. - Фильтр видимости не заменяет sandbox для недоверенного кода. - **Эскалация прав субагентов** (`subagentEscalation`, по умолчанию выкл): каждое повышение прав субагента требует явного одобрения пользователем. Панель одобрения раскрывает точное действие — инструмент и аргументы вызова — до выдачи разрешения; разрешение действует ровно на один вызов. Ошибки механизма эскалации завершаются отказом (fail-closed): без раскрытого целевого действия разрешение не выдаётся. - Панель одобрения изолирует недоверенный текст субагента: управляющие символы Unicode (bidi-override, zero-width и подобные) вычищаются из текстовых полей, значения рендерятся с визуальной изоляцией (`unicode-bidi: isolate`), длина полей ограничена. Обычно считаются доверенными входами: - Собственная конфигурация пользователя со списками имён tools. - Компоненты, установленные и одобренные пользователем. - Вызовы инструментов и средства изоляции, предоставляемые DSH; этот плагин не заявляет их sandbox-гарантии и не усиливает их. Могут быть проблемами безопасности: - Поведение, при котором плагин вопреки корректной конфигурации не ограничивает видимость применимых tool-схем основного агента. - Обход механики одобрения эскалации: выдача разрешения без явного действия пользователя, разрешение, действующее на несколько вызовов, сокрытие или искажение целевого действия в панели одобрения. - Обработка конфигурации или применение фильтра, приводящие к неожиданному обходу заявленного ограничения видимости. - Утечка секретов или персональных данных, причинно связанная с поведением самого плагина. ## Вне области Обычно вне области (если не демонстрируют обход заявленной границы выше): - Доступность tool-схем, которые платформа `restrict()` не фильтрует, включая own-layer tools; это ограничение платформы, о котором плагин сообщает в логе. - Возможность субагентов использовать полный набор tools. - Выполнение недоверенного кода без sandbox: фильтр видимости не является sandbox и не предназначен для него. - Ошибка применения фильтра, при которой система продолжает работу в режиме fail-open, если сама ошибка не раскрывает данные и не приводит к обходу заявленной границы. - Уязвимости DSH, сторонних сервисов и компонентов, не вызванные поведением плагина. ## Согласованное раскрытие Правообладатель Kiol рассмотрит сообщение, при необходимости запросит уточнения и согласует исправление подтверждённых уязвимостей до публичного раскрытия. Дайте разумное время на расследование и выпуск исправления до публикации деталей эксплойта; если планируете раскрытие по срокам — укажите таймлайн в первоначальном сообщении.