Grype как SCA для артефактов
30 октября 2025 г.·190 views

🛠 Grype как SCA для артефактов

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

Grype работает на уровне артефактов, а не исходного кода и сканирует программные пакеты.

Поддерживает Python, JavaScript (NPM, Yarn), Java, Ruby, Golang, PHP, Rust, .NET. Образы Docker, OCI, Singularity (SIF).

Тип лицензии: Apache 2.0

Форматы отчетов: JSON, SARIF, CycloneDX

Grype используется в связке с Syft

Syft создает список всех зависимостей, который проверяет Grype на наличие уязвимостей. Это позволяет проводить быстрые повторные сканирования без доступа к исходному коду или образу

Применение

curl -sSfL https://get.anchore.io/grype | sh -s -- -b /usr/local/bin # Разворачивание

grype <image:tag> # Сканирование контейнерного образа

grype <image> --scope all-layers # Сканирование с учетом слоев образа

grype dir:path/to/yourproject # Сканирование директории

grype sbom:./sbom.json # Сканирование с использованием SBOM, созданного Syft

grype <image> -o sarif > results.sarif # Сканирование с выводом в SARIF

grype <image> -o json > results.json # Сканирование с выводом в JSON

grype --add-cpes-if-none --distro alpine:3.10 sbom:./sbom.json # Генерация CPE и указание дистрибутива

docker run --rm &#092; # Запуск сканирования docker

-v /var/run/docker.sock:/var/run/docker.sock &#092;

anchore/grype:latest &#092;

<image:tag>

Gitlab CI

stages:

- security

Syft:

stage: security

image: nixos/nix:latest

script:

- nix-shell -p syft --run "syft &#036;{DOCKER_IMAGE}:latest -o cyclonedx-json=sbom.json"

artifacts:

paths:

- sbom.json

Grype:

stage: security

image: nixos/nix:latest

needs: ["Syft"]

script:

- nix-shell -p grype --run "grype --fail-on high sbom:sbom.json"

Jenkins

pipeline {

agent any

stages {

stage('Grype Scan') {

steps {

sh '''

docker run --rm --volume &#036;(pwd):/tmp/results anchore/grype:latest &#092;

your-image:tag -o json > /tmp/results/grype_report.json

'''

}

}

}

post {

always {

archiveArtifacts artifacts: 'grype_report.json'

}

}

}

Итого:

- локально разработчиком можно использовать для проверки образов перед их отправкой в registry

- имеет интеграции: SARIF, JSON в GitLab Vulnerability Report, DefectDojo, Jira и т.д.

- может сканировать образы контейнеров, файловые системы, docker save и SBOM

- помимо стандартной Severity CVSS, Grype использует EPSS - вероятность эксплуатации и индикатор KEV, чтобы помочь расставить приоритеты

- достаточно часто покрывает false positive, но после исключений срабатывания более точечные если настроить файл .grype.yaml для подавления не влияющих на конкретный проект уязвимостей

- подходит с лету для проектов с Docker-образами и/ или OCI-артефактами

- охватывает и ОС, и языковые пакеты

- политики можно настраивать с помощью флага --fail-on, указывая минимальный уровень Severity, при котором пайплайн должен быть остановлен

- результаты по умолчанию сортируются по Risk Score, но можно изменить сортировку с помощью --sort-by, как пример, по severity, epss, package

#toolchain #containersecurity #sca #sbom

#toolchain#containersecurity#sca#sbom
Открыть в Telegram