Petunjuk dan persyaratan penyiapan lab
Lindungi akun dan progres Anda. Selalu gunakan jendela browser pribadi dan kredensial lab untuk menjalankan lab ini.

Mengidentifikasi Kerentanan Aplikasi dengan Security Command Center

Lab 1 jam 15 menit universal_currency_alt 1 Kredit show_chart Pengantar
info Lab ini mungkin menggabungkan alat AI untuk mendukung pembelajaran Anda.
Konten ini belum dioptimalkan untuk perangkat seluler.
Untuk pengalaman terbaik, kunjungi kami dengan komputer desktop menggunakan link yang dikirim melalui email.

GSP1262

Lab Mandiri Google Cloud

Ringkasan

Web Security Scanner (WSS) adalah salah satu layanan bawaan Security Command Center yang dapat digunakan untuk mengidentifikasi kerentanan keamanan di aplikasi web App Engine, Google Kubernetes Engine (GKE), dan Compute Engine.

Layanan ini meng-crawl aplikasi Anda, mengikuti semua link dalam cakupan URL awal, dan mencoba menggunakan input pengguna dan pengendali peristiwa sebanyak mungkin. Web Security Scanner memindai dan mendeteksi empat kerentanan umum secara otomatis, termasuk pembuatan skrip lintas situs (XSS), injeksi Flash, konten campuran (HTTP dalam HTTPS), dan library lama/tidak aman.

Web Security Scanner memungkinkan identifikasi awal kerentanan dan memberikan rasio positif palsu yang sangat rendah. Anda dapat dengan mudah menyiapkan, menjalankan, menjadwalkan, dan mengelola pemindaian keamanan.

Di lab ini, Anda akan menggunakan Web Security Scanner untuk memindai aplikasi Python Flask guna mencari kerentanan.

Tujuan

Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Meluncurkan aplikasi Python Flask yang rentan pada instance Compute Engine.
  • Menggunakan Web Security Scanner untuk memindai aplikasi dan menemukan kerentanan.
  • Memperbaiki kerentanan aplikasi.
  • Pindai aplikasi lagi dan verifikasi bahwa kerentanan sudah tidak ada.

Penyiapan dan persyaratan

Untuk setiap lab, Anda akan memperoleh project Google Cloud baru serta serangkaian resource selama jangka waktu tertentu, tanpa biaya.

  1. Login ke Qwiklabs menggunakan jendela samaran.

  2. Perhatikan waktu akses lab (misalnya, 1:15:00), dan pastikan Anda dapat menyelesaikannya dalam waktu tersebut.
    Tidak ada fitur jeda. Bila perlu, Anda dapat memulai ulang lab, tetapi Anda harus memulai dari awal.

  3. Jika sudah siap, klik Start lab.

  4. Catat kredensial lab (Nama pengguna dan Sandi) Anda. Anda akan menggunakannya untuk login ke Google Cloud Console.

  5. Klik Open Google Console.

  6. Klik Use another account, lalu salin/tempel kredensial lab ini ke perintah yang muncul.
    Jika menggunakan kredensial lain, Anda akan menerima pesan error atau dikenai biaya.

  7. Setujui ketentuan dan lewati halaman resource pemulihan.

Skenario

Logo Cymbal Bank

Cymbal Bank adalah bank retail Amerika yang memiliki lebih dari 2.000 cabang di 50 negara bagian. Bank ini menawarkan layanan debit dan kredit lengkap yang dibangun di atas platform pembayaran yang andal. Cymbal Bank adalah lembaga jasa keuangan lama yang bertransformasi secara digital.

Cymbal Bank didirikan pada tahun 1920 dengan nama Troxler. Cymbal Group mengakuisisi Troxler pada tahun 1975 setelah perusahaan tersebut berinvestasi besar-besaran pada ATM milik Cymbal Group. Seiring perkembangannya menjadi pemimpin di taraf nasional, mereka menjalankan strategi modernisasi pengalaman nasabah, baik secara langsung di cabang-cabangnya maupun secara digital melalui aplikasi yang diluncurkan pada tahun 2014. Cymbal Bank memiliki 42.000 orang karyawan di seluruh negeri dan mencatatkan pendapatan sebesar $24 miliar pada tahun 2019.

