2.4.18.2 Сканер уязвимостей Trivy
Установка
Синтаксис
Сканирование локальной файловой системы
Сканирование образов контейнеров
Сканирование файлов внутри образа контейнера
Сканирование метаданных образа контейнера
Сканирование кластера Kubernetes
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Архитектура: x86_64
- Версия ПО: trivy-0.57.1-1
Trivy – универсальный сканер безопасности. Trivy позволяет обнаруживать уязвимости, ошибки конфигураций, открытые конфиденциальные данные (секреты), файлы лицензий в различных программных компонентах.
Сканирование компонентов на уязвимости производится согласно следующим базам уязвимостей:
база уязвимостей trivy;
база уязвимостей РЕД ОС, публикуемая на сайте РЕД ОС в виде xml-файла формата OVAL – https://redos.red-soft.ru/support/secure/redos.xml.
Установка
Для установки сканера trivy выполните команду (потребуются права администратора):
sudo dnf install trivy
Дальнейшая работа со сканером trivy должна выполняться от имени пользователя, обладающего необходимыми разрешениями на взаимодействие с объектом сканирования.
Синтаксис
Синтаксис утилиты имеет вид:
trivy [<опции>] <команда> [<опции>] <объект_сканирования> trivy [<команда>]
где:
<команда>
– позволяет задать настройки утилиты, а также определяет выполняемые действия над объектом сканирования;<объект_сканирования>
– задает объект сканирования (образ, каталог, репозиторий, файловая система).
Основные команды утилиты:
clean
– очистка кешированных файлов;completion
– генерация скрипта автозаполнения для указанной оболочки;convert
– конвертация отчета JSON в другой формат;registry
– управление проверкой подлинности реестра;server
– переключение в режим сервера;help
– вывод справки по использованию утилиты;version
– вывод версии утилиты.
Основные команды сканирования:
config
– запуск сканирования файлов конфигурации на наличие ошибок;filesystem
– запуск сканирования локальной файловой системы;image
– запуск сканирования образа контейнера;kubernetes
– запуск сканирования кластера Kubernetes;repository
– запуск сканирования репозитория;rootfs
– запуск сканирования rootfs;sbom
– запуск сканирования компонентов ОС и их зависимостей (SBOM);vm
– запуск сканирования образа виртуальной машины.
Команды управления:
module
– управление модулями;plugin
– управление плагинами.
Опции утилиты:
--cache-dir <путь_каталогу>
– путь к каталогу кеша утилиты (по умолчанию /root/.cache/trivy);-c
,--config <файл_конфигурации>
– путь к файлу конфигурации утилиты (по умолчанию trivy.yaml);-d
,--debug
– режим отладки;-f
,--format <формат>
– формат (по умолчанию JSON);--generate-default-config
– запись конфигурации по умолчанию в файл trivy-default.yaml;-h
,--help
– вывод справки по утилите;--insecure
– разрешение небезопасных подключений к серверу;-q
,--quiet
– подавление индикатора выполнения и вывода журнала;--timeout <время>
– таймаут (по умолчанию 5 мин.);-v
,--version
– вывод версии утилиты.
Для вывода информации по использованию сканера выполните:
trivy --help
Для вывода подробной информации по использованию какой-либо команды выполните:
trivy <команда> --help
Сканирование локальной файловой системы
Trivy позволяет сканировать локальную файловую систему на выявление следующих проблем:
уязвимости;
ошибки конфигурации;
конфиденциальные данные (секреты);
лицензии.
Для сканирования локальной файловой системы используется команда вида:
trivy filesystem [<опции>] <путь_к_объекту сканирования>
По умолчанию включено сканирование на уязвимости (vuln
). Настроить сканирование на наличие других проблем можно с помощью параметра --scaners
. Параметр --scanners
может принимать следующие значения (несколько значений указывается через запятую):
vuln
– уязвимости;misconfig
– ошибки конфигурации;secret
– раскрытые конфиденциальные данные;license
– корректность файлов лицензий.
Пример сканирования локальной файловой системы на наличие раскрытых конфиденциальных данных:
trivy fs --scanners secret --report summary /etc/ssh/
При наличии проблем сформированный отчет будет выглядеть примерно следующим образом:
Подробную информацию по использованию команды см. в справке:
trivy filesystem --help
Сканирование образов контейнеров
Trivy поддерживает два типа сканируемых объектов при проверке образов контейнеров:
файлы внутри образов контейнеров;
метаданные образов контейнеров.
Сканирование файлов внутри образа контейнера
Файлы внутри образов контейнеров – это файлы и директории, которые находятся в файловой системе контейнера. Они могут включать исполняемые файлы, библиотеки, конфигурационные файлы и другие ресурсы, необходимые для работы приложения. При сканировании Trivy анализирует эти файлы на наличие уязвимостей, которые могут быть связаны с установленными пакетами, библиотеками и программами.
Для сканирования файлов образа контейнера используется команда вида:
trivy image [<опции>] <имя_контейнера>:<тег>
Сканирование образов контейнеров должно выполняться от имени пользователя, обладающего необходимыми разрешениями на взаимодействие с объектом сканирования.
Trivy позволяет сканировать файлы внутри образов контейнеров на наличие следующих проблем безопасности:
уязвимости;
ошибки конфигураций;
раскрытые конфиденциальные данные;
лицензии.
По умолчанию включено сканирование на уязвимости (vuln) и раскрытые конфиденциальные данные (secret). Настроить сканирование на наличие других проблем можно с помощью параметра --scaners
. Параметр --scanners
может принимать следующие значения (несколько значений указывается через запятую):
vuln
– уязвимости;misconfig
– ошибки конфигурации;secret
– раскрытые конфиденциальные данные;license
– корректность файлов лицензий.
Пример сканирования образа контейнера на уязвимости:
trivy image registry.red-soft.ru/ubi7/firebird-3:latest
При наличии проблем сформированный отчет будет выглядеть примерно следующим образом:
Сканирование метаданных образа контейнера
Метаданные – это информация о самом образе контейнера, такая как теги, имя, размер, дата создания, а также информация о слоях образа и их зависимостях. Trivy использует метаданные для определения контекста образа и его зависимостей. Метаданные могут помочь понять, какие пакеты были установлены и какие слои были добавлены, что важно для более точного анализа уязвимостей.
Каждый образ контейнера имеет собственную конфигурацию. Команды docker inspect <имя_контейнера>:<тег>
и docker history <имя_контейнера>:<тег>
отображают информацию в соответствии с конфигурацией.
Trivy позволяет сканировать конфигурацию контейнера на наличие следующих проблем безопасности:
ошибки конфигураций;
раскрытые конфиденциальные данные.
При сканировании на наличие ошибок конфигураций trivy преобразует конфигурацию контейнера в dockerfile и обрабатывает ее как dockerfile.
При сканировании на наличие раскрытых конфиденциальных данных trivy преобразует конфигурацию контейнера в формат JSON и выполняет проверку. Такой подход может быть полезен для переменных среды, которые могут случайно получить учетные данные.
По умолчанию сканирование метаданных контейнера отключено. Для его включения необходимо использовать параметр --image-config-scanners
. Параметр --image-config-scanners
может принимать следующие значения (несколько значений указывается через запятую):
misconfig
– ошибки конфигурации;secret
– раскрытые конфиденциальные данные.
Сканирование образов контейнеров должно выполняться от имени пользователя, обладающего необходимыми разрешениями на взаимодействие с объектом сканирования.
Пример сканирования метаданных образа контейнера:
trivy image --image-config-scanners misconfig registry.red-soft.ru/ubi7/firebird-3:latest
При наличии проблем сформированный отчет будет выглядеть примерно следующим образом:
Сканирование кластера Kubernetes
Trivy может подключиться к кластеру Kubernetes и сканировать его на наличие проблем безопасности с помощью команды вида:
trivy kubernetes [<опции>] <объект_сканирования>
Сканирование кластера Kubernetes должно выполняться на Master-ноде от имени пользователя, обладающего разрешениями на управление кластером.
Указать проблемы безопасности, которые должны быть обнаружены, можно с помощью параметра --scanners
. Параметр --scanners
может принимать следующие значения (несколько значений указывается через запятую):
vuln
– уязвимости;misconfig
– ошибки конфигурации;secret
– раскрытые конфиденциальные данные;rbac
– нарушения правил ролевого контроля доступа.
По умолчанию сканирование проводится на наличие каждой проблемы безопасности.
Пример сканирования кластера на наличие уязвимостей с выводом краткого отчета:
trivy k8s --scanners vuln --report summary --disable-node-collector
При наличии проблем сформированный отчет будет выглядеть примерно следующим образом:
Для вывода более полного отчета сканирования кластера на уязвимости используйте для ключа report
значение all
:
trivy k8s --scanners vuln --report all --disable-node-collector
При наличии проблем сформированный отчет будет выглядеть примерно следующим образом (приведена часть отчета):
Подробную информацию по использованию команды см. в справке:
trivy kubernetes --help
Дата последнего изменения: 24.03.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.