В этой статье пойдет речь о сканере уязвимостей для контейнеров 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.ru. Подписывайтесь на нас: VK | Twitter | Telegram | Дзен | Мессенджер | ICQ New | YouTube | Rutube | Now | Пульс.