SKILLEMALL.ai

DD 🦒 Giraffe Guard — 长颈鹿卫士

Сканирование каталогов навыков OpenClaw на предмет атак на цепочку поставок и вредоносного кода. 扫描 OpenClaw skill 目录,检测潜在的供应链投毒和恶意代码.

машинный переводПоказать оригиналСкрыть оригинал«Scan OpenClaw skill directories for supply chain attacks and malicious…»

Scan OpenClaw skill directories for supply chain attacks and malicious code. 扫描 OpenClaw skill 目录,检测潜在的供应链投毒和恶意代码。

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

Сканирование каталогов навыков OpenClaw на предмет атак на цепочку поставок и вредоносного кода.

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

ПроцедураDockerРазработкаДанные и аналитикатип и темы размечены автоматически по тексту скилла
JSON
Технический рейтинг
D
48/100
безопасность, качество, тесты
Безопасность 60%
39
Качество 40%
61
Прогон на моделях
не было
Процессный рейтинг
D
41/100
Процесс не доведён
Результат и критерий готовности вес 14
0
Входы и предусловия вес 11
0
Ошибки и развилки вес 10
0
три самых слабых из десяти параметров · все десять

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

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

Опасные команды
Если установить

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

Автору

Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.

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

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

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

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

Автору

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

Как улучшить

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

Находки guard · 11

  • высокая Опасные команды cmd-encoded-exec scripts/ast_analyzer.py:263
    Выполнение закодированного (base64) кода (строковый литерал в коде, не выполняется)
    "base…ode() result passed to exec/eval",
    строка в коде
  • высокая Опасные команды cmd-encoded-exec scripts/ast_analyzer.py:371
    Выполнение закодированного (base64) кода (комментарий в коде)
    #  Parent annotator (needed for b64decode→exec chain detection)
    комментарий
Средние и низкие: 9
  • средняя Опасные команды cmd-encoded-exec scripts/ast_analyzer.py:252
    Выполнение закодированного (base64) кода (определение детектора / чёрного списка; комментарий в коде)
    # ── Rule: base…ode chained with exec ───────────
    детекторкомментарий
  • средняя Утечка данных exfil-read-secret-files scripts/audit.sh:884
    Чтение файлов с учётными данными / секретами (документация security-скилла)
    find "$dir" -type f \( -name "credentials.json" -o -name "service-account*.json" -o -name ".pypirc" \) ! -path "*/.git/*" 2>/dev/null | while read -r f; do
    security-скилл
  • средняя Утечка данных exfil-read-secret-files scripts/audit.sh:888
    Чтение файлов с учётными данными / секретами (документация security-скилла)
    find "$dir" -type f -name ".npmrc" ! -path "*/.git/*" 2>/dev/null | while read -r f; do
    security-скилл
  • низкая Рискованное назначение intent-offensive-security SKILL.md:69
    Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)
    | 5 | reverse-shell | Reverse shell patterns | 反向 shell |
  • низкая Рискованное назначение intent-offensive-security SKILL.md:101
    Наступательная безопасность / двойное назначение (допустимо для авторизованного тестирования; проверьте назначение)
    | 20 | skillmd-privilege-escalation | Privilege escalation | 权限提升 |

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

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

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

  • предупреждение name-format name должен быть в kebab-case (строчные буквы, цифры, дефисы)
  • предупреждение description-no-when description не говорит, КОГДА применять скилл (нет "use when / используй когда")

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

  • 0Результат и критерий готовности. Не сказано, что считать результатом
  • 0Входы и предусловия. Не сказано, что нужно иметь на входе
  • 0Ошибки и развилки. Линейный процесс без обработки сбоев
  • 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
  • 20Когда включается. Не сказано, при каком запросе скилл включается
  • 40Согласованность. Имя во frontmatter (🦒 Giraffe Guard — 长颈鹿卫士) не совпадает с папкой (giraffe-guard)
  • 60Инструменты и файлы. Используются инструменты (bash, web, python), но во frontmatter они не объявлены
  • 100Шаги. Шагов: 10
  • 100Стоимость исполнения. Тело инструкции 1032 токенов
  • 100Повторный запуск. Изменяющих операций нет

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

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

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

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