Grype – это сканер уязвимостей для образов контейнеров и файловых систем с простым в установке бинарником, который поддерживает пакеты для большинства основных операционных систем на базе * nix.
Содержание
Особенности сканера уязвимостей Grype для образов контейнеров и файловых систем
Сканируйте содержимое образа контейнера или файловой системы, чтобы найти известные уязвимости и найти уязвимости основных пакетов операционной системы в:
- Alpine
- BusyBox
- CentOS / Red Hat
- Debian
- Ubuntu
Поддерживает форматы образов Docker и OCI
Использование сканера уязвимостей Grype образов контейнеров и файловых систем
Чтобы найти уязвимости в образе:
grype <image>
Grype может сканировать множество источников, помимо тех, что находятся в Docker.
# сканировать архив образов контейнера (по результату команд docker image save ..., podman save ... или skopeo copy.) grype path/to/image.tar
# сканировать каталог grype dir:path/to/dir
В прошлой статье, мы рассмотрели
🐳 Как минимизировать, оптимизировать и защитить контейнеры Docker с помощью DockerSlim
Там мы оптимизировали образ 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.
- 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