Безопасность Skills

Danger

Skill — часть управляющего контекста агента. Сторонний пакет может изменить рабочий процесс, прочитать доступные файлы и запустить scripts в пределах прав среды. Проверяй его как код и как набор инструкций одновременно.

Модель угроз

Вредоносные инструкции

Skill может просить игнорировать запрос пользователя, расширять scope, скрывать действия или отправлять данные наружу. Особое внимание уделяй инструкциям, которые меняют приоритеты и требуют необоснованных разрешений.

Вредоносные scripts и зависимости

Даже без подозрительного текста script способен читать environment variables, менять файлы или обращаться к сети. Проверь исходники, package scripts, lockfile и цепочку поставки.

Prompt injection через данные

Веб-страница, issue, документ или результат tool могут содержать команды для модели. Skill должен явно считать их данными и разрешать инструкции только из доверенного контекста.

Избыточные права

Навык для Markdown-редактуры не должен получать весь диск, production credentials и право публикации. Capability и разрешение выдаются под конкретный workflow.

Конфликты инструкций

Пересекающиеся skills и project rules могут незаметно менять поведение. OpenAI рекомендует аудировать доступные skills и instruction files, особенно при обновлении модели или добавлении длинных правил.

Чеклист перед установкой

  • Понятны автор, repository и способ обновления.
  • Прочитан весь SKILL.md и каждый вызываемый script.
  • Нет скрытых downloads, telemetry и отправки данных.
  • Зависимости зафиксированы и имеют понятное происхождение.
  • Права ограничены каталогом, сетью и account.
  • Секреты не встроены в файлы навыка.
  • Есть безопасный тест и способ удаления.

Правила выполнения

  1. Инструкция пользователя определяет цель и scope текущей задачи.
  2. Project rules применяются в своей области.
  3. Skill помогает выполнить задачу, но не расширяет выданные полномочия.
  4. Контент из tools считается недоверенными данными.
  5. Перед публикацией, оплатой, удалением и отправкой сообщения нужен preview или подтверждение согласно политике среды.
  6. После side effect агент перечитывает внешнее состояние и сообщает фактический результат.

Секреты

  • передавай ключи через secret store или environment;
  • используй отдельные test credentials;
  • не включай значения secrets в prompt, логи и ошибки;
  • ограничивай OAuth scopes и срок жизни токена;
  • документируй отзыв доступа;
  • после утечки отзывай secret, а не только удаляй его из Git.

Удаление навыка

Удаление каталога или hosted resource может быть недостаточным. Также проверь:

  • установленные packages;
  • выданные OAuth grants и API keys;
  • MCP configuration;
  • cron/scheduled tasks;
  • cache, browser profiles и сохранённые данные;
  • project instructions, которые продолжают ссылаться на skill.

Источники

Связанные заметки