Cloud, Container & IaC Security #01: Tutorial Lengkap Trivy + Grype untuk Container Vulnerability dan SBOM
Episode 01/5: tutorial lengkap Trivy + Grype dengan practical workflow, command dan security assessment.
Cloud, Container & IaC Security
Episode 01/5 — Trivy + Grype
Tool versions: Trivy 0.74.0 + Grype 0.118.0
Pendahuluan
Container security bukan sekadar mencari CVE. Kita perlu mengetahui isi image, package yang terpasang, SBOM, vulnerability yang diketahui, fixed version, dan bagaimana hasil assessment masuk ke CI/CD.
Tutorial ini menggabungkan Trivy dan Grype. Trivy memiliki cakupan luas untuk vulnerability, misconfiguration, secrets dan SBOM, sedangkan Grype berfokus pada vulnerability matching untuk container image, filesystem dan SBOM.
Jalankan assessment hanya terhadap asset yang Anda miliki atau yang secara eksplisit Anda berwenang untuk assess.
1. Versi dan instalasi
Trivy yang digunakan adalah 0.74.0. Verifikasi:
trivy --version
Grype yang digunakan adalah 0.118.0:
grype version
Untuk environment production, pin versi scanner agar pipeline reproducible.
2. Scan image dengan Trivy
trivy image alpine:3.20
trivy image --severity HIGH,CRITICAL alpine:3.20
trivy image --ignore-unfixed alpine:3.20
Severity harus dibaca sebagai signal, bukan keputusan otomatis. Periksa package, installed version, fixed version, exposure dan konteks aplikasi.
3. Scan image yang sama dengan Grype
grype alpine:3.20
Jumlah finding tidak harus sama. Database, package detection, version matching dan severity calculation dapat menghasilkan perbedaan.
Karena itu jangan membuat kesimpulan bahwa scanner yang menemukan jumlah CVE lebih sedikit otomatis lebih baik.
4. Machine-readable result
Trivy:
trivy image --format json --output trivy.json alpine:3.20
Grype:
grype alpine:3.20 -o json > grype.json
Hasil tersebut dapat disimpan sebagai CI artifact.
5. SBOM
Trivy dapat menghasilkan CycloneDX:
trivy image --format cyclonedx --output sbom.cdx.json alpine:3.20
SBOM kemudian dapat dianalisis menggunakan Grype:
grype sbom:./sbom.cdx.json
Workflow:
Image → SBOM → Package Inventory → Vulnerability Matching → Remediation
SBOM penting karena vulnerability database berubah, sedangkan inventory artifact tetap berguna untuk audit dan incident response.
6. Trivy configuration scanning
Trivy juga dapat digunakan untuk IaC:
trivy config ./infra
Dengan demikian security assessment dapat dilakukan sebelum image dibuat dan setelah image tersedia.
7. CI/CD security gate
Contoh:
docker build -t myapp:$GIT_SHA .
trivy image --severity HIGH,CRITICAL --exit-code 1 myapp:$GIT_SHA
grype myapp:$GIT_SHA
Sebelum membuat scanner menjadi hard gate, tentukan severity threshold, unfixed policy, exception process, remediation SLA dan owner.
8. Memahami false positive dan false negative
Scanner tidak memahami seluruh business context.
Review setiap finding berdasarkan package, version, runtime usage, network exposure dan compensating control.
False positive perlu ditriage. False negative selalu mungkin terjadi karena detection bergantung pada package identification dan database.
9. Cross-check strategy
Trivy dan Grype dapat digunakan bersama jika organisasi memang membutuhkan cross-check.
Namun dua scanner dapat menghasilkan duplicate findings. Maka diperlukan normalisasi identifier, deduplication dan ownership.
Jangan mengukur security maturity berdasarkan jumlah scanner.
10. Workflow production
Source
↓
IaC/config scan
↓
Build
↓
Container image
↓
Trivy + Grype
↓
SBOM
↓
Policy
↓
Registry
↓
Deployment
↓
Continuous rescan
Continuous rescan penting karena vulnerability database berubah setelah image dipublish.
11. Kesalahan umum
Jangan menganggap HIGH selalu exploitable.
Jangan menyimpan secret dalam image lalu menghapusnya pada layer berikutnya.
Jangan menggunakan floating image tag jika reproducibility diperlukan.
Jangan menjadikan semua finding blocking tanpa baseline.
Kesimpulan
Trivy dan Grype sebaiknya dipahami sebagai bagian dari software supply-chain security. Trivy memberi cakupan assessment yang luas, sedangkan Grype memberi fokus kuat pada vulnerability matching dan SBOM. Yang penting bukan memilih tool berdasarkan jumlah fitur, tetapi membangun workflow yang menghasilkan finding yang dapat ditindaklanjuti.
Referensi resmi
- https://github.com/aquasecurity/trivy
- https://trivy.dev/
- https://github.com/anchore/grype
- https://oss.anchore.com/docs/
Seri: Cloud, Container & IaC Security
Episode: 01/5
Tools: Trivy + Grype
Post Terkait
Malware Analysis Fundamentals #09: Teknik Evasion yang Wajib Diwaspadai Analis Malware
Penutup seri Malware Analysis Fundamentals: delapan teknik evasion yang wajib diwaspadai — packing, obfuscation, anti-de...
Malware Analysis Fundamentals #08: Bukti Digital yang Wajib Dikumpulkan Saat Analisis Malware
Checklist lengkap bukti digital yang wajib dikumpulkan saat analisis malware: hash, IOC jaringan (domain, IP, sertifikat...
Malware Analysis Fundamentals #07: Membangun Lab Analisis Malware yang Aman
Panduan membangun lab analisis malware yang aman: isolated VM, snapshot, jaringan host-only/simulasi, mematikan shared c...