Проверяем безопасность Docker-образов с помощью Trivy
В этой статье расскажем об инструменте для проверки безопасности контейнеров Docker Trivy: о его особенностях, установке и использовании.
Что такое Trivy
Один из самых лёгких и многофункциональных сканеров уязвимостей Docker-образов. Он сканирует как образ в репозитории, так и локальный образ. Нацелен на нахождение уязвимостей двух типов:
— Проблемы сборок ОС (Alpine, RedHat (EL), CentOS, Debian GNU, Ubuntu). — Проблемы в зависимостях (Gemfile.lock, Pipfile.lock, composer.lock, package-lock.json, yarn.lock, Cargo.lock).
Trivy работает на разных платформах Linux, включая RHEL, CentOs, Ubuntu, Debian, Arch Linux, MacOS, Nix и других.
Как установить Trivy
Есть разные способы установки Trivy на разные платформы. Вот команды для Ubuntu:
$ sudo apt-get install wget apt-transport-https gnupg lsb-release
$ wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
$ echo deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list.d/trivy.list
$ sudo apt-get update
$ sudo apt-get install trivy
Как использовать Trivy
Для запуска используем команду:
$ trivy image <образ>
Обнаружение неправильных настроек безопасности
Можно запускать проверку неправильных настроек безопасности как в файловой системе, так и в репозиториях git. Попробуем запустить сканирование файловой системы. Для этого нужно клонировать этот репозиторий.
Репозиторий git содержит файл Dockerfile и файл манифеста deployment.yaml k8s.
Dockerfile выглядит следующим образом:
FROM nginx
USER root
Файл deployment.yaml выглядит следующим образом:
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
replicas: 1
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
securityContext:
privileged: true
Важно: здесь мы целенаправленно установили для привилегированного атрибута в securityContext значение true. Этого делать нельзя.
Теперь запускаем сканирование: так Trivy сможет найти эту настройку конфигурации:
$ trivy config <директория_конфига>
Last updated