Scan Container Image dengan Trivy

Trivy Security
Scan Container Image with Trivy Security

Trivy adalah Tools open-source yang digunakan untuk mendeteksi kerentanan keamanan (vulnerability) pada container image, file system, dan dependensi code. Dengan menggunakan Trivy, Tim Developer maupun DevOps dapat memastikan bahwa docker image yang telah dibuild aman dari celah serta eksploitasi "CVE: Common Vulnerabilities and Exposures".

Mengapa Menggunakan Trivy?

  • Deteksi Cepat: Memeriksa CVE dan vulnerability dalam hitungan detik.
  • Dukungan Multi-Platform: Bisa digunakan untuk Docker, Kubernetes, dan CI/CD pipeline.
  • Integrasi: Dukungan CI/CD seperti GitHub Actions, GitLab CI, maupun Jenkins.
  • Database Vulnerability "Up-to-date": Data vulnerability yang selalu update dari "NVD: National Vulnerabolity Database" dan lainya.

1. Instalasi Trivy

Panduan berikut ini adalah mengenai intalasi Trivy Security di Linux Ubuntu, Redhat, MacOS dan Windows.

1.1 Instalasi Trivy di Linux Ubuntu

Buka terminal di linux ubuntu, lalu jalankan perintah berikut untuk refresh repositori dan install tools wget dan gnugpg.

sudo apt-get update && sudo apt-get install wget gnupg -y

Tambahkan trivy public key dan gpg key.

wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null

Kemudian tambahkan trivy repositori pada path /etc/apt/sources.list.d dengan menjalankan perintah berikut.

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

Setelah itu refresh kembali repositori ubuntu kemudian install Trivy dengan menjalankan perintah berikut.

sudo apt-get update
sudo apt-get install trivy -y

1.2 Instalasi Trivy di Linux Redhat

Tambahkan repositori trivy pada lokasi direktori path /etc/yum.repos.d

cat << EOF | sudo tee -a /etc/yum.repos.d/trivy.repo
[trivy]
name=Trivy repository
baseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/\$basearch/
gpgcheck=1
enabled=1
gpgkey=https://aquasecurity.github.io/trivy-repo/rpm/public.key
EOF

Lalu, jalankan perintah berikut ini menggunakan yum paket manager.

sudo yum -y install trivy

1.3 Instalasi di macOS

Jalankan perintah berikut untuk instalasi Trivy menggunakan Homebrew paket manager.

brew install trivy

1.4 Instalasi di Windows

Unduh binary dari Trivy GitHub Releases dan tambahkan ke PATH environment variables Windows.

2. Scan Container Docker Image

Contoh panduan berikut ini melakukan scan vulnerability menggunakan docker image nginx berbasis alpine.

Pull docker image nginx:latest.

docker pull nginx:alpine

2.1 Scan Vulnerability Docker Image

Jalankan perintah berikut untuk scan docker image.

trivy image nginx:alpine

Output result:

Trivy Security
Trivy Scan

2.2 Generate HTML Report

Pada dasarnya trivy sudah mempunyai default template yang berada pada path direktori linux /usr/local/share/trivy/templates/, tetapi jika anda ingin generate trivy report dengan user interface yang lebih fresh, anda dapat menggunakan thirdparty plugin trivy report Scan2html.

Jalankan perintah berikut untuk generate report dengan format html.

trivy image --format template --template "@/usr/local/share/trivy/templates/html.tpl" -o report.html nginx:alpine

Install trivy plugin scan2html sebagai berikut.

trivy plugin install scan2html

Jika plugin sudah berhasil diinstal, jalankan perintah berikut untuk generate trivy report.

trivy scan2html image --scanners vuln,secret,misconfig,license nginx:alpine --scan2html-flags --output trivy_report.html

Tampilan trivy security report dengan scan2html

Trivy Security
Trivy Generate Report

Jika ingin melihat informasi atau bantuan tentang Trivy, anda dapat menjalankan perintah trivy --help, maka akan muncul daftar opsi dan syntax yang didukung oleh Trivy.
Output result:

Trivy security
Trivy Help Information

Kesimpulan

Secara keseluruhan, Trivy adalah solusi cepat dan mudah untuk membantu tim engineeri dalam mendeteksi kerentanan pada container image sebelum diterapkan ke environment production.

Referensi:

I like to learn new things about Technology and apply them in my work and than I am always on the lookout for the latest DevOps tools and methodologies

Post a Comment