Установка Синтаксис Базы данных уязвимостей Сканирование локальной файловой системы Сканирование образов контейнеров Сканирование файлов внутри образа контейнера Сканирование метаданных образа контейнера Сканирование кластера Kubernetes Использование конфигурационного файла для сканирования безопасности
Окружение
Trivy – универсальный сканер безопасности. Trivy позволяет обнаруживать уязвимости, ошибки конфигураций, открытые конфиденциальные данные (секреты), файлы лицензий в различных программных компонентах.
Сканирование компонентов на уязвимости производится согласно следующим базам уязвимостей:
база уязвимостей trivy;
база уязвимостей РЕД ОС, публикуемая на сайте РЕД ОС в виде xml-файла формата OVAL – https://redos.red-soft.ru/support/secure/redos.xml;
база уязвимостей БДУ ФСТЭК России, публикуемая на сайте ФСТЭК России – https://bdu.fstec.ru/vul.
Для установки сканера 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 <время>
--using-bdu – использование базы уязвимостей БДУ ФСТЭК России;
--using-bdu
-v, --version – вывод версии утилиты.
-v
--version
Для вывода информации по использованию сканера выполните:
trivy --help
Для вывода подробной информации по использованию какой-либо команды выполните:
trivy <команда> --help
По умолчанию trivy выполняет сканирование компонентов ОС, используя только собственную базу уязвимостей и базу уязвимостей РЕД ОС. Для включения поддержки сканирования компонентов ОС с использованием базы уязвимостей ФСТЭК России необходимо дополнительно использовать опцию --using-bdu.
Базы уязвимостей загружаются при первом запуске сканирования и хранятся в локальном кеше утилиты в каталоге ~/.cache/trivy. Кеш с загруженными базами уязвимостей обновляется 2 раза в день.
Для удобства администраторов подготовлен и выгружен в публичный реестр специализированный образ registry.red-soft.ru/trivy-db/trivy-db, включающий в себя данные всех баз уязвимостей – собственной базы уязвимостей trivy, базы уязвимостей РЕД ОС и базы уязвимостей БДУ ФСТЭК России. Использование специального образа при сканировании компонентов ОС доступно с помощью опции --db-repository в командах сканирования. Обновление и выгрузка образа в реестр происходит автоматически 2 раза в день.
--db-repository
Для загрузки базы данных из реестра в локальный кеш выполните команду вида:
trivy <команда_сканирования> --db-repository registry.red-soft.ru/trivy-db/trivy-db --download-db-only
Файл базы данных уязвимостей trivy.db будет расположен в каталоге ~/.cache/trivy/db/.
Для упрощения процедуры сканирования рекомендуется использовать файл конфигурации. Подробную информацию о настройке файла конфигурации см. в пункте «Использование конфигурационного файла для сканирования безопасности».
Trivy позволяет сканировать локальную файловую систему на выявление следующих проблем:
уязвимости;
ошибки конфигурации;
конфиденциальные данные (секреты);
лицензии.
Для сканирования локальной файловой системы используется команда вида:
trivy filesystem [<опции>] <путь_к_объекту сканирования>
По умолчанию включено сканирование на уязвимости (vuln). Настроить сканирование на наличие других проблем можно с помощью параметра --scaners. Параметр --scanners может принимать следующие значения (несколько значений указывается через запятую):
vuln
--scaners
--scanners
vuln – уязвимости;
misconfig – ошибки конфигурации;
misconfig
secret – раскрытые конфиденциальные данные;
secret
license – корректность файлов лицензий.
license
Пример сканирования локальной файловой системы на наличие раскрытых конфиденциальных данных по базам уязвимостей tirvy и РЕД ОС:
trivy fs --scanners secret --report summary /etc/ssh/
При наличии проблем сформированный отчет будет выглядеть примерно следующим образом:
Пример сканирования локальной файловой системы на наличие раскрытых конфиденциальных данных с использованием специализированного образа баз данных уязвимостей:
trivy fs --db-repository registry.red-soft.ru/trivy-db/trivy-db --scanners secret --report summary /etc/ssh/
Подробную информацию по использованию команды см. в справке:
trivy filesystem --help
Trivy поддерживает два типа сканируемых объектов при проверке образов контейнеров:
файлы внутри образов контейнеров;
метаданные образов контейнеров.
Файлы внутри образов контейнеров – это файлы и директории, которые находятся в файловой системе контейнера. Они могут включать исполняемые файлы, библиотеки, конфигурационные файлы и другие ресурсы, необходимые для работы приложения. При сканировании Trivy анализирует эти файлы на наличие уязвимостей, которые могут быть связаны с установленными пакетами, библиотеками и программами.
Для сканирования файлов образа контейнера используется команда вида:
trivy image [<опции>] <имя_контейнера>:<тег>
Сканирование образов контейнеров должно выполняться от имени пользователя, обладающего необходимыми разрешениями на взаимодействие с объектом сканирования.
Trivy позволяет сканировать файлы внутри образов контейнеров на наличие следующих проблем безопасности:
ошибки конфигураций;
раскрытые конфиденциальные данные;
По умолчанию включено сканирование на уязвимости (vuln) и раскрытые конфиденциальные данные (secret). Настроить сканирование на наличие других проблем можно с помощью параметра --scaners. Параметр --scanners может принимать следующие значения (несколько значений указывается через запятую):
Пример сканирования образа контейнера на уязвимости по базам уязвимостей tirvy и РЕД ОС:
trivy image registry.red-soft.ru/ubi7/firebird-3:latest
Пример сканирования образа контейнера на уязвимости с использованием специализированного образа баз данных уязвимостей:
trivy image --db-repository registry.red-soft.ru/trivy-db/trivy-db 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 – раскрытые конфиденциальные данные.
Пример сканирования метаданных образа контейнера по базам уязвимостей tirvy и РЕД ОС:
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
По умолчанию сканирование проводится на наличие каждой проблемы безопасности.
Пример сканирования кластера на наличие уязвимостей по базам уязвимостей tirvy и РЕД ОС с выводом краткого отчета:
trivy k8s --scanners vuln --report summary --disable-node-collector
Пример сканирования кластера на наличие уязвимостей с использованием специализированного образа баз данных уязвимостей и выводом краткого отчета:
trivy k8s --db-repository registry.red-soft.ru/trivy-db/trivy-db --scanners vuln --report summary --disable-node-collector
При наличии проблем сформированный отчет будет выглядеть аналогично примеру выше.
Для вывода более полного отчета сканирования кластера на уязвимости используйте для ключа report значение all:
report
all
trivy k8s --scanners vuln --report all --disable-node-collector
При наличии проблем сформированный отчет будет выглядеть примерно следующим образом (приведена часть отчета):
trivy kubernetes --help
Упрощение процедуры сканирования заключается в том, чтобы один раз задать часто используемые параметры в файле конфигурации. Указанные параметры будут по умолчанию использованы утилитой trivy при сканировании.
Создайте файл конфигурации:
nano ~/trivy.yaml
Обратите внимание, что файл конфигурации должен быть создан пользователем, обладающим необходимыми разрешениями на взаимодействие с объектами сканирования.
Укажите в файле необходимые параметры. Например, для использования при сканировании специализированного образа баз данных уязвимостей добавьте в файл конфигурации следующее содержимое:
db: repository: - registry.red-soft.ru/trivy-db/trivy-db:2 using-bdu: true
Сохраните файл.
Запустите сканирование безопасности. Например, выполните сканирование образа контейнера:
trivy image registry.red-soft.ru/ubi7/pgadmin:8.6-251013
При сканировании база данных уязвимостей будет загружена в локальный кеш из указанного в файле конфигурации специализированного образа. Поиск файла конфигурации производится в текущем каталоге. Если каталог хранения файла конфигурации отличается от текущего, необходимо указать путь к нему с помощью опции --config <путь_к_файлу>.
--config <путь_к_файлу>
При следующем сканировании, например, файловой системы, команде не потребуется вручную передавать опцию --db-repository с указанием файла базы данных. В качестве базы данных уязвимостей так же будет использована база данных специализированного образа.
Также доступна автоматическая генерация файла конфигурации со стандартным содержимым. Для каждой команды сканирования генерируется свой файл конфигурации с определенным набором параметров. Для генерации стандартного файла конфигурации необходимо выполнить команду вида:
trivy <команда_сканирования> --generate-default-config
Сгенерированный файл конфигурации будет сохранен с именем trivy-default.yaml в текущем каталоге. При необходимости в значения определенных параметров сгенерированного файла конфигурации могут быть внесены изменения.
trivy fs
cache: backend: memory dir: /home/user/.cache/trivy redis: ca: "" cert: "" key: "" tls: false ttl: 0s config: trivy.yaml db: download-java-only: false download-only: false java-repository: - mirror.gcr.io/aquasec/trivy-java-db:1 - ghcr.io/aquasecurity/trivy-java-db:1 java-skip-update: false no-progress: false repository: - mirror.gcr.io/aquasec/trivy-db:2 - ghcr.io/aquasecurity/trivy-db:2 skip-update: false debug: false dependency-tree: false exit-code: 0 format: table ignore-policy: "" ignorefile: .trivyignore insecure: false license: confidencelevel: "0.9" forbidden: - AGPL-1.0 - AGPL-3.0 - CC-BY-NC-1.0 - CC-BY-NC-2.0 - CC-BY-NC-2.5 - CC-BY-NC-3.0 - CC-BY-NC-4.0 - CC-BY-NC-ND-1.0 - CC-BY-NC-ND-2.0 - CC-BY-NC-ND-2.5 - CC-BY-NC-ND-3.0 - CC-BY-NC-ND-4.0 - CC-BY-NC-SA-1.0 - CC-BY-NC-SA-2.0 - CC-BY-NC-SA-2.5 - CC-BY-NC-SA-3.0 - CC-BY-NC-SA-4.0 - Commons-Clause - Facebook-2-Clause - Facebook-3-Clause - Facebook-Examples - WTFPL full: false ignored: [] notice: - AFL-1.1 - AFL-1.2 - AFL-2.0 - AFL-2.1 - AFL-3.0 - Apache-1.0 - Apache-1.1 - Apache-2.0 - Artistic-1.0-cl8 - Artistic-1.0-Perl - Artistic-1.0 - Artistic-2.0 - BSL-1.0 - BSD-2-Clause-FreeBSD - BSD-2-Clause-NetBSD - BSD-2-Clause - BSD-3-Clause-Attribution - BSD-3-Clause-Clear - BSD-3-Clause-LBNL - BSD-3-Clause - BSD-4-Clause - BSD-4-Clause-UC - BSD-Protection - CC-BY-1.0 - CC-BY-2.0 - CC-BY-2.5 - CC-BY-3.0 - CC-BY-4.0 - FTL - ISC - ImageMagick - Libpng - Lil-1.0 - Linux-OpenIB - LPL-1.02 - LPL-1.0 - MS-PL - MIT - NCSA - OpenSSL - PHP-3.01 - PHP-3.0 - PIL - Python-2.0 - Python-2.0-complete - PostgreSQL - SGI-B-1.0 - SGI-B-1.1 - SGI-B-2.0 - Unicode-DFS-2015 - Unicode-DFS-2016 - Unicode-TOU - UPL-1.0 - W3C-19980720 - W3C-20150513 - W3C - X11 - Xnet - Zend-2.0 - zlib-acknowledgement - Zlib - ZPL-1.1 - ZPL-2.0 - ZPL-2.1 permissive: [] reciprocal: - APSL-1.0 - APSL-1.1 - APSL-1.2 - APSL-2.0 - CDDL-1.0 - CDDL-1.1 - CPL-1.0 - EPL-1.0 - EPL-2.0 - FreeImage - IPL-1.0 - MPL-1.0 - MPL-1.1 - MPL-2.0 - Ruby restricted: - BCL - CC-BY-ND-1.0 - CC-BY-ND-2.0 - CC-BY-ND-2.5 - CC-BY-ND-3.0 - CC-BY-ND-4.0 - CC-BY-SA-1.0 - CC-BY-SA-2.0 - CC-BY-SA-2.5 - CC-BY-SA-3.0 - CC-BY-SA-4.0 - GPL-1.0 - GPL-2.0 - GPL-2.0-with-autoconf-exception - GPL-2.0-with-bison-exception - GPL-2.0-with-classpath-exception - GPL-2.0-with-font-exception - GPL-2.0-with-GCC-exception - GPL-3.0 - GPL-3.0-with-autoconf-exception - GPL-3.0-with-GCC-exception - LGPL-2.0 - LGPL-2.1 - LGPL-3.0 - NPL-1.0 - NPL-1.1 - OSL-1.0 - OSL-1.1 - OSL-2.0 - OSL-2.1 - OSL-3.0 - QPL-1.0 - Sleepycat unencumbered: - CC0-1.0 - Unlicense - 0BSD list-all-pkgs: true misconfiguration: checks-bundle-repository: mirror.gcr.io/aquasec/trivy-checks:1 cloudformation: params: [] config-file-schemas: [] helm: api-versions: [] kube-version: "" set: [] set-file: [] set-string: [] values: [] include-non-failures: false raw-config-scanners: [] render-cause: [] scanners: - azure-arm - cloudformation - dockerfile - helm - kubernetes - terraform - terraformplan-json - terraformplan-snapshot terraform: exclude-downloaded-modules: false vars: [] module: dir: /home/user/.trivy/modules enable-modules: [] output: "" output-plugin-arg: "" pkg: include-dev-deps: false relationships: - unknown - root - workspace - direct - indirect types: - os quiet: false registry: mirrors: {} password: [] password-stdin: false token: "" username: [] rego: check: [] data: [] include-deprecated-checks: false namespaces: [] skip-check-update: false trace: false report: all scan: detection-priority: precise disable-telemetry: false distro: "" file-patterns: [] offline: false parallel: 5 rekor-url: https://rekor.sigstore.dev sbom-sources: [] scanners: - vuln show-suppressed: false skip-dirs: [] skip-files: [] skip-version-check: false secret: config: trivy-secret.yaml server: addr: "" custom-headers: [] token: "" token-header: Trivy-Token severity: - UNKNOWN - LOW - MEDIUM - HIGH - CRITICAL table-mode: - summary - detailed template: "" timeout: 5m0s using-bdu: false version: false vulnerability: ignore-status: [] ignore-unfixed: false severity-source: - auto skip-vex-repo-update: false vex: []
Обратите внимание, что файл конфигурации trivy-default.yaml может быть использован только с той командой сканирования, для которой он сгенерирован.
Дата последнего изменения: 12.11.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.