Penggunaan Trivy untuk melihat celah keamanan (Vulnerabilities)
Trivy adalah produk dari Aquasec yang open source
Halaman produk: https://www.aquasec.com/products/trivy/
Halaman github: https://github.com/aquasecurity/trivy
Halaman dev: https://trivy.dev/docs/latest/getting-started/installation/
Cara Instalasi di Ubuntu:
sudo apt-get install wget gnupg
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install trivy
Trivy bisa digunakan untuk:
- memeriksa celah keamanan di library
- memeriksa celah keamanan di image yang ada di registry docker (cocok untuk scan base image)
- memeriksa celah keamanan di image docker atau podman atau .tar image
Jika Anda menulis kode dalam bentuk java dengan bantuan maven untuk library maka Anda bisa dengan memeriksa celah keamanan dengan masuk ke direktori project (yang ada pom.xml) dan:
trivy fs .
Jika Anda berniat membuat docker image dengan base image yang ada di registry docker, anda bisa melakukan:
trivy image <namaimage>:<tag>
Jika trivy tidak bisa mengecek registry docker, anda bisa melihat setelan di file /etc/containers/registries.conf dan cari baris unqualified-search-registries. Sebagai contoh, kita daftarkan registry docker.io ke trivy:
unqualified-search-registries = ["docker.io"]
Sementara itu trivy image juga bisa digunakan untuk docker atau podman local walaupun mungkin harus ada socket-nya.
Namun jika trivy diinstall di tempat terpisah dari docker atau podman, maka trivy bisa melakukan scan tar.
Pertama, simpan image docker atau podman dalam bentuk tar
podman save <namaimage>:<tag> -o <namafile>.jar
Kemudian scan image-nya:
trivy image --input <nama file>.jar
Jika masih tak puas, trivy bisa memberikan output dalam bentuk json sehingga terlihat jelas file-file apa saja yang dipindai oleh trivy.
trivy image --format json <namaimage>:<tag> > <nama_file_output>.log
Selamat mencoba.
