Сканер уязвимостей Docker-контейнеров Trivy

Дата: 09.08.2022. Автор: Игорь Б. Категории: Статьи по информационной безопасности
Сканер уязвимостей Docker-контейнеров Trivy
Изображение: Markus Spiske (Unsplash)

В этой статье пойдет речь о сканере уязвимостей для контейнеров Trivy. Программа обнаруживает различные уязвимости пакетов ОС и зависимости приложений.

Введение

Trivy – это инструмент с открытым исходным кодом от Aqua Security для поиска уязвимостей и ошибок неправильных настроек. Этот инструмент может многое: оценивать инфраструктуру как код, проверять образы контейнеров, исправлять файлы конфигурации, анализировать Kubernetes и просматривать код в репозитории Git.

Благодаря простоте установки и настройки Trivy можно с легкостью интегрировать в CI/CD-цепочку (DevSecOps) – нужно только добавить двоичный файл в проект. Trivy обеспечивает полную видимость всех языков программирования и пакетов операционной системы и имеет обширную базу данных уязвимостей, что позволяет программе быстро сканировать критические CVE. Благодаря своевременным апдейтам, инструмент успел помочь многим пентестерам и специалистам в сфере ИБ обеспечить непрерывное сканирование, что сделало DevSecOps более быстрым и эффективным.

Установка 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 /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

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

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

Пользователь может с легкостью выполнить быстрое сканирование образов Docker, чтобы выявить любые уязвимости. Следует выполнить приведенные ниже шаги.

Шаг 1. Проверка идентификатора образа контейнера, который нужно просканировать.

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. Запустить сканер, добавить его в файл.

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, которые в настоящее время используются Aqua Micro. Нужно следовать приведенным ниже шагам, чтобы отсканировать 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 во время создания образа и выдаст отчет, как показано ниже.

Автор переведенной статьи: Mukund Mehrotra.

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

Об авторе Игорь Б

Представитель редакции CISOCLUB. Добавляю статьи на сайт.
Читать все записи автора Игорь Б

Добавить комментарий

Ваш адрес email не будет опубликован.