Scan Keamanan Docker: Panduan Cepat Pakai Trivy

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.

Pentingnya Keamanan Kontainer dan Peran Trivy dalam DevSecOps

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:

  • Mudah Digunakan: Cukup dengan satu perintah, Trivy dapat memindai berbagai target.
  • Cepat: Proses pemindaian pertama mungkin memakan waktu untuk mengunduh database kerentanan, tetapi pemindaian berikutnya akan berjalan sangat cepat.
  • Komprehensif: Trivy tidak hanya memindai kerentanan pada paket sistem operasi (seperti apt, yum, apk), tetapi juga pada dependensi level aplikasi (seperti npm, pip, maven).
  • Fokus pada Developer: Outputnya jelas dan mudah ditindaklanjuti, sering kali menyertakan versi paket yang sudah diperbaiki.

Instalasi dan Praktik Scan Keamanan Docker dengan Trivy

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

Integrasi Trivy dalam Alur Kerja CI/CD

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.

Share your love
tukang nulis
tukang nulis

Seorang kepala rumah tangga biasa yang ingin sharing tentang pengalaman dan pengetahuannya. Gemar dengan dunia teknologi, alam, pertanian, dan perikanan. Hobby ngoprek, travelling dan bersepeda.

Leave a Reply

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