Konfigurasi GitLab CI Security Dashboard: Panduan Setup

Konfigurasi GitLab CI Security Dashboard memerlukan integrasi job pemindaian keamanan seperti SAST, DAST, Container Scanning, dan Dependency Scanning ke dalam file konfigurasi .gitlab-ci.yml. Dashboard ini berfungsi sebagai pusat kontrol untuk memonitor, mengelola, dan melacak status kerentanan (vulnerabilities) yang ditemukan pada setiap pipeline CI/CD sebelum kode mencapai lingkungan produksi.

Untuk mengaktifkan Security Dashboard secara penuh, repositori proyek Anda minimal harus menggunakan GitLab Ultimate atau GitLab Premium dengan fitur security testing yang diaktifkan. Hasil pemindaian dari setiap tool akan menghasilkan artefak laporan berbasis JSON yang otomatis dibaca oleh GitLab untuk ditampilkan pada tab Security & Compliance di antarmuka web.

Contoh Implementasi File .gitlab-ci.yml untuk Security Dashboard

Berikut adalah konfigurasi standar industri yang mencakup beberapa pemindai keamanan utama dalam pipeline GitLab CI/CD:

stages:
  - test
  - security

include:
  - template: Security/SAST.gitlab-ci.yml
  - template: Security/Dependency-Scanning.gitlab-ci.yml
  - template: Security/Container-Scanning.gitlab-ci.yml

sast:
  stage: security

dependency_scanning:
  stage: security

container_scanning:
  stage: security
  variables:
    CS_IMAGE: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA

Tabel Komponen Security Scanner GitLab CI

Nama Scanner Template GitLab CI Fokus Pemindaian Format Output Laporan
SAST Security/SAST.gitlab-ci.yml Analisis kode sumber statis untuk mendeteksi bugs & celah keamanan gl-sast-report.json
Dependency Scanning Security/Dependency-Scanning.gitlab-ci.yml Kerentanan pada pustaka/library pihak ketiga (third-party dependencies) gl-dependency-scanning-report.json
Container Scanning Security/Container-Scanning.gitlab-ci.yml Kerentanan sistem operasi dan paket pada Docker image gl-container-scanning-report.json
DAST Security/DAST.gitlab-ci.yml Pengujian aplikasi web yang sedang berjalan (dynamic testing) gl-dast-report.json

Langkah-Langkah Verifikasi dan Penggunaan Dashboard

  1. Commit dan Push Konfigurasi: Simpan file .gitlab-ci.yml yang telah ditambahkan template security, lalu lakukan push ke branch utama atau merge request Anda.
  2. Jalankan Pipeline: Pastikan pipeline CI/CD berjalan sukses dan seluruh job security menyelesaikan pemindaian tanpa error sintaks.
  3. Akses Menu Keamanan: Masuk ke proyek GitLab Anda, pilih menu Secure di sidebar kiri, lalu klik Security Dashboard.
  4. Tindakan Mitigasi: Pada dashboard, Anda dapat melihat daftar kerentanan berdasarkan tingkat keparahan (Critical, High, Medium, Low). Klik pada salah satu temuan untuk melihat detail celah, lokasi baris kode, serta opsi untuk melakukan Dismiss atau membuat Create Issue untuk perbaikan langsung oleh tim pengembang.

Troubleshooting Umum GitLab Security Dashboard

Jika data kerentanan tidak muncul di dashboard, periksa beberapa hal berikut:

  • Artefak Tidak Terunggah: Pastikan job pemindaian berhasil menghasilkan file laporan JSON dan artefak tersebut diunggah dengan benar oleh runner.
  • Izin Lisensi: Verifikasi bahwa instance GitLab atau namespace proyek Anda memiliki lisensi aktif yang mendukung fitur Security Dashboard (Ultimate/Enterprise).
  • Format JSON Tidak Valid: Jika Anda menggunakan pemindai kustom (custom scanner), pastikan struktur JSON laporan sesuai dengan skema laporan keamanan resmi yang didukung oleh GitLab.