Menyiapkan pemindaian kustom menggunakan Web Security Scanner

Menjadwalkan dan menjalankan pemindaian khusus pada aplikasi yang di-deploy menggunakan Web Security Scanner di Konsol Google Cloud. Web Security Scanner mendukung pemindaian URL dan IP publik yang tidak berada di balik firewall.

Sebelum memulai

Untuk menyiapkan pemindaian khusus menggunakan Web Security Scanner:

  • Anda harus memiliki aplikasi yang di-deploy di URL atau IP publik.
  • Anda harus mengaktifkan Security Command Center.

Sebelum memindai, lakukan audit dengan cermat pada aplikasi Anda untuk menemukan fitur yang dapat memengaruhi data, pengguna, atau sistem di luar cakupan pemindaian yang diinginkan.

Karena Web Security Scanner mengisi kolom, menekan tombol, mengklik link, dan interaksi lainnya, Anda harus menggunakannya dengan hati-hati. Web Security Scanner dapat mengaktifkan fitur yang mengubah status data atau sistem Anda, dengan hasil yang tidak diinginkan. Contoh:

  • Dalam aplikasi blog yang mengizinkan komentar publik, Web Security Scanner mungkin memposting string pengujian sebagai komentar pada semua artikel blog Anda.
  • Di halaman pendaftaran email, Web Security Scanner mungkin membuat email pengujian dalam jumlah besar.

Untuk tips tentang cara meminimalkan risiko, lihat praktik terbaik untuk mencegah konsekuensi yang tidak diinginkan.

Aktifkan Web Security Scanner

Aktifkan Web Security Scanner di Security Command Center untuk membuat dan menjalankan pemindaian khusus.

Jika Security Command Center aktif, Anda dapat mengaktifkan Web Security Scanner di Konsol Google Cloud pada halaman Settings Security Command Center.

Langkah 1: Men-deploy aplikasi pengujian

Agar dapat menyelesaikan penyiapan Web Security Scanner untuk pemindaian kustom, Anda memerlukan URL Compute Engine, Google Kubernetes Engine (GKE), atau aplikasi App Engine yang sudah di-deploy. Jika Anda tidak memiliki aplikasi yang di-deploy, atau jika Anda ingin mencoba Web Security Scanner dengan aplikasi pengujian, deploy aplikasi App Engine pengujian. Gunakan bahasa pilihan Anda:

Langkah 2: Tetapkan peran IAM

Untuk menjalankan pemindaian Web Security Scanner, Anda harus memiliki salah satu peran Identity and Access Management (IAM) berikut untuk project yang ingin dipindai:

  • Editor
  • Pemilik

Untuk menambahkan salah satu peran ini:

  1. Buka halaman IAM & Admin di Konsol Google Cloud.
    Buka halaman IAM & Admin
  2. Klik menu drop-down Project selector.
  3. Pada dialog Select from yang muncul, pilih project yang ingin Anda pindai menggunakan Web Security Scanner.
  4. Pada halaman IAM, di samping nama pengguna Anda, klik Edit.
  5. Di panel Edit permissions yang muncul, klik Add another role, lalu pilih salah satu peran berikut:
    • Project > Pemilik
    • Project > Editor
  6. Setelah selesai menambahkan peran, klik Simpan.

Pelajari peran Web Security Scanner lebih lanjut.

Langkah 3: Jalankan pemindaian