Cymbal Bank tertarik untuk mengembangkan aplikasi perbankan baru bagi klien korporat mereka menggunakan teknologi Google Cloud. Keamanan aplikasi sangat penting, dan CTO ingin melihat bagaimana Google Cloud dapat mengidentifikasi dan memitigasi kerentanan keamanan aplikasi. Sebagai Cloud Security Engineer, Anda ditugaskan untuk mendemonstrasikan fitur pemindaian kerentanan aplikasi canggih Security Command Center.

Tugas 1. Meluncurkan virtual machine dan membuat aturan firewall untuk WSS

Dalam tugas ini, Anda akan menyiapkan infrastruktur untuk mendemonstrasikan kerentanan aplikasi kepada CTO Cymbal Bank. Lebih tepatnya, Anda akan men-deploy virtual machine dan membuka aturan firewall agar Web Security Scanner dapat mengakses aplikasi rentan yang ingin Anda deploy.

  1. Di kolom judul Konsol Google Cloud, klik Activate Cloud Shell (Ikon Activate Cloud Shell). Jika diminta, klik Continue.

  2. Buat alamat IP statis yang dapat digunakan untuk memindai aplikasi web yang rentan dengan menjalankan perintah berikut:

gcloud compute addresses create xss-test-ip-address --region={{{project_0.default_region|lab region}}}
  1. Jalankan perintah berikut untuk menampilkan alamat IP statis yang baru saja Anda buat:
gcloud compute addresses describe xss-test-ip-address \ --region={{{project_0.default_region|lab region}}} --format="value(address)"
  1. Salin alamat IP (satu baris output) dan simpan di notepad.

  2. Jalankan perintah berikut untuk membuat instance VM guna menjalankan aplikasi yang rentan:

gcloud compute instances create xss-test-vm-instance \ --address=xss-test-ip-address --no-service-account \ --no-scopes --machine-type=e2-micro --zone={{{project_0.default_zone|lab zone}}} \ --metadata=startup-script='apt-get update; apt-get install -y python3-flask'

Skrip startup menginstal python-flask, Framework Aplikasi Web, yang digunakan untuk menjalankan aplikasi Python sederhana yang mendemonstrasikan kerentanan pembuatan skrip lintas situs (XSS), yang merupakan kerentanan keamanan aplikasi web umum.

  1. Jalankan perintah berikut untuk membuka aturan firewall agar Web Security Scanner dapat mengakses aplikasi yang rentan. Perhatikan rentang sumber tempat Web Security Scanner memindai aplikasi.
gcloud compute firewall-rules create enable-wss-scan \ --direction=INGRESS --priority=1000 \ --network=default --action=ALLOW \ --rules=tcp:8080 --source-ranges=0.0.0.0/0

Klik Periksa progres saya untuk memverifikasi tujuan. Membuat VM dengan konfigurasi yang diinginkan

Tugas 2. Men-deploy aplikasi yang rentan untuk memicu kerentanan XSS

Dalam tugas ini, Anda akan mendapatkan kode aplikasi dan memperkenalkan kerentanan agar dapat dideteksi oleh Web Security Scanner. Aplikasi ini berupa formulir sederhana yang menerima input pengguna dan mengeluarkannya tanpa perubahan apa pun.

  1. Di konsol Cloud, pada Navigation menu (Ikon Navigation menu), klik Compute Engine > VM Instances.

    Mungkin perlu waktu satu menit untuk melakukan inisialisasi pertama kali.

  2. Kemudian klik tombol SSH di samping instance Anda:

Tombol SSH di Konsol Cloud
  1. Pop-up mungkin muncul dan meminta Anda mengizinkan SSH di browser untuk terhubung ke VM. Click Authorize.

Tindakan ini akan membuka koneksi SSH ke instance VM Anda di jendela baru.

  1. Di jendela SSH ini (Not in Cloud Shell), jalankan perintah berikut untuk mendownload dan mengekstrak file aplikasi web yang rentan:
gsutil cp gs://cloud-training/GCPSEC-ScannerAppEngine/flask_code.tar . && tar xvf flask_code.tar
  1. Sekarang jalankan perintah berikut untuk men-deploy aplikasi Anda:
python3 app.py
  1. Tak lama kemudian, Anda akan menerima pesan yang menunjukkan bahwa aplikasi Anda sudah berjalan dan beroperasi.

Output:

* Serving Flask app "app" (lazy loading) * Environment: production WARNING: This is a development server. Jangan gunakan dalam deployment produksi. Gunakan server WSGI produksi sebagai gantinya. * Debug mode: off * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
  1. Temukan alamat IP statis VM yang Anda salin ke notepad sebelumnya.

  2. Ganti YOUR_EXTERNAL_IP di kolom URL di bawah dengan alamat IP tersebut, lalu buka URL di tab browser baru:

