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

sudo apt-get update
sudo apt-get install trivy
Как только инструмент будет установлен и обновлён, вы готовы сканировать файлы.

Сканирование Git-репозитория
Мы можем использовать Trivy для сканирования уязвимостей на нескольких платформах.Если вы используете Git-репозиторий, вы можете просканировать git-файл напрямую, не загружая весь пакет.
sudo trivy repo https://github.com/appsecco/dvna
Сканирование образа контейнера
С учётом постоянно растущих угроз, Trivy является одним из лучших инструментов на рынке для сканирования образов контейнеров.Вы можете легко выполнить быстрое сканирование Docker образов для выявления уязвимостей, следуя приведённым ниже шагам.
Шаг 1: Узнайте идентификатор образа (Image ID), который вы хотите просканировать.
sudo docker images
Шаг 2: Используйте приведённую ниже команду для сканирования образа контейнера.
sudo trivy image 4621d4fe2959

Вы также можете сканировать образы на наличие уязвимостей определённого уровня критичности и сохранить отчёт в текстовом формате с помощью приведённой ниже команды.
sudo trivy image --severity HIGH 4621d4fe2959 > result.txt
tail result.txt

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

Сканирование запущенных контейнеров
Вы можете просканировать запущенный контейнер изнутри. Следуйте приведённым ниже шагам для сканирования 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 /

Встраивание 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 .

Trivy сканирует Dockerfile во время сборки образа и генерирует отчёт, как показано ниже.
Подпишись на наш канал в телеграме, там ты найдешь огромное количество качественного контента, без инфошума и воды!
*Информация в данной статье представлена исключительно в образовательных целях. Автор не несёт ответственности за возможные последствия применения советов или рекомендаций, изложенных в материале.