Saat Anda menyiapkan pemindaian, pemindaian akan dimasukkan ke dalam antrean untuk dijalankan nanti. Bergantung pada beban saat ini, mungkin perlu waktu beberapa jam sebelum pemindaian dilakukan. Untuk membuat, menyimpan, dan menjalankan pemindaian:

  1. Buka halaman Web Security Scanner di Konsol Google Cloud.
    Buka halaman Web Security Scanner
  2. Pilih project berisi aplikasi yang di-deploy, yang ingin dipindai.
  3. Untuk menyiapkan pemindaian baru, klik Pemindaian baru:
  4. Di halaman Buat pemindaian baru yang dimuat, tetapkan nilai berikut:

    1. Di bagian URL Awal, masukkan URL aplikasi yang ingin dipindai.
    2. Pada Jadwal, pilih Mingguan.
    3. Di bagian Next run on, pilih tanggal.

    Kotak Ekspor ke Security Command Center akan otomatis dicentang. Jika Anda telah mengaktifkan Web Security Scanner sebagai sumber keamanan Security Command Center, hasil pemindaian dapat ditampilkan di Konsol Google Cloud.

    Untuk pemindaian pertama ini, gunakan pemindaian default tanpa mengubah nilai lainnya di halaman Buat pemindaian baru. Untuk informasi selengkapnya tentang setelan pemindaian, lihat Memindai aplikasi.

  5. Untuk membuat pemindaian, klik Simpan.

  6. Di halaman Web Security Scanner, klik nama pemindaian untuk memuat halaman ringkasannya, lalu klik Jalankan pemindaian.

    Pemindaian akan dimasukkan ke dalam antrean, lalu pemindaian akan dijalankan pada waktu mendatang. Mungkin perlu waktu beberapa jam sebelum pemindaian berjalan.

  7. Halaman ringkasan pemindaian akan menampilkan bagian hasil saat pemindaian selesai. Gambar berikut menunjukkan contoh hasil pemindaian saat tidak ada kerentanan yang terdeteksi:

    Jika Anda telah mengaktifkan Web Security Scanner sebagai sumber keamanan Web Security Scanner, hasil pemindaian juga akan ditampilkan di Konsol Google Cloud.

    Untuk menampilkan detail tentang temuan tertentu, klik nama temuan di hasil pemindaian.

Sekarang Anda telah menyelesaikan pemindaian Web Security Scanner dasar. Jika Anda memindai aplikasi Anda sendiri, pelajari cara menyesuaikan pemindaian di bagian memindai aplikasi pada halaman ini.

Jika Anda men-deploy aplikasi pengujian untuk menjalankan pemindaian, selesaikan langkah pembersihan berikut di halaman ini agar tidak menimbulkan biaya App Engine untuk aplikasi tersebut.

Langkah 4: Membersihkan

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Memindai aplikasi

Siapkan pemindaian kustom untuk aplikasi Anda menggunakan akun pengujian.

Langkah 1: Membuat akun pengujian

Saat Anda memindai aplikasi, sebaiknya gunakan akun pengujian yang tidak memiliki akses ke data sensitif atau operasi berbahaya. Buat akun pengujian yang dapat login ke aplikasi Anda. Catat kredensial login untuk memberikan autentikasi saat membuat pemindaian. Kredensial ini memungkinkan Anda menggunakan akun pengujian untuk memindai data.

