Trivy

Найдите уязвимости, неправильную конфигурацию, секреты, SBOM в контейнерах, Kubernetes, репозиториях кода, облаках и т. д.

Название задания в Auditor: Trivy Code Dependencies, Trivy Image Dependencies Образ в Auditor: registry.cybercodereview.ru/cybercodereview/security-images/trivy:0.51.4 Название импортера в Security Center: Trivy Scan

Trivy - это универсальный инструмент сканирования безопасности, предназначенный для выявления потенциальных уязвимостей как в образах контейнеров, так и в репозиториях кода (два режима работы). Он предлагает полный охват потенциальных проблем безопасности, включая известные уязвимости в пакетах операционной системы и зависимостях приложений.

Особого внимания заслуживают возможности Trivy по сканированию контейнеров, которые позволяют проверять образы Docker на наличие уязвимостей в пакетах ОС, библиотеках и других компонентах. Это гарантирует, что контейнерные приложения построены на безопасном фундаменте, минимизируя риск эксплуатации через известные уязвимости.

Помимо сканирования контейнеров, Trivy также поддерживает сканирование кода, проверяя репозитории кода на наличие проблем безопасности.

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

curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./trivy-code.json" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=Trivy Scan" -F "branch=dev" -F "[email protected]:cybercodereview/security-center.git"
curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./trivy-image.json" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=Trivy Scan" -F "branch=dev"  -F "docker_image=registry.cybercodereview.ru/cybercodereview/security-center/back/importer:latest"

В этой команде используются следующие параметры:

  1. -X POST: задает используемый метод HTTP (в данном случае POST).

  2. -H "Authorization: Token <authorization_token>": задает токен авторизации, полученный от Security Center.

  3. -H "Content-Type: multipart/form-data": задает тип содержимого запроса.

  4. -F "file=@<report_file_path>": задает путь к файлу отчета, создаваемого сканером.

  5. -F "product_name=<product_name>": задает название сканируемого продукта.

  6. -F "product_type=<product_type>": задает тип сканируемого продукта.

  7. -F "scanner_name=<scanner_name>": задает имя сканера, используемого для создания отчета (Bandit Scan или GitLab Bandit)

  8. -F "branch=<branch_name>": (необязательно) указывает имя ветки в репозитории исходного кода (если применимо). Этот параметр особенно полезен, когда вы хотите связать результаты сканирования с определенной веткой в вашем репозитории. Если параметр не указан, сканирование будет связано с веткой по умолчанию

Информация об активах, если используется Auditor

  1. -F "repository=<repository SSH URL>": Если ваш продукт хранится в репозитории, введите адрес репозитория в определенном формате, например: [email protected]:cybercodereview/security-center.git

  2. -F "docker_image=<registry address>": Если ваш продукт является образом, введите адрес реестра, в котором находится ваш продукт, например: registry.cybercodereview.ru/cybercodereview/security-center/back/importer:latest

  3. -F "domain=<domain>": Если ваш продукт является веб-продуктом, введите доменное имя вашего продукта, например: cybercodereview.ru

  4. -F "host=<host>": Если ваш продукт является веб-продуктом, введите IP-адрес вашего продукта, например: 0.0.0.0

Пример отчета:

Last updated