Trivy: различия между версиями
(Новая страница: «Trivy — сканер уязвимостей в образах контейнеров, файловых системах и репозиториях Git. Кроме того, trivy может находить ошибки в файлах конфигурации, жёстко запрограммированные конфиденциальные данные, использование несовместимых лицензий в проекте. == Ус...») |
Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 86: | Строка 86: | ||
=== Клиент/сервер === | === Клиент/сервер === | ||
Trivy может работать в режиме клиент/сервер. На сервере Trivy хранится | Trivy может работать в режиме клиент/сервер. На сервере Trivy хранится база данных уязвимостей, а клиенту Trivy не нужно её загружать. | ||
Запуск сервера: | Запуск сервера: | ||
Строка 98: | Строка 98: | ||
Удалённое сканирование файловой системы: | Удалённое сканирование файловой системы: | ||
<syntaxhighlight lang="bash">$ trivy fs --server http://localhost:8081 --severity CRITICAL ./</syntaxhighlight> | <syntaxhighlight lang="bash">$ trivy fs --server http://localhost:8081 --severity CRITICAL ./</syntaxhighlight> | ||
== Локальная база данных Trivy == | |||
Пакет {{pkgL|trivy-db}} содержит базу данных уязвимостей для Trivy. Базу данных Trivy, установленную из пакета, можно использовать только в клиент-серверном режиме (trivy-server должен быть запущен через trivy.service). | |||
Для возможности использования локальной базы данных Trivy необходимо: | |||
# Установить пакеты {{pkgL|trivy-db}} и {{pkgL|trivy-server}}: | |||
#: <syntaxhighlight lang="bash"># apt-get install trivy-db trivy-server</syntaxhighlight> | |||
# Запустить сервер и добавить его в автозагрузку: | |||
#:<syntaxhighlight lang="bash"># systemctl enable --now trivy-server</syntaxhighlight> | |||
Пример сканирования файловой системы, с использованием локальной базы данных (с машины, на которой запущен trivy-server): | |||
<syntaxhighlight lang="bash">$ trivy fs --server http://localhost:4954</syntaxhighlight> | |||
Пример сканирования файловой системы (с удаленной машины): | |||
<syntaxhighlight lang="bash">$ trivy fs --server http://192.168.0.169:4954</syntaxhighlight> | |||
где 192.168.0.169 — IP-адрес машины, на которой запущен trivy-server. | |||
== Ссылки == | == Ссылки == |
Текущая версия от 14:20, 12 ноября 2024
Trivy — сканер уязвимостей в образах контейнеров, файловых системах и репозиториях Git. Кроме того, trivy может находить ошибки в файлах конфигурации, жёстко запрограммированные конфиденциальные данные, использование несовместимых лицензий в проекте.
Установка
Установить пакет trivy:
# apt-get install trivy
Использование
trivy <команда> [--scanners <сканер1,сканер2>] <цель>
Доступные команды:
- image (i) — сканировать образ контейнера;
- filesystem (fs) — сканировать локальную файловую систему;
- repository (repo) — сканировать git-репозиторий (удаленно);
- vm — сканировать образ виртуальной машины;
- kubernetes (k8s) — сканировать кластер кубернетес;
- aws — сканировать учётную запись AWS;
- config — сканировать файлы конфигурации;
- rootfs — сканировать rootfs;
- sbom — сканировать используемые пакеты ОС и программные зависимости (SBOM);
- completion — сгенерировать скрипт автозаполнения для указанной оболочки;
- module — управление модулями;
- plugin — управление плагинами;
- server — режим сервера;
- version — вывести версию.
Сканеры:
- vuln — известные уязвимости (CVE) (по умолчанию);
- config — проблемы с IAC и неправильные настройки;
- secret — конфиденциальная информация и секреты (по умолчанию);
- license — лицензии на программное обеспечение.
Получение подробной информации о команде:
$ trivy <команда> --help
Примеры использования
Образы контейнеров
Сканирование образа контейнера на уязвимости:
$ trivy image alt:p10
Сканирование образа контейнера на наличие уязвимостей HIGH и CRITICAL с сохранением результата в формате JSON в файл:
$ trivy image --severity HIGH,CRITICAL -f json -o test.json alt:p10
Вывести проблемы с лицензиями:
$ trivy image --scanners license alt:p10
Проверка кофигурации только в метаданных образа контейнера:
$ trivy image --scanners none --image-config-scanners config alt:p10
Сканирование локального образа контейнера в Podman:
$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.altlinux.org/alt/nginx latest 862baa6fbed9 3 months ago 136 MB
registry.altlinux.org/alt/alt p10 ff2762c6c8cc 6 months ago 118 MB
$ trivy image ff2762c6c8cc
$ systemctl --user start podman.socket
Репозиторий Git
Сканирование репозитория Git на уязвимости и конфиденциальную информацию:
$ trivy repo https://github.com/altlinux/admc
Сканирование ветки в репозитории на проблемы с лицензиями:
$ trivy repo --scanners license --branch run-sh https://github.com/altlinux/admc
Также можно использовать --commit и --tag.
Файловая система
Сканирование локальной файловой системы (проверка файлов конфигурации и конфиденциальной информации):
$ git clone git://git.altlinux.org/gears/o/openuds-tunnel.git
$ trivy fs --scanners=secret,config ./openuds-tunnel/
Проверка фалов конфигурации:
$ trivy config ./openuds-tunnel/
Kubernetes
Просканировать кластер и создать простой сводный отчет:
$ trivy k8s --report=summary cluster
Просканировать кластер и вывести всю информацию о критических уязвимостях:
$ trivy k8s --report=all --severity=CRITICAL cluster
Клиент/сервер
Trivy может работать в режиме клиент/сервер. На сервере Trivy хранится база данных уязвимостей, а клиенту Trivy не нужно её загружать.
Запуск сервера:
$ trivy server --listen localhost:8081
Удалённое сканирование образа:
$ trivy image --server http://192.168.0.169:8081 alt:p10
Удалённое сканирование файловой системы:
$ trivy fs --server http://localhost:8081 --severity CRITICAL ./
Локальная база данных Trivy
Пакет trivy-db содержит базу данных уязвимостей для Trivy. Базу данных Trivy, установленную из пакета, можно использовать только в клиент-серверном режиме (trivy-server должен быть запущен через trivy.service).
Для возможности использования локальной базы данных Trivy необходимо:
- Установить пакеты trivy-db и trivy-server:
# apt-get install trivy-db trivy-server
- Запустить сервер и добавить его в автозагрузку:
# systemctl enable --now trivy-server
Пример сканирования файловой системы, с использованием локальной базы данных (с машины, на которой запущен trivy-server):
$ trivy fs --server http://localhost:4954
Пример сканирования файловой системы (с удаленной машины):
$ trivy fs --server http://192.168.0.169:4954
где 192.168.0.169 — IP-адрес машины, на которой запущен trivy-server.