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