Langkah 2: Membuat pemindaian

  1. Buka halaman Web Security Scanner di Konsol Google Cloud.
    Buka halaman Web Security Scanner
  2. Klik Select, lalu pilih project yang telah di-deploy aplikasi App Engine, Compute Engine, atau GKE.
  3. Untuk menampilkan formulir pemindaian baru, klik Buat pemindaian atau Pemindaian baru.
  4. Untuk menambahkan nilai ke formulir pemindaian baru, gunakan tabel berikut sebagai panduan:
    Kolom Deskripsi
    URL Awal

    Situs sederhana biasanya hanya memerlukan satu URL awal, seperti beranda, halaman utama, atau halaman landing untuk situs tersebut, yang menjadi tempat Web Security Scanner dapat menemukan semua halaman situs lainnya. Namun, Web Security Scanner mungkin tidak menemukan semua halaman jika situs memiliki:

    • Banyak halaman
    • Kepulauan dari halaman yang tidak terhubung
    • Navigasi yang memerlukan JavaScript kompleks seperti menu multilevel yang dikendalikan mouse

    Dalam kasus tersebut, tentukan lebih banyak URL awal untuk meningkatkan cakupan pemindaian.

    URL yang dikecualikan Untuk mengurangi kompleksitas, pengecualian ditetapkan menggunakan bahasa proto yang disederhanakan dengan menggunakan satu atau beberapa karakter pengganti *, sehingga tidak memerlukan ekspresi reguler yang valid. Untuk mengetahui detail dan contoh pola yang valid, lihat Mengecualikan URL nanti di halaman ini.
    Autentikasi > Akun Google

    Anda dapat membuat akun pengujian di Gmail, lalu menggunakan akun tersebut untuk memindai produk. Jika Anda adalah pelanggan Google Workspace, Anda dapat membuat akun pengujian dalam domain, misalnya, test-account@yourdomain.com. Di Web Security Scanner, akun ini berfungsi seperti akun Gmail. Autentikasi 2 langkah tidak didukung.

    Google menerapkan kebijakan nama asli pada akun Google. Jika nama pada akun pengujian tidak terlihat asli, akun mungkin diblokir.

    Authentication > Identity-Aware Proxy versi alfa

    Untuk melindungi resource dengan Identity-Aware Proxy, lihat Panduan IAP.

    Untuk menggunakan Web Security Scanner dengan resource yang dilindungi IAP, berikan akses ke akun layanan Web Security Scanner terlebih dahulu:

    1. Buka halaman IAP di Konsol Google Cloud.
    2. Pilih project yang ingin Anda gunakan dengan Web Security Scanner.
    3. Pilih resource aplikasi yang ingin Anda pindai, lalu klik Add Principal pada Info Panel.
    4. Dalam kotak New principals di panel Add principals, masukkan akun layanan Web Security Scanner dalam bentuk

      service-project-number@gcp-sa-websecurityscanner.iam.gserviceaccount.com.

    5. Pada menu drop-down Select a role, pilih Cloud IAP > IAP Secured Web App User.
    6. Setelah selesai menambahkan peran, klik Simpan.

    Selanjutnya, tambahkan client ID OAuth ke pemindaian. Web Security Scanner hanya dapat memindai aplikasi yang dilindungi oleh satu Client ID OAuth. Untuk menambahkan client ID OAuth:

    1. Buka halaman IAP di Konsol Google Cloud.
    2. Pilih project yang ingin Anda gunakan dengan Web Security Scanner.
    3. Di Menu luapan, pilih Edit Klien OAuth.
    4. Pada jendela Client ID untuk aplikasi web yang muncul, salin Client ID.
    5. Buka halaman Web Security Scanner di Konsol Google Cloud.
    6. Di bagian Authentication, pilih Identity-Aware Proxy alpha.
    7. Di kotak OAuth2 Client ID, tempel client ID OAuth yang Anda salin, lalu klik Save.
    Autentikasi > Akun non-Google

    Pilih opsi ini jika Anda telah membuat sistem autentikasi sendiri dan tidak menggunakan layanan Akun Google. Tentukan URL formulir login, nama pengguna, dan sandi. Kredensial ini digunakan untuk login ke aplikasi Anda dan memindainya.

    Web Security Scanner mencoba heuristik untuk login ke aplikasi Anda, lalu memindainya. Secara khusus, metode ini mencari formulir login dua kolom yang menyertakan kolom username dan kolom password. Tindakan login harus menghasilkan cookie autentikasi agar pemindai dapat melanjutkan pemindaian.

    Masalah umum yang dapat menyebabkan login kustom gagal mencakup:

    • Menggunakan kolom formulir HTML non-standar, misalnya, tidak menggunakan jenis password.
    • Menggunakan formulir login yang rumit, misalnya, formulir yang memiliki lebih dari satu kolom username dan password.
    • Tidak menyimpan cookie autentikasi pada saat login berhasil.
    • Dalam beberapa situasi, pemindai ditolak oleh tindakan tanggapan yang dimaksudkan untuk melindungi dari bot, DDOS, dan serangan lainnya.

    Sebaiknya gunakan integrasi Identity-Aware Proxy untuk mendapatkan pengalaman yang paling konsisten dengan pemindaian aplikasi yang terautentikasi.

    Jadwal Anda dapat menyetel pemindaian agar berjalan setiap hari, setiap minggu, setiap dua minggu, atau setiap empat minggu. Sebaiknya buat pemindaian terjadwal untuk memastikan bahwa versi aplikasi Anda di masa mendatang diuji. Selain itu, karena kami sesekali merilis pemindai baru yang menemukan jenis bug baru, menjalankan pemindaian terjadwal menawarkan cakupan yang lebih luas tanpa upaya manual.
    Menjalankan pemindaian dari kumpulan IP sumber yang telah ditentukan
    Pratinjau
    Pilih opsi ini untuk membatasi traffic pemindaian ke sekumpulan alamat IP yang telah ditentukan. Hal ini memungkinkan Anda mengaktifkan pemindai untuk mengakses aplikasi di balik firewall, tetapi dapat membatasi cakupan pemindaian. Untuk mengubah aturan firewall guna mengizinkan traffic Web Security Scanner, lihat Mengonfigurasi firewall nanti di halaman ini.
    Opsi ekspor Pilih opsi ini untuk otomatis mengekspor konfigurasi pemindaian dan hasil pemindaian ke Security Command Center.
    Abaikan error status HTTP Opsi ini mengontrol apakah jumlah error status HTTP yang tinggi—misalnya, 400 Bad Request—selama pemindaian akan menyebabkan pemindaian dilaporkan sebagai gagal. Jika opsi ini dipilih, error status akan diabaikan. Jika opsi ini tidak dipilih, dan persentase error status melebihi batas yang telah ditentukan, pemindaian akan dilaporkan sebagai kegagalan.
  5. Setelah selesai menambahkan nilai, klik Save. Anda kini dapat menjalankan pemindaian baru.

