Container Security: Scanning docker image dengan Trivy

Cara mudah scan Docker image container menggunakan Trivy Security
Scan Container Image using Trivy for vulnerabilities

Tools open-source yang dapat anda 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.

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

Tambahkan trivy public key dan gpg key.

Bash
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.

Bash
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.

Bash
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

Bash
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.

Bash
sudo yum -y install trivy

1.3 Instalasi di macOS

Jalankan perintah berikut untuk instalasi Trivy menggunakan Homebrew paket manager.

Bash
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.

Lakukan pull docker image nginx:latest.

Bash
docker pull nginx:alpine

2.1 Scan Vulnerability Docker Image

Jalankan perintah berikut untuk scan docker image.

Bash
trivy image nginx:alpine

Output result:

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.

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

Install trivy plugin scan2html sebagai berikut.

Bash
trivy plugin install scan2html

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

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

Tampilan trivy security report dengan scan2html

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:

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:

Previous Article

Pritunl OpenVPN Client: Instalasi dan Konfigurasi di Ubuntu

Next Article

Deploy SonarQube on Alibaba Cloud: Cara Instalasi dan Konfigurasi SonarQube menggunakan Rocky Linux 9

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *

Let’s Keep in Touch

Get handpicked content and updates — no noise, just the good stuff.
Sent with care, not robots 🤖