B skill-guard
SkillShield v4 — Ultimate security scanner for OpenClaw skills. 65 security checks, SARIF v2.1.0 output, CI/CD ready, campaign detection, C2 IP blocklist, known malicious actor database, macOS attack detection, agent config tampering, LLM tool exploitation, pre-commit hooks, and more. Python 3 stdlib only. Single file. Zero dependencies.
- Безопасность 60%
- Качество 40%
- Тесты бонус
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для срабатывания.
- Добавьте evals/evals.json с 4–6 реальными запросами и ожидаемыми ответами: тогда полная проверка использует ваши кейсы, а не черновик модели.
- Добавьте spec.yaml с триггерами и утверждениями (skilltest init): это контракт поведения для CI.
Находки guard · 12
✓ Критических и высоких находок нет
Средние и низкие: 12
-
низкая Опасные команды
cmd-background-processscripts/skillguard.py:873Запуск фонового / автозапускаемого процесса (строковый литерал в коде, не выполняется; документация security-скилла)recommendation="disown + network = detached backdoor process.",
строка в кодеsecurity-скилл -
низкая Рискованное назначение
intent-offensive-securitySKILL.md:204Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)| SS-016 | Reverse shell pattern | CRITICAL | 10 |
-
низкая Опасные команды
cmd-background-processSKILL.md:251Запуск фонового / автозапускаемого процесса (документация security-скилла)| SS-063 | Nohup/disown + network | CRITICAL | 9 |
security-скилл -
низкая Рискованное назначение
intent-offensive-securitySKILL.md:265Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)- `91.92.242.30` — AMOS C2 server
-
низкая Рискованное назначение
intent-offensive-securitySKILL.md:266Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)- `54.91.154.110` — AMOS C2 server
Ещё 7 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.
Просканировано файлов: 4. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
Lint
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда")
Процессная зрелость 55/100
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 5, без проверки текущего состояния
- 40Согласованность. Имя во frontmatter (skill-guard) не совпадает с папкой (skillshield)
- 60Инструменты и файлы. Используются инструменты (bash, web, python), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 100Шаги. Шагов: 16
- 100Стоимость исполнения. Тело инструкции 2432 токенов
- medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
- low Ответ описан самодельной разметкой (4 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- -283 эмодзи в инструкциях: шум для модели
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 339 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 19 заголовков
- +3Пошаговые инструкции: 16 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (9 блоков кода)
- +3Все 1 скриптов описаны в инструкциях
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 76.