Secara default, Web Security Scanner menggunakan alamat IP yang ditetapkan secara acak selama setiap pengoperasian. Agar alamat IP Web Security Scanner dapat diprediksi, selesaikan langkah-langkah untuk mengaktifkan pemindaian dari IP statis pada halaman ini nanti.

Langkah 3: Menjalankan pemindaian

Untuk menjalankan pemindaian:

  1. Login ke akun pengujian yang Anda gunakan untuk membuat pemindaian.
  2. Buka halaman Web Security Scanner di Konsol Google Cloud.
    Buka halaman Web Security Scanner
  3. Klik Select, lalu pilih project tempat Anda membuat pemindaian.
  4. Di bagian Scan configs, klik nama pemindaian yang ingin dijalankan.
  5. Di halaman detail pemindaian, klik Run.

Pemindaian ditempatkan dalam antrean, dan mungkin ada penundaan sebelum dijalankan. Diperlukan waktu beberapa menit atau beberapa jam untuk menjalankannya, bergantung pada beban sistem dan fitur seperti:

  • Kompleksitas situs
  • Jumlah elemen yang dapat ditindaklanjuti per halaman
  • Jumlah link
  • Jumlah JavaScript di situs, termasuk navigasi

Anda dapat menyiapkan dan menjalankan hingga 10 pemindaian berbeda sebelum perlu menghapus atau membersihkan hasil yang disimpan sebelumnya.

Melihat hasil pemindaian khusus

Status dan hasil pemindaian kustom ditampilkan di halaman detail pemindaian di Konsol Google Cloud. Untuk melihat hasil pemindaian:

  1. Login ke akun pengujian yang Anda gunakan untuk membuat pemindaian.
  2. Buka halaman Web Security Scanner di Konsol Google Cloud.
    Buka halaman Web Security Scanner
  3. Klik Select, lalu pilih project yang berisi pemindaian yang ingin Anda tinjau.
  4. Di bagian Scan configs, klik nama pemindaian yang ingin ditinjau.

Halaman detail pemindaian akan dimuat dan menampilkan hasil dari pemindaian terbaru. Jika pemindaian sedang berlangsung, tab Results akan menampilkan persentase penyelesaian saat ini. Untuk menampilkan hasil dari pemindaian sebelumnya, pilih tanggal dan waktu pemindaian dari menu drop-down.

Detail untuk pemindaian kustom yang telah selesai meliputi:

  • Tab Results menampilkan daftar kerentanan yang ditemukan oleh pemindaian, jika ada.
  • Tab URL yang di-crawl menampilkan daftar URL yang diperiksa oleh pemindaian.
  • Tab Detail mencakup:
    • URL Awal
    • Authentication
    • Agen pengguna
    • Kecepatan pemindaian maksimum sebagai kueri per detik (QPS)

Anda dapat menemukan informasi selengkapnya tentang pemindaian di halaman log project.

Mengedit pemindaian khusus

