Cara Audit Keamanan Docker Image Menggunakan Trivy di Debian 12

Cara Audit Keamanan Docker Image Menggunakan Trivy di Debian 12

Pengantar

Docker banyak digunakan untuk menjalankan aplikasi dalam lingkungan yang terisolasi dan konsisten. Aplikasi beserta dependensinya dapat dikemas ke dalam container image sehingga lebih mudah dipindahkan dan dijalankan di berbagai server.

Namun, Docker image tidak otomatis aman. Image dapat mengandung package dengan vulnerability, baik dari base image maupun package tambahan yang digunakan selama proses build.

Karena itu, pemeriksaan keamanan Docker image sebelum digunakan di production penting dilakukan untuk mengurangi risiko keamanan pada aplikasi dan server.

Salah satu tool yang dapat digunakan adalah Trivy. Tool ini dapat mendeteksi vulnerability pada container image, filesystem, repository, konfigurasi, hingga secret.

Pada artikel ini, Anda akan mempelajari cara install Trivy di Debian 12, melakukan scan Docker image, memahami hasil pemeriksaan, dan membuat laporan hasil scan.

Apa Itu Trivy?

Trivy adalah security scanner open source yang dikembangkan oleh Aqua Security. Tool ini digunakan untuk mendeteksi berbagai masalah keamanan pada container dan software.

Untuk Docker image, Trivy dapat memeriksa package dan file di dalam image untuk menemukan vulnerability yang telah diketahui. Selain vulnerability, Trivy juga mendukung pemeriksaan secret, license, dan konfigurasi tertentu.

Dengan kemampuan tersebut, Trivy dapat membantu administrator dan developer memeriksa keamanan image sebelum digunakan dalam lingkungan production.

Mengapa Docker Image Perlu Diaudit?

Docker image dapat mengandung package, library, atau dependency yang memiliki vulnerability. Jika tidak diperiksa, masalah tersebut dapat terbawa hingga ke lingkungan production.

Beberapa risiko yang dapat ditemukan antara lain:

  • Package memiliki vulnerability.
  • Base image menggunakan versi lama.
  • Terdapat vulnerability dengan tingkat High atau Critical.
  • Secret atau informasi sensitif tersimpan di dalam image.
  • Konfigurasi Dockerfile kurang aman.
  • Dependency sudah tidak mendapatkan pembaruan.

Dengan melakukan scanning sebelum deployment, masalah dapat ditemukan lebih awal sehingga dapat diperbaiki sebelum image digunakan di production.

Persiapan di Debian 12

Pastikan server memenuhi persyaratan minimum berikut:

  • Debian 12 (Bookworm).
  • CPU minimal 1 Core.
  • RAM minimal 1 GB.
  • Penyimpanan minimal 5 GB.
  • Akses sudo.
  • Docker Engine terpasang.
  • Koneksi internet.

Cara Install Trivy di Debian 12

1. Memperbarui Repository
Perbarui package index dan install dependency yang diperlukan.

sudo apt update
sudo apt install wget gnupg -y

2. Menambahkan GPG Key Trivy

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

3. Menambahkan Repository Trivy

echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] https://aquasecurity.github.io/trivy-repo/deb generic main" | sudo tee /etc/apt/sources.list.d/trivy.list

Perbarui kembali repository.

sudo apt update

4. Install Trivy

sudo apt install trivy -y

5. Verifikasi Instalasi

trivy --version

Jika berhasil, versi Trivy akan ditampilkan pada terminal.

Cara Scan Docker Image Menggunakan Trivy

1. Melakukan Scanning Docker Image
Jalankan scanning terhadap Docker image menggunakan Trivy.

trivy image debian:12-slim

Jika vulnerability database belum tersedia atau perlu diperbarui, Trivy akan mengunduhnya terlebih dahulu.

2. Membaca Hasil Scanning
Hasil scanning menampilkan jumlah vulnerability berdasarkan tingkat keparahannya, misalnya:

Total: 164 (UNKNOWN: 10, LOW: 72, MEDIUM: 60, HIGH: 17, CRITICAL: 5)

Pada contoh tersebut, Trivy menemukan 164 vulnerability, dengan rincian 10 UNKNOWN, 72 LOW, 60 MEDIUM, 17 HIGH, dan 5 CRITICAL.

