Temel imaj taraması
En basit kullanım imaj adını vermektir. Hangi tarayıcıların çalışacağı --scanners ile seçilir; geçerli değerler vuln, misconfig, secret ve license'tır. İmaj taramasında zafiyet ve sır tarayıcıları varsayılan olarak açıktır; yalnızca zafiyet taraması için:
CODE TERMINAL
trivy image python:3.4-alpine
trivy image --scanners vuln python:3.4-alpineGürültüyü azaltma: --severity ve --ignore-unfixed
Bir imajda yüzlerce bulgu çıkabilir. Önceliklendirmenin ilk adımı şiddet filtresidir; seviyeler UNKNOWN, LOW, MEDIUM, HIGH ve CRITICAL'dır:
CODE TERMINAL
trivy image --severity HIGH,CRITICAL ruby:2.4.0İkinci adım henüz düzeltmesi olmayan bulguları gizlemektir. Belgelere göre --ignore-unfixed, --ignore-status affected,will_not_fix,fix_deferred,end_of_life için bir kısayoldur; yani yalnızca yaması bulunan zafiyetler gösterilir:
CODE TERMINAL
trivy image --ignore-unfixed ruby:2.4.0
trivy image --ignore-status affected,fixed ruby:2.4.0Yalnızca düzeltilebilir bulgulara odaklanmak ekibe "bugün aksiyon alınabilecek" listeyi verir. Düzeltmesi olmayan riskleri gözden kaçırmamak için bu filtre olmadan da düzenli tarama yapın.
CI kapısı: --exit-code
Trivy varsayılan olarak bulgu olsa bile 0 çıkış koduyla döner. Derlemeyi durdurmak için --exit-code 1 verilir. Şiddet filtresiyle birleştirildiğinde yalnızca kritik ve yaması olan bulgularda derleme başarısız olur:
CODE TERMINAL
trivy image --severity CRITICAL --ignore-unfixed --exit-code 1 uygulamam:1.4.2Kademeli geçiş önerisi: önce kapı olmadan yalnızca raporlayın, mevcut bulgular temizlendikten sonra CRITICAL için, ardından HIGH için kapıyı açın.
Raporlama biçimleri
Sonuçlar --format ve --output ile dosyaya yazılır. Tablo, JSON, SARIF, şablon ve SBOM biçimleri desteklenir; SARIF çıktısı kod tarama platformlarına aktarılabilir:
CODE TERMINAL
trivy image --format json --output sonuc.json uygulamam:1.4.2
trivy image --format sarif --output sonuc.sarif uygulamam:1.4.2İstisna yönetimi: .trivyignore ve .trivyignore.yaml
Kabul edilmiş riskleri koda yazarak kayıt altına alın. Satır tabanlı .trivyignore dosyasında her satıra bir kimlik yazılır; exp: ile bitiş tarihi verilebilir:
CODE TERMINAL
CVE-2018-14618
CVE-2019-14697 exp:2023-01-01
AVD-DS-0002Daha ayrıntılı kontrol için .trivyignore.yaml kullanılır; bu dosya --ignorefile ile verilir. Desteklenen alanlar: id (zorunlu), paths, purls (yalnızca zafiyetler), expired_at (yyyy-mm-dd) ve statement (gerekçe):
CODE TERMINAL
vulnerabilities:
- id: CVE-2023-2650
purls:
- "pkg:deb/debian/libssl1.1"
statement: Etkilenen koda erişilmiyor, risk kabul edildi
expired_at: 2023-09-01CODE TERMINAL
trivy image --ignorefile ./.trivyignore.yaml uygulamam:1.4.2Her istisnaya bitiş tarihi koymak, "geçici" kararların kalıcılaşmasını önler. Bastırılan bulguları görmek için --show-suppressed, Rego ile ileri düzey filtre için --ignore-policy kullanılır.
VEX ile "etkilenmiyoruz" beyanı
VEX (Vulnerability Exploitability eXchange), bir zafiyetin belirli bir üründe istismar edilebilir olup olmadığını bildiren belgedir. Trivy --vex bayrağıyla bu belgeleri kullanarak bulguları eler; kaynak olarak VEX deposu, yerel dosya, OCI attestation veya SBOM referansı verilebilir:
CODE TERMINAL
trivy image ghcr.io/aquasecurity/trivy:0.52.0 --vex repo
trivy image --vex debian11.csaf.vex debian:11Dockerfile ve SBOM
Trivy, Dockerfile ve Containerfile dosyalarında yanlış yapılandırma arar. trivy fs komutunda yanlış yapılandırma tarayıcısı varsayılan olarak kapalıdır, --scanners ile açılır:
CODE TERMINAL
trivy config ./proje
trivy fs --scanners misconfig ./projeSBOM üretmek ve daha sonra SBOM üzerinden taramak için:
CODE TERMINAL
trivy image --format cyclonedx --output sbom.cdx.json alpine:3.15
trivy image --format spdx-json --output sbom.spdx.json alpine:3.15
trivy sbom ./sbom.spdx.jsonCycloneDX çıktısı varsayılan olarak zafiyet içermez; eklemek için --scanners vuln verilir.
2026 olayı: tarayıcının kendisi hedef olduğunda
Mart 2026'da Trivy ekosistemi tedarik zinciri saldırısına uğradı; olay CVE-2026-33634 (GHSA-69fq-xp46-6x23) olarak kayda geçti. GitLab danışmanlık kaydına göre 19 Mart 2026'da kötü amaçlı Trivy v0.69.4 yayımlandı ve aquasecurity/trivy-action'ın v0.0.1–v0.34.2 aralığındaki neredeyse tüm sürüm etiketleri kötü amaçlı commit'lere yönlendirildi; 22 Mart'ta Docker Hub'daki 0.69.5 ve 0.69.6 imajları da etkilendi. The Hacker News'e göre setup-trivy'nin v0.2.0–v0.2.6 etiketleri de değiştirildi. Zararlı kod CI ortamındaki SSH anahtarlarını, bulut, veritabanı ve Git kimlik bilgilerini, Docker yapılandırmalarını, Kubernetes belirteçlerini ve kripto cüzdanlarını hedefliyordu.
The Hacker News'in aktardığı güvenli sürümler: Trivy 0.69.3, trivy-action 0.35.0 ve setup-trivy 0.2.6. Olaydan çıkan pratik dersler:
- GitHub Actions'ı sürüm etiketiyle değil, tam commit SHA'sıyla sabitleyin; etiketler zorla taşınabilir, SHA taşınamaz.
- Etkilenen sürümlerin çalıştığı hatlardaki tüm sırları ele geçirilmiş sayıp döndürün ve iş akışlarını denetleyin.
- GitHub kuruluşunuzda "tpcp-docs" adlı bir depo olup olmadığını kontrol edin.
- Kaynakta anılan 45.148.10.212 IP adresini ağ düzeyinde engelleyin.
- Araç imajlarını etiket yerine özet (digest) ile sabitleyin ve tarayıcıya yalnızca gereken en az yetkiyi verin.
Önerilen uygulama sırası
- Yerelde --scanners vuln --severity HIGH,CRITICAL --ignore-unfixed ile mevcut durumu görün.
- İstisnaları .trivyignore.yaml içine gerekçe ve bitiş tarihiyle yazın.
- CI'da önce raporlayın, sonra CRITICAL için --exit-code 1 açın.
- Dockerfile için trivy config ekleyin, SBOM üretip arşivleyin.
- Trivy sürümünü ve eylemleri SHA ya da digest ile sabitleyin.
Trivy doğru filtre ve istisna disipliniyle gürültüsüz bir güvenlik kapısına dönüşür. 2026 olayı ise güvenlik araçlarının da tedarik zincirinin parçası olduğunu ve diğer bağımlılıklar kadar sıkı sabitlenmesi gerektiğini gösterdi.
Kaynaklar
- Trivy belgeleri, konteyner imajı: https://trivy.dev/latest/docs/target/container_image/
- Trivy belgeleri, filtreleme: https://trivy.dev/latest/docs/configuration/filtering/
- Trivy belgeleri, diğer ayarlar: https://trivy.dev/latest/docs/configuration/others/
- Trivy belgeleri, VEX: https://trivy.dev/latest/docs/supply-chain/vex/
- Trivy belgeleri, SBOM: https://trivy.dev/latest/docs/supply-chain/sbom/
- GitLab Advisory CVE-2026-33634: https://advisories.gitlab.com/golang/github.com/aquasecurity/trivy/CVE-2026-33634/
- The Hacker News: https://thehackernews.com/2026/03/trivy-security-scanner-github-actions.html
TR Siber Ekibi