Screenshot_1.png


Trivy — простой и комплексный сканер уязвимостей для контейнеров.

Введение​

Trivy — это инструмент с открытым исходным кодом от компании Aqua Security для сканирования уязвимостей и ошибок конфигурации. Он работает на различных уровнях: может оценивать инфраструктуру как код (Infrastructure as Code), проверять образы контейнеров, оказывать помощь с файлами конфигурации, анализировать Kubernetes и проверять код в Git-репозитории. Кроме того, благодаря простоте использования, Trivy легко интегрируется в конвейер CI/CD (DevSecOps) путём добавления бинарного файла в проект. Помимо этого, Trivy располагает обширной базой данных уязвимостей, что позволяет быстро находить критические CVE. Он помогает пентестерам и исследователям кибербезопасности в сканировании, делая процесс DevSecOps быстрее и эффективнее.

Установка​

Установка довольно проста. Выполните приведённые ниже команды, чтобы установить Trivy из официального репозитория.





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 /etc/apt/sources.list.d/trivy.list


jzjw5exr83rwuov860spdxb60xy1o070.png



sudo apt-get update

sudo apt-get install trivy


Как только инструмент будет установлен и обновлён, вы готовы сканировать файлы.

n8uyqhocoqo6t5dqw9zvycx7ode2f4lj.png




Сканирование Git-репозитория​

Мы можем использовать Trivy для сканирования уязвимостей на нескольких платформах.

Если вы используете Git-репозиторий, вы можете просканировать git-файл напрямую, не загружая весь пакет.


sudo trivy repo https://github.com/appsecco/dvna

q57zefxopur21ai1n9vd3ex9ug8wwcrh.png




Сканирование образа контейнера​

С учётом постоянно растущих угроз, Trivy является одним из лучших инструментов на рынке для сканирования образов контейнеров.
Вы можете легко выполнить быстрое сканирование Docker образов для выявления уязвимостей, следуя приведённым ниже шагам.

Шаг 1: Узнайте идентификатор образа (Image ID), который вы хотите просканировать.


sudo docker images

Шаг 2: Используйте приведённую ниже команду для сканирования образа контейнера.

sudo trivy image 4621d4fe2959

yst1wcovnrq90akplkhkasx43ouljdwy.png


Вы также можете сканировать образы на наличие уязвимостей определённого уровня критичности и сохранить отчёт в текстовом формате с помощью приведённой ниже команды.

sudo trivy image --severity HIGH 4621d4fe2959 > result.txt

tail result.txt


hm183f4w3m97q4mqj00gjennok1usade.png


Сканирование файловой системы​

Trivy можно использовать для сканирования файловой системы. Для примера мы используем vulnerable-node из файловой системы.
Используйте приведённую ниже команду для сканирования любой файловой системы на наличие уязвимостей.


trivy conf services/

6y0kdlz7a0ta4ebglt7vm1sqmc3o99a1.png




Сканирование запущенных контейнеров​

Вы можете просканировать запущенный контейнер изнутри. Следуйте приведённым ниже шагам для сканирования docker-файла.
Шаг 1: Запустите docker-файл, который вы хотите просканировать.


sudo docker run -it alpine

Шаг 2: Добавьте сканер Trivy и запустите его.

apk add curl

&& curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin && trivy filesystem --exit-code 1 --no-progress /


ls7nelb5nlmfrr1zb2wpk7xsmm5x7drc.png




Встраивание Trivy в Dockerfile​

Также есть возможность сканировать образ в процессе сборки, встроив Trivy в Dockerfile. Этот подход можно использовать для обновления Dockerfile, в которых применяется Micro Scanner от Aqua. Следуйте приведённым ниже шагам для сканирования docker-файла во время его сборки.

Шаг 1: Добавьте Trivy в docker-файл.

FROM alpine:3.7





RUN apk add curl

&& curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/master/contrib/install.sh | sh -s -- -b /usr/local/bin

&& trivy filesystem --exit-code 1 --no-progress /


Шаг 2: Соберите образ.

sudo docker build -t vulnerable image .

23m4qbkmffz77rh796c1kv6f1tx9mrhx.png

Trivy сканирует Dockerfile во время сборки образа и генерирует отчёт, как показано ниже.
nhpyawzz5qp4jd9xybuhqndlc1nwhhc4.png