SKILLEMALL.ai

CD code-security-audit

Comprehensive code security audit toolkit combining OWASP Top 10 vulnerability scanning, dependency analysis, secret detection, SSL/TLS verification, AI Agent security checks, and automated security scoring. Use when auditing codebases, scanning for vulnerabilities, detecting hardcoded secrets, checking OWASP compliance, AI/LLM application security, or preparing for security reviews.

Не рекомендуетсяесть критические или высокие находки безопасности
modbender/skill-library-mcp Agent Skills автор: modbender MIT 8 файлов · 1 скрипт тело ≈ 6 734 токенов Открыть источникgithub.com проанализирован 24 ч назад

Comprehensive code security audit toolkit combining OWASP Top 10 vulnerability scanning, dependency analysis, secret detection, SSL/TLS verification, AI Agent…

Как процесс D 49/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия

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

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

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

Секреты в коде
Если установить

В файлах лежит чужой ключ или токен. Если он живой, ваш агент начнёт ходить в чужие сервисы от чужого имени; если ключ уже отозван, скрипты скилла просто сломаются. Такой ключ мог попасть в скилл вместе с целым рабочим пространством автора, включая личные данные.

Автору

Ключ виден всем, кто скачал скилл, и уже мог быть скопирован ботами, которые сканируют каталоги. Отзовите его сейчас, проверьте счета и логи доступа, а потом перевыпустите.

Утечка данных средняя серьёзность

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

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

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

Автору

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

Рискованное назначение средняя серьёзность

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

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

Назначение скилла само по себе рискованное: работа с кошельками, паролями браузера, наступательная безопасность. Даже честная реализация даёт агенту доступ к тому, что стоит денег.

Автору

Объясните в description, зачем нужен доступ и как он ограничен; добавьте тесты, которые показывают отказ на опасных запросах.

Как улучшить

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

Находки guard · 13

  • высокая Секреты в коде meta-credential-files patterns/secrets.json
    В скилле лежат файлы с учётными данными / .env (1)
    patterns/secrets.json
Средние и низкие: 12
  • средняя Утечка данных exfil-webhook-url patterns/secrets.json:34
    URL вебхука / коллбэка, типичный для эксфильтрации (проверьте адрес) (определение детектора / чёрного списка)
    "pattern": "https://hooks.slack.com/services/T[A-Z0-9]+/B[A-Z0-9]+/[A-Za-z0-9]+",
    детектор
  • средняя Рискованное назначение intent-wallet-secrets scripts/security-audit.sh:572
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров
    # Mnemonic / seed phrase detection
  • средняя Рискованное назначение intent-wallet-secrets SKILL.md:635
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров
    # Mnemonic/seed phrase
  • низкая Рискованное назначение intent-wallet-secrets patterns/ai-agent.json:132
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)
    "seed phrase\\s*[:=]",
    детектор
  • низкая Рискованное назначение intent-wallet-secrets patterns/ai-agent.json:136
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)
    "description": "Potential mnemonic/seed phrase exposure",
    детектор
  • низкая Рискованное назначение intent-wallet-secrets patterns/secrets.json:161
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)
    "description": "Potential 12-word mnemonic phrase assignment"
    детектор
  • низкая Рискованное назначение intent-wallet-secrets patterns/secrets.json:166
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)
    "description": "Potential 24-word mnemonic phrase assignment"
    детектор
  • низкая Рискованное назначение intent-wallet-secrets scripts/security-audit.sh:573
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)
    if grep -rn -i "mnemonic\|seed phrase\|recovery phrase\|助记词\|seedphrase" \
    детектор
  • низкая Рискованное назначение intent-wallet-secrets scripts/security-audit.sh:576
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)
    error "Mnemonic/seed phrase references found - verify not hardcoded"
    детектор
  • низкая Рискованное назначение intent-wallet-secrets SKILL.md:636
    Работает с секретами криптокошелька (сид-фраза / приватный ключ) — классическая цель стилеров (определение детектора / чёрного списка)
    grep -rn -i "mnemonic\|seed phrase\|recovery phrase\|助记词" \
    детектор

Ещё 2 совпадений отнесены к цитатам в документации скилла по безопасности и не считаются находками.

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

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

  • предупреждение body-long тело SKILL.md ≈ 6734 токенов (рекомендуется < 5000); вынесите детали в references/

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

  • 0Результат и критерий готовности. Не сказано, что считать результатом
  • 0Входы и предусловия. Не сказано, что нужно иметь на входе
  • 0Ошибки и развилки. Линейный процесс без обработки сбоев
  • 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
  • 20Когда включается. Не сказано, при каком запросе скилл включается
  • 30Повторный запуск. Изменяющих операций: 1, без проверки текущего состояния
  • 70Стоимость исполнения. Тело инструкции 6734 токенов
  • 100Инструменты и файлы. Внешние инструменты не нужны
  • 100Шаги. Шагов: 48
  • 100Согласованность. Имя и обязательные поля на месте
  • medium Правила безопасности и запреты внутри скилла: их место в системном промпте, здесь они не защищают
  • low Разделов верхнего уровня: 14. Похоже на несколько доменов в одном скилле

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

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

  • +5В description нет примеров фраз, по которым скилл должен срабатывать
  • +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
  • +3Формат ответа не описан: модель каждый раз решает сама
  • -221 эмодзи в инструкциях: шум для модели
  • +1Лицензия не указана
  • +2Инструкции на одном языке
  • +3Длина description 386 символов: достаточно сигнала, не съедает бюджет
  • +4Структура: 41 заголовков
  • +3Пошаговые инструкции: 48 пунктов
  • +4Есть примеры (44 блоков кода)
  • +3Все 1 скриптов описаны в инструкциях

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