Seiring meningkatnya adopsi teknologi kontainer seperti Docker, kebutuhan akan proses scan keamanan docker yang andal menjadi sangat krusial. Dalam ekosistem DevSecOps, keamanan tidak lagi menjadi langkah terakhir, melainkan bagian integral dari siklus pengembangan. Artikel ini akan memperkenalkan Trivy, sebuah pemindai kerentanan komprehensif, dan memandu Anda cara menggunakannya untuk mengamankan image kontainer Anda secara efektif.
Kontainer telah merevolusi cara kita membangun dan men-deploy aplikasi. Dengan mengemas aplikasi beserta semua dependensinya ke dalam satu unit portabel, kontainer memastikan konsistensi di berbagai lingkungan. Namun, kemudahan ini juga membawa risiko. Sebuah image kontainer bisa saja dibangun di atas base image yang usang atau mengandung pustaka (library) dengan celah keamanan yang diketahui (CVEs). Tanpa proses verifikasi yang tepat, Anda bisa saja tanpa sadar men-deploy kerentanan ke lingkungan produksi.
Inilah mengapa prinsip DevSecOps mengintegrasikan keamanan di setiap fase siklus hidup pengembangan perangkat lunak (SDLC) menjadi sangat penting. Salah satu praktik utamanya adalah “shifting left,” yaitu memindahkan aktivitas keamanan sedini mungkin dalam proses pengembangan. Melakukan scan keamanan docker sebelum image di-push ke registry adalah contoh nyata dari praktik ini. Untuk lebih memahami perbedaan fundamental teknologi ini, Anda bisa membaca artikel kami tentang Virtual Machine vs Container.
Trivy, sebuah proyek open-source dari Aqua Security, hadir sebagai solusi yang simpel, cepat, dan komprehensif untuk tantangan ini. Keunggulan utama Trivy adalah:
apt, yum, apk), tetapi juga pada dependensi level aplikasi (seperti npm, pip, maven).Menginstal Trivy sangatlah mudah di berbagai distribusi Linux. Berikut adalah langkah-langkah instalasi untuk beberapa sistem operasi populer.
Instalasi di Debian/Ubuntu (APT):
sudo apt-get install -y wget apt-transport-https
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update
sudo apt-get install -y trivy Instalasi di RHEL/CentOS (YUM/DNF):
sudo yum -y install wget
wget -qO - https://aquasecurity.github.io/trivy-repo/rpm/public.key | sudo gpg --import
echo -e "[trivy]\nname=Trivy repository\nbaseurl=https://aquasecurity.github.io/trivy-repo/rpm/releases/\$releasever/\$basearch/\nenabled=1\ngpgcheck=1\ngpgkey=https://aquasecurity.github.io/trivy-repo/rpm/public.key" | sudo tee -a /etc/yum.repos.d/trivy.repo
sudo yum -y update
sudo yum -y install trivy Instalasi via Script (Metode Universal):
Metode ini adalah cara tercepat jika Anda tidak ingin menambahkan repositori baru.
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin Setelah terinstal, Anda dapat langsung melakukan scan keamanan docker. Cukup jalankan perintah trivy image diikuti dengan nama dan tag image yang ingin dipindai.
Contoh: Memindai image python:3.9-slim
trivy image python:3.9-slim Output dari Trivy akan menampilkan tabel yang berisi informasi penting:
Library: Nama paket atau pustaka yang memiliki kerentanan.Vulnerability ID: Kode identifikasi unik untuk kerentanan tersebut (misalnya, CVE-2023-1234).Severity: Tingkat keparahan kerentanan (CRITICAL, HIGH, MEDIUM, LOW, UNKNOWN).Installed Version: Versi paket yang terinstal di dalam image.Fixed Version: Versi paket di mana kerentanan tersebut telah diperbaiki. Ini adalah informasi paling berharga untuk melakukan mitigasi.Untuk memfokuskan laporan hanya pada kerentanan yang paling kritis, Anda dapat menggunakan flag --severity.
trivy image --severity HIGH,CRITICAL python:3.9-slim Kekuatan sejati Trivy muncul ketika diintegrasikan ke dalam alur kerja Continuous Integration/Continuous Deployment (CI/CD). Dengan menjalankan pemindaian secara otomatis setiap kali ada perubahan kode atau saat image baru dibangun, Anda dapat mencegah image yang rentan masuk ke registry atau lingkungan produksi.
Trivy menyediakan flag --exit-code 1 yang akan membuat perintah gagal (keluar dengan kode status 1) jika ada kerentanan yang ditemukan. Ini sangat berguna untuk menghentikan pipeline CI/CD secara otomatis. Anda dapat menggabungkannya dengan flag --severity untuk hanya menghentikan pipeline jika ditemukan kerentanan dengan tingkat keparahan tertentu.
Berikut adalah contoh konseptual sederhana untuk file konfigurasi GitLab CI (.gitlab-ci.yml):
stages:
- build
- test
build_image:
stage: build
script:
- docker build -t myapp:$CI_COMMIT_SHA .
- docker push myregistry/myapp:$CI_COMMIT_SHA
scan_image:
stage: test
image: aquasec/trivy:latest
script:
- trivy image --exit-code 1 --severity CRITICAL,HIGH myregistry/myapp:$CI_COMMIT_SHA Dalam contoh di atas, job scan_image akan menarik image Trivy resmi, kemudian memindai image aplikasi yang baru saja dibangun. Jika Trivy menemukan kerentanan dengan tingkat keparahan CRITICAL atau HIGH, perintah akan gagal, yang pada gilirannya akan membuat seluruh pipeline gagal. Tim pengembang akan segera mendapatkan notifikasi dan dapat memperbaiki kerentanan sebelum melanjutkan proses deployment. Untuk panduan integrasi lebih lanjut, kunjungi dokumentasi resmi Trivy.
Mengadopsi Trivy untuk melakukan scan keamanan docker adalah langkah konkret menuju budaya DevSecOps yang matang. Dengan mengotomatiskan deteksi kerentanan, Anda tidak hanya meningkatkan postur keamanan aplikasi tetapi juga mempercepat siklus rilis dengan mengurangi intervensi manual. Trivy adalah alat yang wajib dimiliki oleh setiap tim yang serius dalam mengamankan aplikasi berbasis kontainer mereka dari ancaman siber.
Dorongan kuat dari Badan Kerja Sama Antar Parlemen (BKSAP) DPR RI untuk menciptakan kerangka kerja…
Kecerdasan Buatan (AI) telah mengubah banyak aspek teknologi, dan dampaknya paling terasa di arena siber.…
Dalam dunia siber yang penuh ancaman, pertanyaan mendasar bagi banyak organisasi adalah apa itu SIEM…
Ekosistem hosting kembali mendapat sorotan setelah muncul laporan mengenai celah keamanan pada cPanel & WHM…
Persaingan di dunia kecerdasan buatan (Artificial Intelligence) semakin memanas memasuki pertengahan tahun 2026. Setelah berbagai…
Dunia kerja dan akademik di tahun ini menuntut efisiensi yang luar biasa. Kita tidak lagi…
This website uses cookies.