Grype – это сканер уязвимостей для образов контейнеров и файловых систем с простым в установке бинарником, который поддерживает пакеты для большинства основных операционных систем на базе * nix.
Особенности сканера уязвимостей Grype для образов контейнеров и файловых систем
Сканируйте содержимое образа контейнера или файловой системы, чтобы найти известные уязвимости и найти уязвимости основных пакетов операционной системы в:
- Alpine
- BusyBox
- CentOS / Red Hat
- Debian
- Ubuntu
Найдите уязвимости для языковых пакетов:
Ruby (Bundler)Java (JARs, etc)JavaScript (NPM/Yarn)Python (Egg/Wheel)Python pip/requirements.txt/setup.py listings
Поддерживает форматы образов Docker и OCI
Использование сканера уязвимостей Grype образов контейнеров и файловых систем
Чтобы найти уязвимости в образе:
grype <image>
Grype может сканировать множество источников, помимо тех, что находятся в Docker.
# сканировать архив образов контейнера (по результату команд docker image save ..., podman save ... или skopeo copy.)
grype path/to/image.tar
# сканировать каталог
grype dir:path/to/dir
Давайте проверим образ nginx.
$ grype docker.io/nginx.slim | head
Vulnerability DB [no update available]
Loaded image
Parsed image
Cataloged packages [135 packages]
Scanned image [137 vulnerabilities]
NAME INSTALLED FIXED-IN VULNERABILITY SEVERITY
apt 1.8.2.2 CVE-2011-3374 Negligible
bash 5.0-4 CVE-2019-18276 Negligible
coreutils 8.30-3 CVE-2016-2781 Low
coreutils 8.30-3 CVE-2017-18018 Negligible
gcc-8-base 8.3.0-6 CVE-2018-12886 Medium
gcc-8-base 8.3.0-6 CVE-2019-15847 Medium
gpgv 2.2.12-1+deb10u1 CVE-2019-14855 Low
libapt-pkg5.0 1.8.2.2 CVE-2011-3374 Negligible
libc-bin 2.28-10 CVE-2019-9192 Negligible
Формат вывода Grype также настраивается:
grype <image> -o <format>
Доступные форматы:
json: используйте это, чтобы получить как можно больше информации о Grype! cyclonedx: XML-отчет, соответствующий спецификации CycloneDX 1.2. таблица: сводка в виде столбцов (по умолчанию).
- Json: используйте этот формат, чтобы получить как можно больше информации от Grype!
- cyclonedx: XML-отчет, соответствующий спецификации CycloneDX 1.2.
- table: сводка в виде столбцов (по умолчанию).
Установка
Рекомендуется (macOS и Linux)
# установка последней версии в /usr/local/bin
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin
# установка определенной версии в определенный каталог
curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b <SOME_BIN_PATH> <RELEASE_VERSION>
Homebrew (macOS)
brew tap anchore/grype
brew install grype