# Trivy Image

### Overview

Trivy Image (режим `trivy image`) используется в TRAIO для сканирования docker-образов на уязвимости (CVE) в пакетах ОС и зависимостях внутри образа.

### Supported Stack

* Docker images

### Requirements

* В Sequences перед этим инструментом должен быть добавлен job **Code Downloader**.

### How it works

Сканер использует официальный docker-образ Trivy (рекомендуемо):&#x20;

* `aquasec/trivy:latest`

Пример команды:

```sh
if [ "$TRIVY_MODE" = "image" ]; then
  trivy image --format json --output "/data/$REPORT_FILE_NAME" "$DOCKER_IMAGE" || true
elif [ "$TRIVY_MODE" = "iac" ]; then
  trivy config --format json --output "/data/$REPORT_FILE_NAME" ./ || true
else
  trivy fs --format json --output "/data/$REPORT_FILE_NAME" ./ || true
fi

echo "Trivy report saved to /data/$REPORT_FILE_NAME"
cat "/data/$REPORT_FILE_NAME"
```

### Variables

<table data-header-hidden><thead><tr><th width="187"></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>Переменная</td><td>Пример</td><td>Обязательная</td><td>Описание</td></tr><tr><td>REPORT_FILE_NAME</td><td><code>trivy-image.json</code></td><td>Да</td><td>Имя файла отчёта, который TRAIO забирает из <code>/data</code>.</td></tr><tr><td>SCAN_TYPE</td><td><code>Trivy Scan</code></td><td>Да</td><td>Тип сканирования для парсинга в TRAIO.</td></tr><tr><td>TRIVY_MODE</td><td><code>image</code></td><td>Да</td><td>Режим запуска.</td></tr><tr><td>DOCKER_IMAGE</td><td></td><td>Да</td><td>Docker-образ, который нужно просканировать.</td></tr><tr><td>DOCKER_IMAGE_TAG</td><td></td><td>Да</td><td>Тег Docker-образа, который нужно просканировать.</td></tr></tbody></table>

### **Offline mode:**

**Trivy DB-Included - Need to Choose Mode** — job для запуска Trivy в полностью оффлайн контуре на базе образа `registry.gitlab.com/traio-group/tools/trivy-offline:0.68.2`, где базы (Trivy DB и Java DB) уже предзагружены в образ.&#x20;

В этом job нужно выбрать режим сканирования через TRIVY\_MODE: fs (сканирование файловой системы/репозитория), iac (сканирование IaC через trivy config) или image (сканирование контейнерного образа через trivy image). Если TRIVY\_MODE не задан, стандартно используется режим fs.

### Links

* Trivy (Image scanning): <https://aquasecurity.github.io/trivy/latest/docs/target/container_image/>
* Trivy docs: <https://aquasecurity.github.io/trivy/>