Untuk mengedit pemindaian khusus:

  1. Login ke akun pengujian yang Anda gunakan untuk membuat pemindaian.
  2. Buka halaman Web Security Scanner di Konsol Google Cloud.
    Buka halaman Web Security Scanner
  3. Klik Select, lalu pilih project yang berisi pemindaian yang ingin Anda edit.
  4. Di bagian Scan configs, klik nama pemindaian yang ingin diedit.
  5. Di halaman detail pemindaian yang muncul, klik Edit.
  6. Di halaman Editing [scan name] yang muncul, buat perubahan yang diinginkan, lalu klik Save.

Pemindaian kustom yang diedit akan berjalan saat dijadwalkan berikutnya, atau Anda dapat menjalankannya secara manual untuk mendapatkan hasil yang diperbarui.

Menghapus pemindaian kustom

Untuk menghapus satu atau beberapa pemindaian kustom:

  1. Login ke akun pengujian yang Anda gunakan untuk membuat pemindaian.
  2. Buka halaman Web Security Scanner di Konsol Google Cloud.
    Buka halaman Web Security Scanner
  3. Klik Select, lalu pilih project yang berisi pemindaian yang ingin Anda edit.
  4. Di bagian Scan configs, centang kotak di samping satu atau beberapa pemindaian yang ingin Anda hapus.
  5. Klik Hapus, lalu klik Oke.

Semua pemindaian yang Anda pilih akan dihapus.

Menyiapkan pemindaian dari IP statis

Bagian ini menjelaskan cara mengaktifkan pemindaian kustom Web Security Scanner dari alamat IP statis. Saat Anda mengaktifkan fitur ini, Web Security Scanner akan menggunakan alamat IP yang dapat diprediksi untuk memindai aplikasi Compute Engine publik dan Google Kubernetes Engine Anda. Fitur ini masih dalam Pratinjau, dan alamat IP Web Security Scanner mungkin berubah dalam rilis mendatang.

Sebelum memulai

Untuk menggunakan pemindaian kustom Web Security Scanner dari fitur IP statis, Anda memerlukan:

  • Aplikasi Compute Engine atau GKE publik. Fitur ini saat ini tidak mendukung aplikasi App Engine.
  • Pemindaian yang dibuat tanpa autentikasi, atau dengan autentikasi Akun Google. Saat ini, fitur ini tidak mendukung pemindaian yang menggunakan autentikasi akun non-Google.

Langkah 1: Mengonfigurasi firewall

  1. Buka halaman Firewall rules di Konsol Google Cloud.
    Buka halaman Aturan firewall
  2. Klik Select, lalu pilih project Anda.
  3. Di halaman Firewall rules yang muncul, klik Create Firewall Rule.
  4. Di halaman Create a firewall rule, tetapkan nilai berikut:
    1. Name: masukkan web-security-scanner atau nama yang mirip.
    2. Priority: pilih prioritas lebih tinggi (nilai angka lebih rendah) daripada semua aturan yang menolak traffic keluar ke aplikasi Anda.
    3. Rentang IP sumber: masukkan 34.66.18.0/26 dan 34.66.114.64/26.
    4. Protocols and ports: pilih Allow all atau tentukan protokol dan port untuk aplikasi Anda. Biasanya, Anda dapat mencentang kotak tcp, lalu memasukkan 80 dan 443 untuk port.
  5. Setelah selesai menetapkan nilai, klik Buat.

Langkah 2: Mengonfigurasi pemindaian

Setelah mengonfigurasi firewall untuk mengizinkan Web Security Scanner alamat IP yang dapat diprediksi, konfigurasikan pemindaian untuk menggunakan IP yang telah ditentukan:

  1. Buka halaman Web Security Scanner di Konsol Google Cloud.
    Buka halaman Web Security Scanner
  2. Klik Select, lalu pilih project Anda.
  3. Buat pemindaian baru atau edit pemindaian yang ada.
  4. Pilih kotak centang Run scanned from a pre-defined set of source IPs.
  5. Simpan pemindaian.

Saat berikutnya pemindaian berjalan, aplikasi akan memindai Compute Engine publik dan aplikasi GKE yang berada di belakang firewall.

Mengecualikan URL

Anda dapat menentukan hingga 100 pola URL yang dikecualikan untuk menghindari pengujian bagian situs selama pemindaian kustom. Web Security Scanner tidak meminta resource yang cocok dengan pengecualian apa pun. Bagian berikut menjelaskan pencocokan pola yang digunakan Web Security Scanner.