http://<YOUR_EXTERNAL_IP>:8080 Catatan: Anda juga dapat menemukan alamat IP eksternal di Konsol Google Cloud, yang tercantum sebagai kolom yang terkait dengan instance VM Anda. Catatan: Jika Anda melihat pop-up yang menunjukkan bahwa IP eksternal tidak mendukung koneksi aman, klik Continue to site.

Portal perbankan korporat Cymbal Bank dengan formulir web akan muncul.

  1. Di formulir web, masukkan string berikut:
<script>alert('This is an XSS Injection')</script>
  1. Sekarang klik tombol POST.

Anda akan menerima jendela pemberitahuan berikut.

Jendela pemberitahuan di browser

Ini adalah kerentanan umum dalam aplikasi web: kerentanan pembuatan skrip lintas situs. Pembuatan skrip lintas situs (XSS) adalah kerentanan yang memungkinkan penyerang menjalankan skrip berbahaya di browser pengguna dalam konteks aplikasi Anda. Browser Anda menafsirkan string sebagai JavaScript yang sah dan mengeksekusinya.

Penyerang yang menggunakan bug XSS untuk menyuntikkan JavaScript ke halaman HTML akan mendapatkan akses yang hampir tidak terbatas ke sesi login korban yang mengunjungi halaman tersebut: mereka dapat mencuri data pengguna, merusaknya, mengubah setelan privasi atau keamanan, atau bahkan mengubah sepenuhnya tampilan dan pengoperasian produk. Terlebih lagi, kerentanan XSS dalam satu aplikasi, sekecil apa pun, dapat membahayakan konten lain dalam domain yang sama.

Ini adalah salah satu dari banyak kerentanan aplikasi yang dapat diidentifikasi oleh Web Security Scanner.

Klik Periksa progres saya untuk memverifikasi tujuan. Mendownload file aplikasi web yang rentan di VM

Tugas 3. Mengaktifkan Web Security Scanner API

Setelah aplikasi yang rentan diluncurkan, saatnya mendemonstrasikan kemampuan Web Security Scanner kepada CTO. Namun, pertama-tama, Anda perlu mengonfigurasi API yang digunakan WSS untuk berjalan.

  1. Beralih kembali ke tab browser Konsol Cloud.

  2. Dari Navigation menu (Ikon Navigation menu), pilih APIs & Services > Library.

  3. Di kolom Search for APIs and services, ketik Web Security Scanner, lalu tekan Enter.

  4. Pilih Web Security Scanner API.

  5. Klik Enable untuk mengaktifkan Web Security Scanner API.

Klik Periksa progres saya untuk memverifikasi tujuan. Mengaktifkan Web Security Scanner API

Tugas 4. Memindai aplikasi yang di-deploy dengan WSS

Dalam tugas ini, Anda akan mengonfigurasi dan menyiapkan pemindaian aplikasi untuk memeriksa apakah aplikasi tersebut menemukan kerentanan keamanan.

  1. Buka Navigation menu (Ikon Navigation menu), lalu pilih Security > Web Security Scanner.

  2. Klik + New Scan.

  3. Di bagian Starting URLs, kolom Starting URLs 1 akan diisi otomatis dengan alamat IP statis Anda.

  4. Tambahkan nomor port 8080, sehingga Starting URL menyerupai yang berikut ini:

http://<EXTERNAL_IP>:8080
  1. Jika ada, hapus Starting URL 2.

  2. Luangkan waktu sebentar untuk meninjau kolom yang tersisa di layar Create a new scan:

  • Authentication: properti yang dapat digunakan untuk menyediakan kredensial aplikasi agar pemindai dapat mengautentikasi ke aplikasi saat memindai.
  • Schedule: properti yang dapat digunakan untuk menjadwalkan pemindaian agar berjalan secara otomatis.
  • Ekspor ke Security Command Center: properti yang memungkinkan Anda mengekspor konfigurasi pemindaian dan hasil pemindaian secara otomatis ke Cloud Security Command Center setelah pemindaian selesai.
  1. Pastikan Authentication masih disetel ke None dan Schedule disetel ke Never.

  2. Klik Show More untuk menyelidiki setelan yang tersisa.

  3. Klik Save untuk membuat pemindaian.

