«В двух словах», trivy — инструмент для сканирования безопасности. Он позволяет определить потенциальные угрозы в программном коде, конфигурации, установленных пакетах операционной системы, контейнерах и некоторое другое.
В нашей инструкции мы рассмотрим простой установку trivy на Linux и пример его использования.
На странице Github можно ознакомиться с программным продуктом и посмотреть его версии. На момент обновления данной инструкции, последняя версия была 0.46.0, поэтому мы будем устанавливать ее.
Для удобства, создадим переменную с версией:
TR_VER=0.46.0
Для разных типов Linux действия будут немного отличаться.
а) Для RPM (Rocky Linux, РЕД ОС, CentOS):
rpm -ivh https://github.com/aquasecurity/trivy/releases/download/v${TR_VER}/trivy_${TR_VER}_Linux-64bit.rpm
б) Для Deb (Debian, Ubuntu, Astra Linux):
wget https://github.com/aquasecurity/trivy/releases/download/v${TR_VER}/trivy_${TR_VER}_Linux-64bit.deb
dpkg -i trivy_*_Linux-64bit.deb
На этом установка завершена. Можно использовать команду trivy.
В данном разделе рассмотрим синтаксис использования утилиты trivy. Он выглядит таким образом:
trivy [global flags] command [flags] target
Важно знать про command . Существуют следующие направления для сканирования:
* возможно, в более поздних версиях trivy их будет больше.
Для получения более дополнительной информации по применению trivy можно воспользоваться командой:
trivy —help
Мы же рассмотрим несколько примеров запуска сканирования, с которыми сталкивался автор.
1. Сканирование образа docker:
trivy image python:3.8
* где python:3.8 — образ с тегом.
2. Проверка всех файлов по определенному пути (в текущем расположении):
trivy fs ./
3. По умолчанию, trivy заканчивает работу с кодом 0. Но если нам нужен код 1, когда обнаружены уязвимости, то используем опцию exit-code :
trivy fs ./ —exit-code 1
4. Чтобы получить отчет о сканировании в отдельном файле html, вводим:
trivy image —format template —template «@/usr/local/share/trivy/templates/html.tpl» -o report.html golang:1.12-alpine
* в данном примере мы просканируем docker-образ golang:1.12-alpine и после утилита сохранит отчет в файл report.html . В качестве шаблона для отчета мы возьмем файл /usr/local/share/trivy/templates/html.tpl .
5. Утилита trivy вернет ошибку, если найдет хоть какую-либо уязвимость. Но мы моем ему указать, какие уровни уязвимостей для нас являются критичными:
trivy fs ./ -s HIGH,CRITICAL
* trivy вернет ошибку только если найдет уязвимости уровня HIGH и CRITICAL .
Trivy по умолчанию выполняет сканирование кода на предмет наличия в нем оставленных паролей. Однако, для этого используются внутренние шаблоны поиска ключевых слов, которые, мягко говоря, подходят для частных случаев.
Для поиска паролей необходимо использовать собственный файл политики. Это файл с названием trivy-secret.yaml , который создается в каталоге, в котором мы находимся, когда запускаем trivy.
Подробнее про работу сканирования секретов написана в официальной документации . Мы рассмотрим пример. Создадим файл с политикой:
vi trivy-secret.yaml
rules:
— id: rule_passwd
category: general
title: Generic Rule
severity: CRITICAL
regex: (?i)(?P<key>password|pass|passwd|secret)[ ]*(=|:| ){1}s*[‘»]?(?P<secret>.*?)(‘|»|s|\n){1}
secret-group-name: secret
allow-rules:
— id: skip-variable-repo-pass
description: skip variable repo pass
regex: $REPO_PASS
— id: skip-keywords
description: skip keywords
regex: (dbpass|false)
— id: skip-nodejs-nodes
description: skip nodejs nodes
path: .*/nodes/.*.(html|js)$
* где:
Для поиска паролей, можно запускать команду:
trivy fs ./ -s CRITICAL
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…