CB scanning-container-images-with-grype
Сканирует образы контейнеров, файловые системы и SBOM на наличие известных CVE с помощью Anchore Grype, сопоставляя пакеты SBOM, сгенерированные Syft, с NVD, GitHub Advisories и лентами ОС с настраиваемыми порогами серьезности и уровнями отказа. Использовать, когда Grype или Syft являются выбранным инструментарием, при сканировании существующего SBOM, а не образа, или при ограничении сборки по серьезности. Ключевые слова: Grype, Syft, SBOM, NVD, GitHub Advisory, --fail-on, severity threshold. Не использовать, когда инструментарий Trivy — использовать сканирование-образов-docker-с-помощью-trivy.
машинный переводПоказать оригиналСкрыть оригинал«Scans container images, filesystems, and SBOMs for known CVEs with Anc…»
Scans container images, filesystems, and SBOMs for known CVEs with Anchore Grype, matching Syft-generated SBOM packages against NVD, GitHub Advisories, and OS-specific feeds with configurable severity thresholds and failure gates. Use when Grype or Syft is the chosen toolchain, when scanning an existing SBOM rather than an image, or when gating a build on severity. Keywords: Grype, Syft, SBOM, NVD, GitHub Advisory, --fail-on, severity threshold. Do not use when the toolchain is Trivy - use scanning-docker-images-with-trivy.
Сканирует образы контейнеров, файловые системы и SBOM на наличие известных CVE с помощью Anchore Grype, сопоставляя пакеты SBOM, сгенерированные Syft, с NVD…
Как процесс B 66/100 · Почти готов — слабые места: ошибки и развилки, отчётность по ходу
Чем это грозит
Находки средней серьёзности: скорее всего скилл честный, но прочитайте, что именно насторожило сканер.
Ниже описан худший случай для этой категории. Здесь находка средней серьёзности: guard увидел признак, но не доказательство.
Скилл содержит команды, которые удаляют файлы, переписывают диски или исполняют код, скачанный из сети. Агент может выполнить их без вопроса, если считает, что так требует инструкция.
Замените разрушительные команды на безопасные аналоги с подтверждением, ограничьте область действия конкретной папкой и не тяните код через curl | bash: укажите версию и контрольную сумму.
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 5
✓ Критических и высоких находок нет
Средние и низкие: 5
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostreferences/workflows.md:8Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostreferences/workflows.md:11Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
-
средняя Опасные команды
cmd-pipe-to-shell-known-hostSKILL.md:62Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код)curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
-
низкая Опасные команды
cmd-pipe-to-shell-known-hostscripts/agent.py:35Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (строковый литерал в коде, не выполняется)return {"error": "grype not found. Install: curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh"}строка в коде -
низкая Опасные команды
cmd-pipe-to-shell-known-hostSKILL.md:52Установщик через pipe в shell с известного хоста (всё равно выполняет удалённый код) (в кавычках — упоминание, а не команда)- Grype CLI installed (`curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin`)
в кавычках
Просканировано файлов: 8. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "domain" - заметка
frontmatter-keyнеизвестное поле фронтматтера "subdomain" - заметка
frontmatter-keyнеизвестное поле фронтматтера "nist_csf" - заметка
frontmatter-keyнеизвестное поле фронтматтера "mitre_attack"
Процессный рейтинг: все десять параметров 66/100
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 50Когда включается. Не сказано, при каком запросе скилл включается
- 60Инструменты и файлы. Используются инструменты (web), но во frontmatter они не объявлены
- 60Результат и критерий готовности. Формат результата описан, критерия завершения нет
- 70Входы и предусловия. Входные данные и предусловия перечислены
- 100Шаги. Шагов: 15
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1248 токенов
- 100Повторный запуск. Изменяющих операций нет
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- -43 справочных файлов, но SKILL.md на них не ссылается: модель их не откроет
- -32 из 2 скриптов не упомянуты в SKILL.md
- +2Инструкции на одном языке
- +4Описание говорит, когда скилл НЕ применять
- +3Длина description 529 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 15 заголовков
- +3Пошаговые инструкции: 15 пунктов
- +3Формат ответа описан явно
- +4Есть примеры (9 блоков кода)
- +1Лицензия указана
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 82.