Catatan: Perintah ini akan membuat pemindaian, tetapi jangan jalankan dulu. Saat ini, pipeline harus dijalankan secara manual karena Anda belum membuat jadwal.
  1. Klik Run untuk memulai pemindaian
Catatan: Mengingat banyaknya kemungkinan pengujian, pemindaian ini dapat memakan waktu lebih dari 10 menit.
  1. Kembali ke sesi SSH Anda di jendela browser terpisah.

Jika sesi habis waktunya, jalankan perintah berikut untuk memulai ulang aplikasi Anda:

python3 app.py

Di Jendela SSH, Anda akan mulai melihat log yang dibuat mirip dengan contoh di bawah—ini adalah Web Security Scanner yang menguji semua URL untuk mencari potensi kerentanan.

Output:

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -

Anda mungkin melihat pernyataan log dengan kode status HTTP berikut:

  • 200: Permintaan berhasil, dengan server HTTP menjawab dengan respons OK.
  • 302: Menunjukkan bahwa resource untuk sementara berada di lokasi lain sesuai dengan header Location.
  • 404: menunjukkan bahwa satu atau beberapa resource tidak ditemukan.

Lihat dokumentasi HTTP Status and Error Codes untuk informasi lebih lanjut.

Saat pemindaian berjalan, Anda dapat menjelajahi tab Results, URLs Crawled, dan Details. Anda juga dapat menonton video memulai ini, atau video pemindaian kerentanan ini untuk mempelajari lebih lanjut Web Security Scanner.

  1. Setelah pemindaian selesai dijalankan, tab Results akan menunjukkan kerentanan lintas situs.
Hasil Web Security Scanner dengan kerentanan

Web Security Scanner dapat memindai semua URL awal dan mendeteksi kerentanan XSS di aplikasi Cymbal Bank. Kemampuan untuk mengotomatiskan deteksi kerentanan penting ini merupakan manfaat besar bagi organisasi yang berorientasi pada keamanan seperti Cymbal Bank.

Klik Periksa progres saya untuk memverifikasi tujuan. Menjalankan pemindaian Web Security Scanner dan mendeteksi kerentanan aplikasi

Tugas 5. Perbaiki kerentanan dan pindai lagi

Setelah Anda mendemonstrasikan bahwa Web Security Scanner dapat mendeteksi kerentanan XSS, Anda akan memperbaiki kerentanan tersebut dan menjalankan pemindaian aplikasi lagi.

  1. Kembali ke jendela SSH yang terhubung ke instance VM Anda.
  2. Hentikan aplikasi yang sedang berjalan dengan menekan CTRL + C.
  3. Edit file app.py menggunakan editor nano dengan menjalankan perintah berikut:
nano app.py
  1. Temukan dua baris yang menetapkan string output:
# output_string = "".join([html_escape_table.get(c, c) for c in input_string]) output_string = input_string
  1. Hapus simbol # dari baris pertama, dan tambahkan ke awal baris berikutnya (pastikan Anda mengindentasi kode dengan benar.)

Baris terakhir Anda harus menyerupai yang berikut ini:

@app.route('/output') def output(): output_string = "".join([html_escape_table.get(c, c) for c in input_string]) # output_string = input_string return flask.render_template("output.html", output=output_string) Catatan: html_escape_table adalah kamus yang berisi pasangan one-to-one karakter HTML khusus seperti "<" dengan representasi teksnya. Anda menggunakan tabel ini untuk meng-escape karakter HTML khusus agar formulir Anda hanya menyerap dan menafsirkan pengiriman sebagai teks mentah. Anda dapat membaca dokumentasi Apa itu HTML Escape? ini untuk mengetahui informasi selengkapnya.
  1. Sekarang ketik CTRL+X, Y, dan Enter untuk menyimpan perubahan Anda.

  2. Jalankan kembali aplikasi:

python3 app.py
  1. Kembali ke tab browser konsol Google Cloud (Anda seharusnya masih membuka halaman Web Security Scanner):

  2. Klik Run di bagian atas halaman.

Di Jendela SSH, Anda akan mulai melihat log tempat Web Security Scanner menguji URL aplikasi untuk mencari potensi kerentanan.

Output:

