SKILLEMALL.ai

CC audit-code

Security-focused code review for hardcoded secrets, dangerous calls, and common vulnerabilities

Не рекомендуетсяесть критические или высокие находки безопасности
modbender/skill-library-mcp Claude Code автор: modbender MIT 3 файла тело ≈ 373 токенов Открыть источникgithub.com проанализирован 23 ч назад

Security-focused code review for hardcoded secrets, dangerous calls, and common vulnerabilities

Как процесс C 57/100 · Есть пробелы — слабые места: когда включается, входы и предусловия, ошибки и развилки

АнализаторРазработкатип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
C
71/100
безопасность, качество, тесты
Безопасность 60%
65
Качество 40%
81
Прогон на моделях
не было
Процессный рейтинг
C
57/100
Есть пробелы
Входы и предусловия вес 11
0
Ошибки и развилки вес 10
0
Отчётность по ходу вес 2
0
три самых слабых из десяти параметров · все десять

Чем это грозит

Скилл содержит фрагменты, которые в чужих руках стоят денег или данных. Ниже, что рискует потерять тот, кто установит, и что должен сделать автор.

Утечка данных
Если установить

Инструкции или скрипты отправляют данные наружу: переменные окружения, ключи, содержимое файлов, историю чата. Вы можете не заметить этого в диалоге, потому что агент выполнит отправку как «часть задачи».

Автору

Если отправка не нужна для задачи, уберите её: каталоги помечают такие скиллы как подозрительные и снимают с выдачи. Если нужна, назовите адрес явно, объясните, что именно уходит, и дайте пользователю выключатель.

Подмена инструкций средняя серьёзность

Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.

Если установить

В тексте есть фразы вроде «игнорируй предыдущие инструкции» или «теперь ты…». Это попытка перехватить управление агентом: он может нарушить ваши правила, системные ограничения или политику компании.

Автору

Такие фразы не нужны честному скиллу: сформулируйте роль и правила прямо, без отмены чужих инструкций. Иначе сканеры каталогов и корпоративные фильтры заблокируют публикацию.

Широкие права средняя серьёзность

Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.

Если установить

Скилл просит больше прав, чем нужно для задачи: широкий доступ к инструментам, секретные переменные окружения, бинарные файлы. Каждое лишнее право расширяет ущерб при ошибке или взломе.

Автору

Сузьте allowed-tools и список переменных до минимума, замените бинарники на исходники или скрипты, которые можно прочитать.

Как улучшить

  1. Разберите находки высокой серьёзности: каждая стоит 18 баллов безопасности. Если это ложное срабатывание, добавьте код правила в guard.allow в spec.yaml.
Для прогона на моделях — необязательно
  • Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
  • spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.

Находки guard · 6

  • высокая Утечка данных exfil-post-credential-file scripts/patterns.py:479
    Загрузка файла с учётными данными на удалённый сервер (определение детектора / чёрного списка)
    pattern=r"curl\s+[^\n]*(-d|--data)\s+[^\n]*(cat|<)\s+[^\n]*(\.ssh|\.aws|\.gnupg|\.kube|\.env|credentials|id_rsa|private)",
    детектор
Средние и низкие: 5
  • средняя Утечка данных exfil-read-secret-files scripts/patterns.py:507
    Чтение файлов с учётными данными / секретами (определение детектора / чёрного списка)
    pattern=r"(cat|head|tail|less|more|type)\s+[^\n]*(\.ssh/id_rsa|\.aws/credentials|\.gnupg/|\.kube/config|/etc/shadow|/etc/passwd)",
    детектор
  • средняя Подмена инструкций en-ignore-previous scripts/patterns.py:577
    Фраза-перехват ("ignore previous instructions") (определение детектора / чёрного списка)
    description="Instruction override attempt -- trying to bypass system prompt",
    детектор
  • средняя Широкие права meta-broad-allowed-tools SKILL.md:1
    Заранее разрешены широкие инструменты: Bash
    allowed-tools: Read Glob Grep Bash
  • низкая Опасные команды cmd-pipe-to-shell scripts/patterns.py:65
    Скачивание и запуск удалённого кода с неизвестного хоста (pipe в shell) (определение детектора / чёрного списка; строковый литерал в коде, не выполняется)
    pattern=r"<!--[\s\S]*?(curl|wget|bash|sh|exec|eval|system|python|node|perl)[\s\S]*?-->",
    детекторстрока в коде
  • низкая Опасные команды cmd-privilege scripts/patterns.py:645
    Повышение привилегий / права на запись для всех (определение детектора / чёрного списка; строковый литерал в коде, не выполняется)
    description="chmod 777 -- world-readable/writable/executable, overly permissive",
    детекторстрока в коде

Просканировано файлов: 3. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.

По спецификации Agent Skills

✓ По спецификации Agent Skills замечаний нет

Процессный рейтинг: все десять параметров 57/100

  • 0Входы и предусловия. Не сказано, что нужно иметь на входе
  • 0Ошибки и развилки. Линейный процесс без обработки сбоев
  • 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
  • 20Когда включается. Не сказано, при каком запросе скилл включается
  • 30Повторный запуск. Изменяющих операций: 4, без проверки текущего состояния
  • 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
  • 85Шаги. Шагов: 11, расплывчатых формулировок: 1
  • 100Инструменты и файлы. Инструменты объявлены во frontmatter
  • 100Согласованность. Имя и обязательные поля на месте
  • 100Стоимость исполнения. Тело инструкции 373 токенов

Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.

Сигналы качества

  • +5В description нет примеров фраз, по которым скилл должен срабатывать
  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Длина description 95: рекомендуется 120–800 символов
  • -31 из 2 скриптов не упомянуты в SKILL.md
  • +1Лицензия не указана
  • +2Инструкции на одном языке
  • +4Структура: 5 заголовков
  • +3Пошаговые инструкции: 11 пунктов
  • +3Формат ответа описан явно
  • +4Есть примеры (1 блоков кода)

База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 81.