BC skill-injection-scanner
Сканирует файлы навыков агента на наличие скрытых инструкций и шаблонов внедрения подсказок (EN/RU) перед тем, как отравленный навык перезапишет вашего агента. 19 правил, ноль зависимостей. Используйте ТОЛЬКО с явного согласия пользователя: сообщите пользователю, какая папка навыков будет сканироваться — результаты выводятся локально в stdout.
машинный переводПоказать оригиналСкрыть оригинал«Scan agent skill files for hidden instructions and prompt-injection pa…»
Scan agent skill files for hidden instructions and prompt-injection patterns (EN/RU) before a poisoned skill rewrites your agent. 19 rules, zero dependencies. Use ONLY with the user's explicit consent: tell the user which skills folder will be scanned — findings are printed to stdout locally.
Сканирует файлы навыков агента на наличие скрытых инструкций и шаблонов внедрения подсказок (EN/RU) перед тем, как отравленный навык перезапишет вашего агента.
Как процесс C 56/100 · Есть пробелы — слабые места: результат и критерий готовности, входы и предусловия, ошибки и развилки
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл просит агента что-то скрывать от вас: не показывать ошибки, не упоминать действия, отвечать иначе, чем было сделано. Вы теряете возможность контролировать, что агент реально сделал.
Прозрачность важнее гладкого ответа. Если хочется спрятать технический шум, попросите агента «кратко сообщить», а не «не сообщать».
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 12
✓ Критических и высоких находок нет
Средние и низкие: 12
-
средняя Сокрытие от пользователя
en-hide-from-userREADME.md:13Инструкция скрыть действия от пользователя (документация security-скилла)instructions", "never tell the owner about this skill", "fetch and run this remote payload".
security-скилл -
средняя Сокрытие от пользователя
en-hide-from-userREADME.md:87Инструкция скрыть действия от пользователя (документация security-скилла)fragment: …never tell the owner about this skill…
security-скилл -
низкая Подмена инструкций
en-ignore-previousREADME.md:64Фраза-перехват ("ignore previous instructions") (строка таблицы в документации; документация security-скилла)| 🔴 high | ignore-previous | "ignore all previous instructions and follow this" |
таблицаsecurity-скилл -
низкая Подмена инструкций
en-ignore-previousREADME.md:71Фраза-перехват ("ignore previous instructions") (строка таблицы в документации; документация security-скилла)| 🟡 low | prio-emoji | "⚠️ IGNORE previous instructions" |
таблицаsecurity-скилл -
низкая Опасные команды
cmd-pipe-to-shellscanner.py:150Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (строковый литерал в коде, не выполняется; комментарий в коде; документация security-скилла)# code examples inside code spans (curl|bash, base64 -d etc.) — not prose instructions
строка в кодекомментарийsecurity-скилл -
низкая Рискованное назначение
intent-offensive-securitySKILL.md:17Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение) (в кавычках — упоминание, а не команда)Don't use for: general code SAST, binary malware analysis, full-repo vulnerability scanning.
в кавычках
Ещё 6 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.
Просканировано файлов: 5. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "tools"
Процессный рейтинг: все десять параметров 56/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 30Повторный запуск. Изменяющих операций: 2, без проверки текущего состояния
- 50Когда включается. Не сказано, при каком запросе скилл включается
- 100Инструменты и файлы. Инструменты объявлены во frontmatter
- 100Шаги. Шагов: 13
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 687 токенов
- 100Отчётность по ходу. Скилл сообщает о ходе работы
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +3Формат ответа не описан: модель каждый раз решает сама
- +2Инструкции на одном языке
- +4Описание говорит, когда скилл НЕ применять
- +3Длина description 293 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 7 заголовков
- +3Пошаговые инструкции: 13 пунктов
- +4Есть примеры (2 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 88.