34.29.3.21 - - [23/Mar/2023 23:30:41] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:06] "GET /output HTTP/1.1" 200 - 35.184.129.44 - - [23/Mar/2023 23:31:07] "GET /favicon.ico HTTP/1.1" 404 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "POST / HTTP/1.1" 302 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /output HTTP/1.1" 200 - 34.68.231.45 - - [23/Mar/2023 23:31:09] "GET /favicon.ico HTTP/1.1" 404 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "POST / HTTP/1.1" 302 - 35.184.129.44 - - [23/Mar/2023 23:31:17] "GET /output HTTP/1.1" 200 -
  1. Sambil menunggu hasil pemindaian, login ke URL http://<EXTERNAL_IP>:8080 menggunakan browser Anda di tab terpisah.

    Formulir web akan ditampilkan sekali lagi.

  2. Di formulir web, masukkan string yang sama dengan yang Anda masukkan sebelumnya:

<script>alert('This is an XSS Injection')</script>
  1. Sekarang klik tombol POST.

  2. Pastikan kali ini Anda menerima string berikut di browser:

Input ditampilkan sebagai string teks Catatan: Meskipun teknik ini berfungsi dalam skenario sederhana ini, untuk perlindungan yang tepat terhadap aplikasi web Anda, Anda perlu menggunakan teknik dan framework yang lebih canggih yang berada di luar cakupan lab ini.

Jelajahi link di bawah untuk mendapatkan referensi lainnya:
  1. Kembali ke konsol Google Cloud, tempat Anda berhenti di halaman Web Security Scanner.

  2. Klik Run di bagian atas halaman untuk memindai ulang aplikasi Anda.

  3. Tidak lama kemudian, Anda akan melihat bahwa hasilnya tidak lagi menghasilkan kerentanan XSS.

Output Web Security Scanner tanpa kerentanan

Klik Periksa progres saya untuk memverifikasi tujuan. Memperbaiki kerentanan dan memindai ulang aplikasi Anda menggunakan Web Security Scanner

Selamat!

Anda telah berhasil mendemonstrasikan kepada CTO Cymbal Bank cara mengidentifikasi dan memperbaiki kerentanan XSS dengan solusi Web Security Scanner Google Cloud yang canggih.

Mengakhiri lab Anda

Setelah Anda menyelesaikan lab, klik Akhiri Lab. Google Cloud Skills Boost menghapus resource yang telah Anda gunakan dan membersihkan akun.

Anda akan diberi kesempatan untuk menilai pengalaman menggunakan lab. Pilih jumlah bintang yang sesuai, ketik komentar, lalu klik Submit.

Makna jumlah bintang:

  • 1 bintang = Sangat tidak puas
  • 2 bintang = Tidak puas
  • 3 bintang = Netral
  • 4 bintang = Puas
  • 5 bintang = Sangat puas

Anda dapat menutup kotak dialog jika tidak ingin memberikan masukan.

Untuk masukan, saran, atau koreksi, gunakan tab Support.

Sertifikasi dan pelatihan Google Cloud

...membantu Anda mendapatkan manfaat optimal dari teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual agar dapat disesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.

Manual Terakhir Diperbarui pada 27 Februari 2025

Lab Terakhir Diuji pada 27 Februari 2025

Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.

Sebelum memulai

  1. Lab membuat project dan resource Google Cloud untuk jangka waktu tertentu
  2. Lab memiliki batas waktu dan tidak memiliki fitur jeda. Jika lab diakhiri, Anda harus memulainya lagi dari awal.
  3. Di kiri atas layar, klik Start lab untuk memulai

Gunakan penjelajahan rahasia

  1. Salin Nama Pengguna dan Sandi yang diberikan untuk lab tersebut
  2. Klik Open console dalam mode pribadi

Login ke Konsol

  1. Login menggunakan kredensial lab Anda. Menggunakan kredensial lain mungkin menyebabkan error atau dikenai biaya.
  2. Setujui persyaratan, dan lewati halaman resource pemulihan
  3. Jangan klik End lab kecuali jika Anda sudah menyelesaikan lab atau ingin mengulanginya, karena tindakan ini akan menghapus pekerjaan Anda dan menghapus project

Konten ini tidak tersedia untuk saat ini

Kami akan memberi tahu Anda melalui email saat konten tersedia

Bagus!

Kami akan menghubungi Anda melalui email saat konten tersedia

Satu lab dalam satu waktu

Konfirmasi untuk mengakhiri semua lab yang ada dan memulai lab ini

Gunakan penjelajahan rahasia untuk menjalankan lab

Gunakan jendela Samaran atau browser pribadi untuk menjalankan lab ini. Langkah ini akan mencegah konflik antara akun pribadi Anda dan akun Siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.