Web Security Scanner mengidentifikasi kerentanan keamanan dan kesalahan konfigurasi di aplikasi web App Engine, Google Kubernetes Engine (GKE), dan Compute Engine Anda. Pemindai 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 yang aman yang sudah ada. Untuk menghindari gangguan dengan positif palsu, Web Security Scanner cenderung kurang melaporkan dan tidak menampilkan peringatan dengan tingkat keyakinan rendah. Fitur ini tidak menggantikan peninjauan keamanan manual, dan tidak menjamin bahwa aplikasi Anda bebas dari kelemahan keamanan.
Temuan yang dikategorikan sebagai kesalahan konfigurasi mewakili masalah yang dapat diselesaikan melalui tindakan pelanggan dengan memperbarui konfigurasi. Meskipun temuan ini penting untuk meningkatkan postur keamanan, temuan ini berbeda dengan kerentanan, yang merupakan kelemahan yang dapat dieksploitasi secara aktif. Anda dapat melihat kesalahan konfigurasi ini di halaman Temuan Security Command Center. Untuk mengetahui informasi selengkapnya, lihat Temuan kesalahan konfigurasi Web Security Scanner.
Jenis pemindaian
Web Security Scanner menyediakan pemindaian kerentanan web terkelola dan kustom untuk aplikasi web publik yang di-serve oleh 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 mengirimkan permintaan khusus GET sehingga tidak mengirimkan formulir apa pun di situs aktif.
Pemindaian terkelola dijalankan 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 tim project satu per satu. Saat temuan ditemukan, Anda dapat bekerja sama dengan tim tersebut untuk menyiapkan pemindaian kustom yang lebih komprehensif.
Jika Anda mengaktifkan Web Security Scanner sebagai layanan, temuan pemindaian terkelola akan otomatis tersedia di halaman Kerentanan Security Command Center dan laporan terkait. Untuk mengetahui informasi tentang cara mengaktifkan pemindaian terkelola 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 mendetail 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.
Detektor dan kepatuhan
Web Security Scanner mendukung kategori dalam OWASP Top Ten, sebuah dokumen yang memberi peringkat dan memberikan panduan perbaikan untuk 10 risiko keamanan aplikasi web paling penting, sebagaimana ditentukan oleh Open Web Application Security Project (OWASP).
Pemetaan kepatuhan disertakan untuk referensi dan tidak disediakan atau ditinjau oleh OWASP Foundation. Tindakan ini hanya ditujukan untuk memantau pelanggaran kontrol kepatuhan Anda. Pemetaan tidak disediakan untuk digunakan sebagai dasar, atau sebagai pengganti, audit, sertifikasi, atau laporan kepatuhan produk atau layanan Anda terhadap tolok ukur atau standar peraturan atau industri apa pun.
Untuk mengetahui informasi selengkapnya tentang kepatuhan, lihat Menilai dan melaporkan kepatuhan terhadap tolok ukur keamanan.
Jenis temuan
Pemindaian kustom dan terkelola Web Security Scanner mengidentifikasi jenis temuan berikut. Di tingkat Standard, Web Security Scanner mendukung pemindaian kustom aplikasi yang di-deploy dengan URL dan IP publik yang tidak berada di belakang firewall.
Kategori | Menemukan deskripsi | Kategori Temuan | 10 Teratas OWASP 2017 | 10 Teratas OWASP 2021 |
---|---|---|---|---|
|
Repositori Git diekspos secara publik. Untuk mengatasi temuan ini, hapus akses publik yang tidak disengaja ke repositori GIT. Tingkat harga: Premium atau Standar |
Kerentanan | A5 | A01 |
|
Repositori SVN diekspos secara publik. Untuk mengatasi temuan ini, hapus akses publik yang tidak disengaja ke repositori SVN. Tingkat harga: Premium atau Standar |
Kerentanan | A5 | A01 |
|
File ENV diekspos secara publik. Untuk menyelesaikan temuan ini, hapus akses publik yang tidak disengaja ke file ENV. Tingkat harga: Premium atau Standar |
Kerentanan | A5 | A01 |
|
Sandi yang dimasukkan di aplikasi web dapat di-cache dalam cache browser reguler, bukan di penyimpanan sandi yang aman. Tingkat harga: Premium |
Kerentanan | A3 | A04 |
|
Sandi dikirimkan dalam teks biasa dan dapat dicegat. Untuk menyelesaikan temuan ini, enkripsi sandi yang ditransmisikan melalui jaringan. Tingkat harga: Premium atau Standar |
Kerentanan | A3 | A02 |
|
Endpoint HTTP atau HTTPS lintas situs hanya memvalidasi akhiran header permintaan Tingkat harga: Premium |
Kerentanan | A5 | A01 |
|
Endpoint HTTP atau HTTPS lintas situs hanya memvalidasi awalan header permintaan Tingkat harga: Premium |
Kerentanan | A5 | A01 |
|
Resource yang dimuat tidak cocok dengan header HTTP Content-Type respons. Untuk
mengatasi temuan ini, tetapkan header HTTP Tingkat harga: Premium atau Standar |
Kerentanan | A6 | A05 |
|
Header keamanan memiliki error sintaksis dan diabaikan oleh browser. Untuk mengatasi temuan ini, tetapkan header keamanan HTTP dengan benar. Tingkat harga: Premium atau Standar |
Kerentanan | A6 | A05 |
|
Header keamanan memiliki nilai yang diduplikasi dan tidak cocok, yang menyebabkan perilaku tidak terdefinisi. Untuk mengatasi temuan ini, tetapkan header keamanan HTTP dengan benar. Tingkat harga: Premium atau Standar |
Kerentanan | A6 | A05 |
|
Header keamanan salah dieja dan diabaikan. Untuk mengatasi temuan ini, tetapkan header keamanan HTTP dengan benar. Tingkat harga: Premium atau Standar |
Kerentanan | A6 | A05 |
|
Resource ditayangkan melalui HTTP di halaman HTTPS. Untuk menyelesaikan temuan ini, pastikan semua resource ditayangkan melalui HTTPS. Tingkat harga: Premium atau Standar |
Kerentanan | A6 | A05 |
|
Terdeteksi library yang memiliki kerentanan umum. Untuk menyelesaikan temuan ini, upgrade library ke versi yang lebih baru. Tingkat harga: Premium atau Standar |
Kerentanan | A9 | A06 |
|
Kerentanan pemalsuan permintaan sisi server (SSRF) terdeteksi. Untuk mengatasi temuan ini, gunakan daftar yang diizinkan untuk membatasi domain dan alamat IP yang dapat digunakan aplikasi web untuk membuat permintaan. Tingkat harga: Premium atau Standar |
Kerentanan | Tidak berlaku | A10 |
|
Saat membuat permintaan lintas domain, aplikasi web menyertakan ID sesi pengguna
dalam header permintaan Tingkat harga: Premium |
Kerentanan | A2 | A07 |
|
Kerentanan injeksi SQL potensial terdeteksi. Untuk menyelesaikan temuan ini, gunakan kueri berparameter untuk mencegah input pengguna memengaruhi struktur kueri SQL. Tingkat harga: Premium |
Kerentanan | A1 | A03 |
|
Penggunaan versi Apache Struts yang rentan terdeteksi. Untuk mengatasi temuan ini, upgrade Apache Struts ke versi terbaru. Tingkat harga: Premium |
Kerentanan | A8 | A08 |
|
Kolom di aplikasi web ini rentan terhadap serangan pembuatan skrip lintas situs (XSS). Untuk menyelesaikan temuan ini, validasi dan hindari data tidak tepercaya yang disediakan pengguna. Tingkat harga: Premium atau Standar |
Kerentanan | A7 | A03 |
|
String yang disediakan pengguna tidak di-escape dan AngularJS dapat menginterpolasinya. Untuk mengatasi temuan ini, validasi dan hindari data tidak tepercaya dari pengguna yang ditangani oleh framework Angular. Tingkat harga: Premium atau Standar |
Kerentanan | A7 | A03 |
|
Kolom di aplikasi web ini rentan terhadap serangan pembuatan skrip lintas situs. Untuk menyelesaikan temuan ini, validasi dan hindari data tidak tepercaya yang disediakan pengguna. Tingkat harga: Premium atau Standar |
Kerentanan | A7 | A03 |
|
Kerentanan XML External Entity (XXE) terdeteksi. Kerentanan ini dapat menyebabkan aplikasi web membocorkan file di host. Untuk mengatasi temuan ini, konfigurasi parser XML Anda agar tidak mengizinkan entitas eksternal. Tingkat harga: Premium |
Kerentanan | A4 | A05 |
|
Aplikasi rentan terhadap pencemaran prototipe. Kerentanan ini muncul saat
properti objek Tingkat harga: Premium atau Standar |
Kerentanan | A1 | A03 |
|
Header HTTP Strict Transport Security (HSTS) yang salah dikonfigurasi terdeteksi. Untuk mengurangi risiko serangan penurunan kualitas dan penyadapan pada koneksi HTTP secara signifikan, selesaikan masalah header HSTS yang salah dikonfigurasi. Header HSTS memaksa koneksi melalui saluran terenkripsi (TLS) sehingga koneksi HTTP teks biasa gagal. Cari tahu lebih lanjut tentang header HSTS
Tingkat harga: Premium |
Error konfigurasi | Tidak berlaku | Tidak berlaku |
|
Header respons HTTP Kebijakan Keamanan Konten (CSP) tidak ada. Header CSP memitigasi eksploitasi kerentanan web umum, terutama pembuatan skrip lintas situs XSS, dengan mencegah skrip atau plugin yang tidak tepercaya dimuat. Header CSP yang ketat direkomendasikan. Cari tahu header CSP lebih lanjut
Tingkat harga: Premium |
Error konfigurasi | Tidak berlaku | Tidak berlaku |
|
Header respons HTTP Kebijakan Keamanan Konten (CSP) yang salah konfigurasi terdeteksi. Header CSP mengurangi eksploitasi kerentanan web umum, terutama XSS pembuatan skrip lintas situs, dengan mencegah skrip atau plugin yang tidak tepercaya dimuat. Header CSP yang ketat direkomendasikan. Pelajari header CSP lebih lanjut
Tingkat harga: Premium |
Error konfigurasi | Tidak berlaku | Tidak berlaku |
|
Header HTTP Cross-Origin-Opener-Policy (COOP) tidak ada. COOP adalah mekanisme keamanan web yang membatasi akses halaman yang dibuka di jendela baru ke properti dari halaman asalnya. COOP menawarkan lapisan perlindungan yang kuat terhadap serangan web umum.
Tingkat harga: Premium |
Error konfigurasi | Tidak berlaku | Tidak berlaku |
|
Header respons yang tidak ada terdeteksi. Untuk mencegah clickjacking, terapkan header respons HTTP seperti
Tingkat harga: Premium |
Error konfigurasi | Tidak berlaku | Tidak berlaku |
Batasan 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 diberikan kepada Anda. Untuk mempelajari lebih lanjut peran Security Command Center, lihat Kontrol akses.
Hal penting lainnya yang perlu diperhatikan saat menggunakan Web Security Scanner:
- Karena Web Security Scanner terus mengalami peningkatan, pemindaian di masa 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 memasukkan input yang ditemukannya.
- Web Security Scanner hanya mendukung situs yang menggunakan IPv4. Situs yang menggunakan IPv6 tidak dipindai.
- Jika Anda mengekspos tindakan yang mengubah status yang izinnya dimiliki oleh akun pengujian Anda, Pemindai Keamanan Web kemungkinan akan mengaktifkannya. Hal ini dapat menyebabkan hasil yang tidak diinginkan.
- Web Security Scanner memiliki batas 15 pemindaian per project. Karena pemindaian dijalankan secara bersamaan, 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 mengetahui 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. Tugas ini dimasukkan dalam antrean, lalu dieksekusi nanti, mungkin beberapa jam kemudian, bergantung pada beban sistem. Setelah pemindaian mulai dieksekusi, waktu yang diperlukan akan bergantung pada ukuran aplikasi Anda. Pemindaian aplikasi besar dengan banyak URL dapat memerlukan waktu beberapa jam, atau bahkan beberapa hari. Jika pemindaian belum selesai dalam waktu 20 hari, pemindaian akan otomatis dihentikan, dan semua hasil crawl serta 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 tempat pemindaian dibuat. Memasukkan URL untuk project App Engine yang berbeda atau domain di luar akan menghasilkan pesan error.
Pemindaian untuk Compute Engine dan GKE dibatasi ke domain yang dipetakan ke alamat IP eksternal statis yang dicadangkan 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 Semua harga jaringan.
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 secara manual mengecualikan URL.
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 berhasil login ke aplikasi Anda. Parameter konfigurasi, termasuk kecepatan pemindaian maksimum, juga diperiksa untuk memastikan parameter tersebut berada dalam rentang yang didukung.
Anda harus mengatasi error sebelum pemindaian dibuat atau diperbarui. Aplikasi yang diubah setelah konfigurasi awal dapat menimbulkan error selama pemindaian. Misalnya, jika domain tidak lagi mengarah ke alamat IP yang dimiliki oleh project, resource tidak dipindai dan error dilaporkan di halaman konfigurasi pemindaian.
Praktik terbaik
Karena Pemindai Keamanan Web 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 dapat memposting string pengujian sebagai komentar di semua artikel blog Anda.
- Di halaman pendaftaran email, Web Security Scanner dapat membuat sejumlah besar email pengujian.
Berikut beberapa teknik yang dapat Anda gunakan, secara terpisah atau dikombinasikan, untuk menghindari hasil yang tidak diinginkan:
- Jalankan pemindaian di lingkungan pengujian. Siapkan lingkungan pengujian dengan membuat project App Engine terpisah dan memuat aplikasi serta 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 akun tersebut saat memindai aplikasi Anda. Banyak aplikasi menampilkan alur kerja khusus selama login pertama kali pengguna, seperti menyetujui persyaratan dan membuat profil. Karena alur kerja yang berbeda, akun pengujian untuk pengguna awal dapat memiliki hasil pemindaian yang berbeda dengan akun pengguna yang sudah ada. Sebaiknya pindai dengan akun yang dalam status pengguna normal, setelah alur pertama kali selesai.
- Blokir elemen antarmuka pengguna individual yang tidak ingin Anda aktifkan
dengan menerapkan class CSS
inq-no-click
. Pengendali peristiwa yang dilampirkan ke elemen ini tidak diaktifkan selama crawling dan pengujian, terlepas dari apakah berupa JavaScript inline, dilampirkan menggunakanaddEventListener
, atau dilampirkan dengan menyetel properti pengendali peristiwa yang sesuai. - Gunakan data cadangan. Pertimbangkan untuk mencadangkan 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 mengetahui fitur apa pun yang mungkin memengaruhi data, pengguna, atau sistem di luar cakupan pemindaian Anda.
Langkah berikutnya
- Mulai menggunakan Web Security Scanner.