Pencocokan pola URL

Pencocokan URL yang dikecualikan didasarkan pada sekumpulan URL yang ditentukan oleh pola pencocokan. Pola pencocokan adalah URL dengan lima segmen:

  • scheme: misalnya, http atau *
  • host: misalnya, www.google.com atau *.google.com atau *
  • path: misalnya, /*, /foo*, atau /foo/bar. *
  • query: misalnya, ?*, ?*foo=bar*
  • fragment: misalnya, #*, #access

Berikut ini adalah sintaks dasarnya:

<exclude-pattern> := <scheme>://<host><path><query><fragment>
<scheme> := '*' | 'http' | 'https'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars except '?' or '#'>
<query> := '?' <any chars except '#'>
<fragment> := '#' <any chars>

* di setiap bagian memiliki fungsi berikut:

  • scheme: * cocok dengan HTTP atau HTTPS.
  • host:
    • * cocok dengan host apa pun
    • *.hostname cocok dengan host yang ditentukan dan salah satu subdomainnya.
  • path: * cocok dengan 0 karakter atau lebih.

Semua segmen tidak diperlukan dalam pola yang dikecualikan.

  • Jika segmen scheme tidak ditentukan, nilai defaultnya adalah *://.
  • Segmen host harus selalu ditentukan.
  • Jika segmen path tidak ditentukan, nilai defaultnya adalah:
    • /*, jika segmen query dan fragment tidak ditentukan. Nilai ini cocok dengan path apa pun atau tanpa path.
    • /, atau path kosong, jika segmen query atau fragment ditentukan.
  • Jika segmen query tidak ditentukan, nilai defaultnya adalah:
    • ?*, jika segmen fragment tidak ditentukan. Nilai ini cocok dengan query apa pun atau tanpa query.
    • ?, atau query kosong, jika fragment ditentukan.
  • Jika segmen fragment tidak ditentukan, nilai defaultnya adalah #*, yang cocok dengan fragment apa pun atau tanpa fragment.

Kecocokan Pola yang Valid

Tabel berikut memberikan contoh pola yang valid:

Pola Perilaku Contoh URL yang cocok
http://*/* Mencocokkan URL apa pun yang menggunakan skema HTTP.

http://www.google.com/

http://example.org/foo/bar.html

http://*/foo* Mencocokkan URL yang menggunakan skema HTTP di host mana pun, jika jalur diawali dengan /foo.

http://example.com/foo/bar.html

http://www.google.com/foo

https://*.google.com/foo*bar Mencocokkan URL yang menggunakan skema HTTPS dan berada di host google.com — seperti www.google.com, docs.google.com, atau google.com — jika jalur diawali dengan /foo dan diakhiri dengan bar.

http://www.google.com/foo/baz/bar

http://docs.google.com/foobar

http://example.org/foo/bar.html Cocok dengan URL yang ditentukan. http://example.org/foo/bar.html
http://127.0.0.1/* Mencocokkan URL apa pun yang menggunakan skema HTTP dan berada di host 127.0.0.1.

http://127.0.0.1/

http://127.0.0.1/foo/bar.html

*://mail.google.com/* Cocok dengan URL yang diawali dengan http://mail.google.com atau https://mail.google.com.

http://mail.google.com/foo/baz/bar

https://mail.google.com/foobar

*://*/foo*?*bar=baz* Mencocokkan URL apa pun yang jalurnya diawali dengan /foo dan memiliki parameter kueri bar=baz. https://www.google.com/foo/example?bar=baz
google.com/app#*open* Mencocokkan URL apa pun dengan host google.com yang jalurnya dimulai dengan /app dan memiliki fragmen open. https://www.google.com/app/example#open

Kecocokan pola yang tidak valid

Tabel berikut memberikan contoh pola yang tidak valid:

Pola Alasan
http://www.google.com URL tidak menyertakan jalur.
http://*foo/bar * di host harus diikuti dengan . atau /.
http://foo.*.bar/baz Jika * ada di host, karakter pertama harus ada.
http:/bar URL merupakan pemisah skema tidak diformat dengan benar. "/" harus "//".
foo://* Skema URL tidak valid.

Langkah selanjutnya