---
title: "Cara Scan Kerentanan Website dengan OWASP ZAP"
description: "Cara memakai ZAP untuk memindai website sendiri: baseline scan lewat Docker, full scan di staging, dan cara membaca laporannya."
url: "https://nivelva.com/insight/cara-scan-kerentanan-website-owasp-zap"
category: "Keamanan/Cyber Security"
tags: ["owasp zap","scan kerentanan","keamanan website","dast","docker"]
author: "Theresia Candiawan"
published: "2026-11-07T05:17:00+07:00"
updated: "2026-11-07T05:17:00+07:00"
language: "id"
publisher: "Nivelva (https://nivelva.com)"
---

# Cara Scan Kerentanan Website dengan OWASP ZAP

> **Jawaban singkat:** ZAP adalah pemindai keamanan aplikasi web gratis dan open source. Mulailah dengan baseline scan yang pasif lewat Docker, jalankan full scan hanya di staging, lalu prioritaskan temuan berlevel High dan Medium.

Cara tercepat memindai kerentanan website sendiri dengan ZAP adalah menjalankan satu perintah Docker `zap-baseline.py` ke alamat situsmu, lalu membaca laporan HTML yang dihasilkan. Dalam beberapa menit kamu akan tahu header keamanan apa yang belum dipasang, cookie mana yang kurang aman, dan informasi apa yang bocor.

Kenapa ini penting? Sebagian besar website bisnis tidak pernah diuji sejak pertama kali tayang. Plugin bertambah, server diganti, konfigurasi diubah, dan celah kecil menumpuk tanpa ada yang memeriksa. ZAP (dulu dikenal sebagai OWASP ZAP, Zed Attack Proxy) memberi cara gratis untuk melihat situsmu dari sudut pandang penyerang, sebelum penyerang sungguhan melakukannya.

## Apa itu ZAP dan apa bedanya dengan scanner lain?

ZAP adalah alat DAST (Dynamic Application Security Testing): ia menguji aplikasi yang sedang berjalan dengan mengirim permintaan HTTP, bukan membaca kode sumbernya. ZAP bisa dipakai lewat aplikasi desktop, sebagai proxy saat kamu menjelajah situs, atau otomatis lewat Docker.

