Trivy
Trivy – otwarto‑źródłowy skaner podatności i nieprawidłowości w obrazach kontenerów oraz kodzie źródłowym, opracowany przez firmę Aqua Security. Narzędzie umożliwia automatyczną detekcję znanych luk bezpieczeństwa (CVE), nieaktualnych pakietów, niezgodności z standardami CIS oraz problemów konfiguracyjnych w środowiskach Docker i Kubernetes.
Historia i rozwój
Projekt Trivy rozpoczął się w 2020 roku jako wewnętrzne narzędzie Aqua Security, a pierwsza publiczna wersja 0.1.0 została udostępniona w 2020 roku. Od tego czasu społeczność open‑source przyczyniła się do wprowadzenia licznych usprawnień, m.in. wsparcia dla skanowania infrastruktury jako kodu (IaC), obrazów OCI oraz repozytoriów GitHub.
Funkcje
- Wykrywanie podatności w zależnościach systemowych (pakiety Debian, Alpine, Red Hat), językach programowania (Python, Node.js, Go) oraz frameworkach.
- Analiza konfiguracji pod kątem najlepszych praktyk bezpieczeństwa (CIS Benchmarks).
- Skanowanie szablonów Kubernetes (manifests, Helm charts).
- Wykrywanie niezgodności w Infrastructure as Code (Terraform, CloudFormation, Ansible).
- Wsparcie dla trybu offline – skanowanie bez połączenia z Internetem po uprzednim pobraniu baz danych.
- Eksport wyników w formatach
JSON,Junit,SARIFiTable.
Architektura
Trivy składa się z trzech głównych komponentów:
- Klient – lekkie narzędzie wiersza poleceń (
trivy) działające na systemach Linux, macOS i Windows. - Baza danych – centralny repozytorium podatności, które jest synchronizowane codziennie z publicznymi źródłami, takimi jak National Vulnerability Database i GitHub Advisory Database.
- Silnik skanujący – komponent analizujący obrazy, warstwy kontenerów oraz pliki konfiguracyjne, wykorzystując m.in. OSV i sprawdzanie licencji.
Przykładowe zastosowanie
Poniżej przedstawiono typowy scenariusz użycia Trivy w procesie CI/CD:
# Pobranie najnowszej wersji bazy podatności
trivy image --download-db-only
# Skanowanie obrazu Docker
trivy image myapp:latest
# Skanowanie katalogu z kodem źródłowym
trivy fs ./src
# Skanowanie plików Terraform
trivy config ./infra
Integracje
Trivy jest często integrowany z popularnymi rozwiązaniami DevSecOps, m.in.:
Porównanie z innymi skanerami
| Narzędzie | Rodzaj skanowania | Baza podatności | Licencja |
|---|---|---|---|
| Trivy | Obrazy, filesystem, IaC, konfiguracje | Własna (daily sync) | Apache 2.0 |
| Clair | Obrazy kontenerów | NVD + distro repos | Apache 2.0 |
| Anchore Engine | Obrazy, polityki | Własna + NVD | Apache 2.0 |
Wspólnota i wsparcie
Projekt jest rozwijany publicznie na platformie GitHub pod adresem github.com/aquasecurity/trivy. Użytkownicy mogą zgłaszać błędy, proponować nowe funkcje oraz przyczyniać się do aktualizacji bazy podatności poprzez pull requesty. Dostępny jest także kanał Slack oraz forum dyskusyjne.
Patenty i licencjonowanie
Trivy jest udostępniony na licencji Apache License 2.0, co umożliwia bezpłatne użycie, modyfikację oraz dystrybucję zarówno w projektach komercyjnych, jak i niekomercyjnych.
Przyszłe kierunki rozwoju
- Rozszerzenie wsparcia dla nowych języków i menedżerów pakietów.
- Lepsza integracja z rozwiązaniami SBOM (Software Bill of Materials).
- Wdrożenie funkcji policy as code umożliwiającej definiowanie własnych reguł bezpieczeństwa.
Trivy stał się jednym z najpopularniejszych narzędzi w ekosystemie DevSecOps, zapewniając szybkie i kompleksowe wykrywanie podatności w dynamicznie zmieniających się środowiskach kontenerowych.