Web Security Scanner mengidentifikasi kerentanan keamanan di aplikasi web App Engine, Google Kubernetes Engine (GKE), dan Compute Engine Anda. API 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 hanya mendukung URL dan IP publik yang tidak berada di balik firewall.
Web Security Scanner mendukung lingkungan standar App Engine dan lingkungan fleksibel App Engine, instance Compute Engine, dan resource GKE.
Web Security Scanner dirancang untuk melengkapi proses desain dan pengembangan aman yang sudah ada. Untuk menghindari gangguan dengan positif palsu, Web Security Scanner lebih memilih untuk tidak melaporkan dan tidak menampilkan peringatan dengan tingkat keyakinan rendah. Peninjauan ini tidak menggantikan peninjauan keamanan manual, dan tidak menjamin bahwa aplikasi Anda bebas dari celah keamanan.
Jenis pemindaian
Web Security Scanner menyediakan pemindaian kerentanan web terkelola dan kustom untuk aplikasi web publik yang dilayani App Engine, GKE, dan Compute Engine.
Pemindaian terkelola
Pemindaian terkelola Web Security Scanner dikonfigurasi dan dikelola oleh Security Command Center. Pemindaian terkelola otomatis berjalan seminggu sekali untuk mendeteksi dan memindai endpoint web publik. Pemindaian ini tidak menggunakan autentikasi dan mengirim permintaan khusus GET sehingga tidak mengirimkan formulir apa pun di situs aktif.
Pemindaian terkelola berjalan secara terpisah dari pemindaian kustom.
Jika Security Command Center diaktifkan di level organisasi, Anda dapat menggunakan pemindaian terkelola untuk mengelola deteksi kerentanan aplikasi web dasar secara terpusat untuk project di organisasi Anda, tanpa harus melibatkan setiap tim project. Saat temuan ditemukan, Anda dapat bekerja sama dengan tim tersebut untuk menyiapkan pemindaian kustom yang lebih komprehensif.
Saat Anda mengaktifkan Web Security Scanner sebagai layanan, temuan pemindaian terkelola akan tersedia secara otomatis di halaman Kerentanan Security Command Center dan laporan terkait. Untuk informasi tentang cara mengaktifkan pemindaian yang dikelola Web Security Scanner, lihat Mengonfigurasi layanan Security Command Center.
Pemindaian terkelola hanya mendukung aplikasi yang menggunakan port default, yaitu 80 untuk koneksi HTTP dan 443 untuk koneksi HTTPS. Jika aplikasi Anda menggunakan port non-default, lakukan pemindaian kustom.
Pemindaian kustom
Pemindaian kustom Web Security Scanner memberikan informasi terperinci tentang temuan kerentanan aplikasi, seperti library yang sudah usang, pembuatan skrip lintas situs, atau penggunaan konten campuran.
Anda menentukan pemindaian kustom di level project.
Temuan pemindaian kustom tersedia di Security Command Center setelah Anda menyelesaikan panduan untuk menyiapkan pemindaian kustom Web Security Scanner.
Temuan pemindaian
Bagian ini menjelaskan jenis temuan Web Security Scanner dan standar kepatuhan yang relevan.
Pendeteksi dan kepatuhan
Web Security Scanner mendukung kategori dalam OWASP Top Ten, dokumen yang memberi peringkat dan memberikan panduan perbaikan untuk 10 risiko keamanan aplikasi web yang paling penting, seperti yang ditentukan oleh Open Web Application Security Project (OWASP).
Pemetaan kepatuhan disertakan sebagai referensi dan tidak disediakan atau ditinjau oleh OWASP Foundation. Fitur ini hanya ditujukan untuk memantau pelanggaran kontrol kepatuhan. Pemetaan tidak disediakan untuk digunakan sebagai dasar, atau sebagai pengganti, audit, sertifikasi, atau laporan kepatuhan produk atau layanan Anda dengan tolok ukur atau standar peraturan atau industri.
Untuk informasi selengkapnya tentang kepatuhan, lihat Menilai dan melaporkan kepatuhan benchmark keamanan.
Menemukan jenis
Pemindaian kustom dan terkelola Web Security Scanner mengidentifikasi jenis temuan berikut. Di tingkat Standar, Web Security Scanner mendukung pemindaian kustom aplikasi yang di-deploy dengan URL dan IP publik yang tidak berada di balik firewall.
Kategori | Menemukan deskripsi | 10 Teratas OWASP 2017 | OWASP 2021 Top 10 |
---|---|---|---|
Nama kategori di API: |
Repositori Git diekspos secara publik. Untuk mengatasi temuan ini, hapus akses publik yang tidak disengaja ke repositori GIT. Paket harga: Premium atau Standar |
A5 | A01 |
Nama kategori di API: |
Repositori SVN diekspos secara publik. Untuk mengatasi temuan ini, hapus akses publik yang tidak disengaja ke repositori SVN. Paket harga: Premium atau Standar |
A5 | A01 |
Nama kategori di API: |
Sandi yang dimasukkan di aplikasi web dapat di-cache dalam cache browser reguler, bukan penyimpanan sandi yang aman. Paket harga: Premium |
A3 | A04 |
Nama kategori di API: |
Sandi dikirim dalam bentuk teks biasa dan dapat disadap. Untuk mengatasi penemuan ini, enkripsi sandi yang ditransmisikan melalui jaringan. Paket harga: Premium atau Standar |
A3 | A02 |
Nama kategori di API: |
Endpoint HTTP atau HTTPS lintas situs hanya memvalidasi akhiran header permintaan Paket harga: Premium |
A5 | A01 |
Nama kategori di API: |
Endpoint HTTP atau HTTPS lintas situs hanya memvalidasi awalan header permintaan Paket harga: Premium |
A5 | A01 |
Nama kategori di API: |
Resource yang dimuat tidak cocok dengan header HTTP Content-Type respons. Untuk
mengatasi temuan ini, tetapkan header HTTP Paket harga: Premium atau Standar |
A6 | A05 |
Nama kategori di API: |
Header keamanan memiliki error sintaksis dan diabaikan oleh browser. Untuk mengatasi temuan ini, tetapkan header keamanan HTTP dengan benar. Paket harga: Premium atau Standar |
A6 | A05 |
Nama kategori di API: |
Header keamanan memiliki nilai duplikat yang tidak cocok, yang menghasilkan perilaku yang tidak ditentukan. Untuk mengatasi temuan ini, tetapkan header keamanan HTTP dengan benar. Paket harga: Premium atau Standar |
A6 | A05 |
Nama kategori di API: |
Header keamanan salah eja dan diabaikan. Untuk mengatasi temuan ini, tetapkan header keamanan HTTP dengan benar. Paket harga: Premium atau Standar |
A6 | A05 |
Nama kategori di API: |
Resource ditayangkan melalui HTTP di halaman HTTPS. Untuk mengatasi temuan ini, pastikan semua resource ditayangkan melalui HTTPS. Paket harga: Premium atau Standar |
A6 | A05 |
Nama kategori di API: |
Library terdeteksi yang memiliki kerentanan umum. Untuk mengatasi temuan ini, upgrade library ke versi yang lebih baru. Paket harga: Premium atau Standar |
A9 | A06 |
Nama kategori di API: |
Kerentanan pemalsuan permintaan sisi server (SSRF) terdeteksi. Untuk mengatasi temuan ini, gunakan daftar yang diizinkan untuk membatasi domain dan alamat IP yang dapat menerima permintaan dari aplikasi web. Paket harga: Premium atau Standar |
Tidak berlaku | A10 |
Nama kategori di API: |
Saat membuat permintaan lintas-domain, aplikasi web menyertakan ID sesi pengguna dalam header permintaan Paket harga: Premium |
A2 | A07 |
Nama kategori di API: |
Potensi kerentanan injeksi SQL terdeteksi. Untuk mengatasi temuan ini, gunakan kueri berparameter untuk mencegah input pengguna memengaruhi struktur kueri SQL. Paket harga: Premium |
A1 | A03 |
Nama kategori di API: |
Penggunaan versi Apache Struts yang rentan terdeteksi. Untuk mengatasi temuan ini, upgrade Apache Struts ke versi terbaru. Paket harga: Premium |
A8 | A08 |
Nama kategori di API: |
Kolom di aplikasi web ini rentan terhadap serangan pembuatan skrip lintas situs (XSS). Untuk mengatasi temuan ini, validasi dan hindari data tidak tepercaya yang disediakan pengguna. Paket harga: Premium atau Standar |
A7 | A03 |
Nama kategori di API: |
String yang disediakan pengguna tidak di-escape dan AngularJS dapat melakukan interpolasi. Untuk mengatasi penemuan ini, validasi dan hindari data tidak tepercaya dari pengguna yang ditangani oleh framework Angular. Paket harga: Premium atau Standar |
A7 | A03 |
Nama kategori di API: |
Kolom di aplikasi web ini rentan terhadap serangan cross-site scripting. Untuk mengatasi temuan ini, validasi dan hindari data tidak tepercaya yang disediakan pengguna. Paket harga: Premium atau Standar |
A7 | A03 |
Nama kategori di API: |
Terdeteksi adanya kerentanan Entity Eksternal XML (XXE). Kerentanan ini dapat menyebabkan aplikasi web membocorkan file di host. Untuk mengatasi temuan ini, konfigurasikan parser XML Anda agar tidak mengizinkan entity eksternal. Paket harga: Premium |
A4 | A05 |
Nama kategori di API: |
Aplikasi rentan terhadap polusi prototipe. Kerentanan ini muncul saat
properti objek Paket harga: Premium atau Standar |
A1 | A03 |
Peringatan Penggunaan
Peran IAM untuk Security Command Center dapat diberikan di tingkat organisasi, folder, atau project. Kemampuan Anda untuk melihat, mengedit, membuat, atau memperbarui temuan, aset, dan sumber keamanan bergantung pada tingkat akses yang Anda terima. Untuk mempelajari peran Security Command Center lebih lanjut, lihat Kontrol akses.
Hal penting lainnya yang perlu diperhatikan saat menggunakan Web Security Scanner:
- Karena Web Security Scanner terus mengalami peningkatan, pemindaian mendatang mungkin melaporkan masalah yang tidak dilaporkan oleh pemindaian saat ini.
- Beberapa fitur atau bagian aplikasi Anda mungkin tidak diuji.
- Web Security Scanner mencoba mengaktifkan setiap kontrol dan input yang ditemukannya.
- Jika Anda mengekspos tindakan perubahan status yang memiliki izin akun pengujian, Web Security Scanner kemungkinan akan mengaktifkannya. Hal ini dapat menyebabkan hasil yang tidak diinginkan.
- Web Security Scanner memiliki batas 15 pemindaian per project. Karena pemindaian dijalankan secara serentak, pengguna yang mencapai batas ini disarankan untuk menambahkan beberapa URL awal per pemindaian, atau menambahkan pemindaian ke project lain yang belum mencapai batas.
Siapa yang dapat menjalankan pemindaian keamanan?
Untuk informasi tentang peran Identity and Access Management (IAM) yang tersedia untuk Web Security Scanner, lihat Kontrol akses.
Berapa lama waktu yang diperlukan untuk pemindaian keamanan?
Pemindaian keamanan tidak langsung dijalankan. Perintah ini dimasukkan ke dalam antrean, lalu dijalankan nanti, mungkin beberapa jam kemudian, bergantung pada beban sistem. Setelah pemindaian mulai dijalankan, waktu yang diperlukan akan bergantung pada ukuran aplikasi Anda. Pemindaian aplikasi besar dengan banyak URL dapat memerlukan waktu beberapa jam, atau bahkan berhari-hari. Jika pemindaian belum selesai dalam waktu 20 hari, pemindaian akan otomatis dihentikan, dan semua hasil crawling dan temuan yang ditemukan selama pemindaian akan terlihat sebagai hasil pemindaian.
Pembatasan target
Web Security Scanner memiliki filter yang membatasi target pemindaian ke instance App Engine tertentu yang pemindaian dibuat untuknya. Memasukkan URL untuk project App Engine yang berbeda atau domain luar akan menghasilkan pesan error.
Pemindaian untuk Compute Engine dan GKE dibatasi untuk domain yang dipetakan ke alamat IP eksternal statis yang disediakan untuk project yang sama dan alamat IP eksternal statis yang termasuk dalam project yang sama. Untuk mengetahui petunjuk tentang cara mencadangkan alamat IP untuk project, lihat link berikut:
Compute Engine: Mencadangkan alamat IP eksternal statis
App Engine tidak menyediakan cara untuk memetakan alamat IP statis ke aplikasi. Namun, Anda dapat menggunakan Cloud Load Balancing dan grup endpoint jaringan serverless untuk mencadangkan alamat IP statis untuk load balancer, yang kemudian mengarahkan traffic ke aplikasi Anda. Untuk mengetahui informasi tentang harga, lihat Harga alamat IP eksternal.
Dalam project Anda, Web Security Scanner secara otomatis mencoba menghindari URL logout dan lokasi umum lainnya yang dapat memengaruhi pemindaian secara negatif. Namun, untuk memastikannya, Anda dapat menggunakan setelan pemindaian untuk mengecualikan URL secara manual.
Validasi
Konfigurasi pemindaian divalidasi saat dibuat dan sebelum setiap pemindaian. Web Security Scanner memeriksa setelan Security Command Center dan kredensial autentikasi aplikasi Anda untuk memastikan pemindaian dikonfigurasi dengan benar dan dapat login ke aplikasi Anda dengan sukses. Parameter konfigurasi, termasuk kecepatan pemindaian maksimum, juga diperiksa untuk memastikannya berada dalam rentang yang didukung.
Anda harus mengatasi error sebelum pemindaian dibuat atau diperbarui. Aplikasi yang diubah setelah konfigurasi awal dapat menghasilkan error selama pemindaian. Misalnya, jika domain tidak lagi mengarah ke alamat IP yang dimiliki oleh project, resource tidak akan dipindai dan error akan dilaporkan di halaman konfigurasi pemindaian.
Praktik terbaik
Karena Web Security Scanner mengisi kolom, menekan tombol, mengklik link, dan melakukan tindakan pengguna lainnya, Anda harus menggunakannya dengan hati-hati, terutama jika Anda memindai resource produksi. Web Security Scanner berpotensi mengaktifkan fitur yang mengubah status data atau sistem Anda, dengan hasil yang tidak diinginkan.
Contoh:
- Di aplikasi blog yang mengizinkan komentar publik, Web Security Scanner mungkin memposting string pengujian sebagai komentar di semua artikel blog Anda.
- Di halaman pendaftaran email, Web Security Scanner mungkin menghasilkan email uji coba dalam jumlah besar.
Berikut adalah beberapa teknik yang dapat Anda gunakan, secara terpisah atau dalam kombinasi, untuk menghindari hasil yang tidak diinginkan:
- Jalankan pemindaian di lingkungan pengujian. Siapkan lingkungan pengujian dengan membuat project App Engine terpisah dan memuat aplikasi dan data Anda di sana. Jika menggunakan Google Cloud CLI, Anda dapat menentukan project target sebagai opsi command line saat mengupload aplikasi.
- Gunakan akun pengujian. Buat akun pengguna yang tidak memiliki akses ke data sensitif atau operasi berbahaya, dan gunakan saat memindai aplikasi Anda. Banyak aplikasi menampilkan alur kerja khusus selama login pertama pengguna, seperti menyetujui persyaratan dan membuat profil. Karena alur kerja yang berbeda, akun pengujian untuk pengguna awal dapat memiliki hasil pemindaian yang berbeda dari akun pengguna yang sudah ada. Sebaiknya pindai dengan akun yang dalam status pengguna normal, setelah alur pertama kali selesai.
- Blokir setiap elemen antarmuka pengguna yang tidak ingin diaktifkan
dengan menerapkan class CSS
inq-no-click
. Pengendali peristiwa yang dilampirkan ke elemen ini tidak diaktifkan selama crawling dan pengujian, terlepas dari apakah itu JavaScript inline, atau dilampirkan menggunakanaddEventListener
, atau dilampirkan dengan menetapkan properti pengendali peristiwa yang sesuai. - Gunakan data cadangan. Sebaiknya buat cadangan data Anda sebelum memindai.
- URL yang dikecualikan. Anda dapat menentukan pola URL yang tidak akan di-crawl atau diuji. Untuk informasi tentang sintaksis, lihat Mengecualikan URL.
Sebelum memindai, audit aplikasi Anda dengan cermat untuk menemukan fitur apa pun yang mungkin memengaruhi data, pengguna, atau sistem di luar cakupan pemindaian Anda.
Langkah selanjutnya
- Mulai menggunakan Web Security Scanner.