Kalau kamu sudah mengenal Nuclei, keduanya saling melengkapi. Nuclei kuat untuk mengecek CVE dan salah konfigurasi yang sudah dikenal lewat template. ZAP lebih fokus menjelajah aplikasi (spider) lalu mencari kelemahan umum seperti XSS, SQL injection, dan masalah header. Perbandingannya dibahas di [scan kerentanan dengan Nuclei](https://nivelva.com/insight/scan-kerentanan-website-nuclei).

## Sebelum mulai, apa saja syaratnya?

- **Izin.** Pindai hanya situs milikmu atau yang izinnya tertulis jelas. Memindai situs orang lain tanpa izin bisa berujung masalah hukum.
- **Docker** terpasang di komputer atau VPS yang akan menjalankan ZAP.
- **Staging** (salinan situs) untuk full scan. Jangan menjalankan serangan aktif ke situs produksi.
- **Backup** terbaru, jaga-jaga bila pengujian memicu masalah.
- Beri tahu penyedia hosting atau tim lain bila ada WAF, supaya lalu lintas pemindaian tidak dikira serangan.

## Langkah baseline scan (aman untuk produksi)

Baseline scan menjalankan spider selama sekitar 1 menit secara bawaan, lalu menunggu pemindaian pasif selesai. Menurut dokumentasi resmi ZAP, mode ini tidak melakukan serangan aktif sehingga biasanya selesai dalam beberapa menit.

1. Buat folder kerja, misalnya `mkdir zap && cd zap`.
2. Jalankan: `docker run -v $(pwd):/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable zap-baseline.py -t https://situsmu.com -r laporan.html`
3. Tunggu sampai selesai. Ringkasan PASS, WARN, dan FAIL tampil di terminal.
4. Buka `laporan.html` di browser untuk melihat detail setiap temuan.
5. Simpan laporan dengan tanggal di nama file, supaya bisa dibandingkan dengan pemindaian berikutnya.

Opsi yang berguna: `-J laporan.json` untuk laporan JSON yang bisa diolah otomatis, dan `-g gen.conf` untuk membuat file konfigurasi. Di file itu kamu bisa mengubah aturan tertentu menjadi IGNORE, WARN, atau FAIL sesuai kebijakanmu.

## Kapan perlu full scan?

Full scan menjalankan spider tanpa batas waktu (bisa dibatasi dengan `-m` dalam menit), opsional Ajax spider dengan `-j` untuk situs yang banyak JavaScript, lalu **serangan aktif**. Serangan aktif mengirim input berbahaya ke formulir dan parameter untuk menguji SQL injection, XSS, dan sejenisnya.

Perintahnya mirip:

```
docker run -v $(pwd):/zap/wrk/:rw -t ghcr.io/zaproxy/zaproxy:stable \
  zap-full-scan.py -t https://staging.situsmu.com -m 10 -r full.html
```

Karena benar-benar menyerang, full scan bisa mengisi formulir kontak dengan data sampah, membuat akun palsu, mengirim email, atau membebani server. Itulah sebabnya ia dijalankan di staging. Pastikan staging tidak tersambung ke layanan email atau pembayaran sungguhan.

Ringkasan dua mode:

| | Baseline scan | Full scan |
|:--|:--|:--|
| Skrip | `zap-baseline.py` | `zap-full-scan.py` |
| Spider | Bawaan sekitar 1 menit | Bawaan tanpa batas (`-m`) |
| Serangan aktif | Tidak | Ya |
| Lama proses | Beberapa menit | Bisa sangat lama |
| Aman untuk produksi | Umumnya ya | Tidak, pakai staging |
| Kode keluar | 0 sukses, 1 ada FAIL, 2 ada WARN | Sama |

Kode keluar itu memudahkan otomasi. Di pipeline CI, langkah deploy bisa dihentikan bila pemindaian mengembalikan kode 1.

## Bagaimana membaca laporan ZAP?

Setiap temuan (alert) punya tingkat risiko High, Medium, Low, atau Informational, dan tingkat keyakinan (confidence). Urutan prioritas yang masuk akal:

- **High dengan confidence Medium atau High:** periksa dan perbaiki dulu. Contohnya indikasi SQL injection atau XSS.
- **Medium:** misalnya header Content-Security-Policy tidak ada, atau cookie sesi tanpa atribut `Secure` dan `HttpOnly`.
- **Low dan Informational:** catat, perbaiki bertahap. Sebagian besar soal header dan kebocoran informasi versi.

Jangan langsung percaya semua temuan. Scanner otomatis bisa salah positif. Buka URL yang disebut, coba ulang permintaannya, dan pastikan memang bisa disalahgunakan sebelum menghabiskan waktu. Untuk menilai seberapa gawat sebuah celah, kerangka di [cara membaca skor CVSS](https://nivelva.com/insight/cara-membaca-skor-cvss) bisa dipakai sebagai acuan.

> **Situs di balik WAF:**
>
> Kalau situsmu di balik WAF atau layanan proteksi bot, hasil pemindaian bisa terpotong karena permintaan ZAP diblokir. Untuk pengujian, izinkan IP pemindai sementara dan aktifkan kembali aturan setelah selesai.

## Tips agar pemindaian benar-benar berguna

- **Jadwalkan rutin.** Baseline scan bulanan, atau setiap ada perubahan besar (plugin baru, tema baru, migrasi server).
- **Pindai halaman setelah login.** Banyak celah ada di area member atau admin. ZAP mendukung autentikasi lewat konteks dan Automation Framework, tapi siapkan akun uji khusus, bukan akun admin asli.
- **Bandingkan dari waktu ke waktu.** Temuan yang muncul lagi setelah diperbaiki biasanya tanda konfigurasi tertimpa saat update.
- **Perbaiki di sumbernya.** Header keamanan sebaiknya dipasang di web server atau aplikasi, bukan ditambal satu per satu.
- **Tambahkan lapisan perlindungan.** Pemindaian menemukan masalah, tapi tidak mencegah serangan. [WAF](https://nivelva.com/insight/apa-itu-waf) dan pembaruan rutin tetap dibutuhkan.

## Pertanyaan yang sering diajukan

### Apakah ZAP gratis untuk dipakai bisnis?

Ya. ZAP open source dengan lisensi Apache 2.0 dan boleh dipakai untuk kebutuhan komersial tanpa biaya lisensi.

### Apakah baseline scan bisa membuat situs down?

Kemungkinannya kecil karena tidak ada serangan aktif, tapi spider tetap mengirim banyak permintaan. Untuk server yang sangat kecil, jalankan di jam sepi.

### Bisakah ZAP menggantikan pentest profesional?

Tidak sepenuhnya. ZAP menemukan kelemahan umum secara otomatis, sedangkan pentester bisa menguji logika bisnis, alur pembayaran, dan kombinasi celah yang tidak terdeteksi scanner.

## Sumber

- <https://www.zaproxy.org/docs/docker/baseline-scan/>
- <https://www.zaproxy.org/docs/docker/full-scan/>
- <https://www.zaproxy.org/getting-started/>

---

Diterbitkan oleh Nivelva Insight (https://nivelva.com/insight/). Artikel ini: https://nivelva.com/insight/cara-scan-kerentanan-website-owasp-zap
Kontak Nivelva: WhatsApp https://wa.me/6285111245007, email hello@nivelva.com