Gambar: Hasil scanning Docker image debian:12-slim menggunakan Trivy

Catatan:
Jumlah vulnerability dapat berbeda tergantung versi image dan database Trivy saat scanning dilakukan.

Memahami Hasil Scan Trivy

1. Memahami Hasil Scanning

Trivy menampilkan detail vulnerability yang ditemukan pada setiap package. Informasi yang perlu diperhatikan meliputi:

  • Library: package yang memiliki vulnerability.
  • Vulnerability: ID vulnerability, biasanya berupa CVE.
  • Severity: tingkat keparahan.
  • Installed Version: versi package yang digunakan.
  • Fixed Version: versi yang sudah memiliki perbaikan, jika tersedia.

Contoh hasil scan:

Library   Vulnerability    Severity   Installed Version
psutils   CVE-2026-53615   HIGH       1:2.38.1-5+deb12u3
Catatan:
Jika Fixed Version tersedia, perbarui package ke versi tersebut. Jika belum tersedia, lakukan analisis risiko sebelum menentukan tindakan selanjutnya.

Memfilter Vulnerability Berdasarkan Severity

1. Memfilter Vulnerability

Untuk menampilkan vulnerability dengan tingkat HIGH dan CRITICAL, gunakan opsi --severity.

trivy image --severity HIGH,CRITICAL debian:12-slim

Untuk menyembunyikan vulnerability yang belum memiliki versi perbaikan, gunakan opsi --ignore-unfixed.

trivy image --ignore-unfixed debian:12-slim
Catatan:
Opsi --ignore-unfixed membantu memusatkan perhatian pada vulnerability yang sudah memiliki perbaikan. Vulnerability yang belum memiliki patch tetap perlu dipantau, terutama pada lingkungan production.

Memperbaiki Vulnerability pada Docker Image

1. Memperbaiki Vulnerability

Jika ditemukan vulnerability, periksa sumber masalahnya. Umumnya berasal dari:

  • Base image yang sudah lama.
  • Package sistem yang belum diperbarui.
  • Dependency aplikasi yang memiliki vulnerability.
  • Package yang tidak diperlukan.

Jika masalah berasal dari base image, gunakan versi yang masih mendapatkan pembaruan keamanan. Contohnya:

FROM debian:12

Setelah melakukan perubahan, build ulang image:

docker build -t myapp:latest .

Kemudian lakukan scanning kembali:

trivy image myapp:latest
Catatan:
Lakukan proses scan, perbaiki, build ulang, lalu scan kembali hingga vulnerability dengan risiko tinggi dapat ditangani.

Membuat Laporan Hasil Scan

1. Menyimpan Hasil Scanning

Trivy dapat menyimpan hasil scanning dalam format JSON untuk dokumentasi atau diproses oleh sistem lain.

trivy image --format json --output hasil-scan.json debian:12-slim

Hasil scanning akan tersimpan dalam file hasil-scan.json.

Catatan:
Format JSON dapat digunakan untuk kebutuhan dokumentasi maupun integrasi dengan pipeline CI/CD.

Tips Melakukan Audit Docker Image

  • Gunakan base image yang masih mendapatkan pembaruan keamanan.
  • Lakukan scanning sebelum image digunakan di production.
  • Prioritaskan vulnerability dengan severity HIGH dan CRITICAL.
  • Periksa Fixed Version yang tersedia.
  • Build ulang image setelah memperbarui package.
  • Lakukan scanning kembali setelah perbaikan.
  • Jalankan scanning secara berkala untuk mendeteksi vulnerability baru.

Kesimpulan

Trivy dapat membantu administrator memeriksa keamanan Docker image sebelum digunakan di production. Pada Debian 12, instalasinya cukup mudah menggunakan repository resmi dan hasil scanning dapat digunakan untuk menentukan langkah perbaikan.

Dengan melakukan scanning secara rutin, memperbarui package, menggunakan base image yang aman, serta melakukan pemeriksaan ulang setelah perubahan, risiko vulnerability pada Docker image dapat dikurangi.

Trivy juga dapat diintegrasikan ke dalam workflow development atau CI/CD sehingga pemeriksaan keamanan dapat dilakukan secara otomatis dan konsisten.


Artikel Lain

WhatsApp Kami

Support : +6282138153600

Finance : +6285191239466