Apa yang dimaksud dengan serangan XSS mandiri?
Self-XSS, atau self cross-site scripting, adalah jenis serangan manipulasi psikologis yang mengelabui Anda untuk mengeksekusi kode berbahaya di browser web. Tidak seperti serangan XSS biasa, yang mengandalkan kerentanan di aplikasi web yang memungkinkan penyerang memasukkan kode berbahaya, serangan self-XSS mengandalkan potensi tindakan eksekusi kode Anda sendiri.
Serangan Self-XSS biasanya melibatkan penyerang yang mengelabui Anda untuk menyalin dan menempelkan kode berbahaya ke Konsol DevTools browser Anda. Penyerang biasanya mencapai hal ini dengan menjanjikan semacam reward. Hal ini dapat berupa:
- Menjanjikan bahwa kode tersebut akan memberi Anda akses ke fitur tersembunyi atau reward virtual.
- Berpura-pura bahwa kode tersebut adalah pengujian keamanan atau perbaikan bug.
- Menjanjikan bahwa kode tersebut memungkinkan peretasan ke situs untuk keuntungan Anda.
Setelah Anda mengeksekusi kode, penyerang dapat mengambil alih kontrol akun Anda. Hal ini dapat memungkinkan penyerang untuk:
- Mencuri informasi pribadi Anda, seperti nama, alamat, dan nomor kartu kredit.
- Memposting pesan atau komentar yang tidak sah atas nama Anda.
- Kontrol akun media sosial Anda.
- Menyebarkan malware ke pengguna lain.
Bagaimana cara Chrome DevTools mencoba memitigasi serangan XSS mandiri?
Mengizinkan pengguna menempelkan kode ke DevTools, lalu mengeksekusinya, pada dasarnya berisiko. Namun, ini juga merupakan salah satu fitur inti Chrome DevTools. Jadi, kami harus menemukan keseimbangan antara memitigasi potensi serangan self-XSS dan tidak mengganggu pekerjaan developer yang hanya ingin men-debug situs.
Developer biasanya tidak menyalin kode yang mereka temukan di suatu tempat di web, menempelkannya ke DevTools, dan mengeksekusinya, tanpa melihat sekilas apa yang dilakukan kode tersebut terlebih dahulu. Sebagian besar developer sangat menyadari risiko keamanan dari mengeksekusi kode yang mereka temukan di sudut web yang tidak jelas.
Chrome DevTools memercayai developer untuk mengetahui apa yang mereka lakukan. Kita tidak ingin memperlambat atau mengalihkan perhatian mereka dengan cara apa pun saat mereka menyalin dan menempelkan kode.
Kami berpendapat bahwa non-developer berisiko jauh lebih tinggi untuk menjadi korban serangan XSS mandiri. Untuk melindungi Anda, kami yakin bahwa mengganggu Anda saat Anda melakukan sesuatu yang berpotensi berbahaya adalah hal yang dapat diterima dan bermanfaat. Jika mendeteksi bahwa pengguna yang tidak berpengalaman mencoba menempelkan kode ke DevTools, Chrome DevTools akan berhenti dan menampilkan peringatan.
Kapan DevTools akan menampilkan peringatan XSS mandiri?
DevTools menggunakan heuristik yang sangat sederhana untuk memutuskan apakah akan menampilkan peringatan XSS mandiri: peringatan ini didasarkan pada histori konsol profil pengguna Anda.
Jika profil Anda memiliki minimal 5 entri dalam histori konsolnya, DevTools tidak akan mengganggu Anda dengan peringatan atau pop-up. Histori konsol adalah daftar perintah yang telah Anda ketik dan jalankan di Konsol. Ini adalah perintah yang Anda lihat saat menempatkan kursor di Konsol dan menekan tombol panah atas berulang kali.
Seperti apa tampilan peringatan XSS mandiri?
Saat pengguna yang tidak berpengalaman mencoba menempelkan kode ke Konsol, tindakan ini akan diblokir dan Konsol akan menampilkan peringatan.
Anda dapat mengganti peringatan ini dan mengaktifkan penempelan, tetapi Anda harus mengetik 'izinkan penempelan' untuk melakukannya.
Saat pengguna yang tidak berpengalaman menempelkan kode ke editor kode DevTools (misalnya, panel Sumber), pengalaman penggunanya sangat mirip. Anda akan melihat dialog modal, bukan peringatan.
Sekali lagi, menutup dialog ini saja tidak cukup untuk mengaktifkan fitur tempel. Untuk mengganti peringatan, Anda harus mengetik 'izinkan penempelan' ke dalam kolom input.
Apakah itu setelan satu kali?
Ya, setelah memutuskan untuk mengizinkan penempelan, Anda tidak akan lagi diganggu dengan peringatan XSS mandiri.
Kami harap hal ini dapat memberikan kompromi yang baik antara kegunaan dan gangguan. Dengan menambahkan hambatan, kami meningkatkan kemungkinan Anda membaca peringatan, sehingga mengurangi kemungkinan serangan self-XSS yang berhasil.
Chrome DevTools menyimpan tanda yang menentukan apakah akan menampilkan peringatan XSS mandiri atau tidak di profil Chrome Anda. Jadi, jika Anda membuat profil baru dan langsung mulai menempelkan kode ke DevTools, tindakan menempelkan akan diblokir dan peringatan XSS mandiri akan ditampilkan.
Dapatkah Anda menonaktifkannya untuk otomatisasi pengujian?
Namun, bagaimana dengan pengujian otomatis? Banyak alat pengujian membuat profil sementara baru untuk setiap pengujian yang dijalankan. Jadi, jika Anda menggunakan DevTools untuk men-debug pengujian otomatis, menempelkan ke Konsol awalnya akan diblokir.
Untuk mengatasi masalah ini, lakukan salah satu tindakan berikut:
Gunakan Chrome untuk Pengujian, berbagai Chrome yang dirancang khusus untuk pengujian dan otomatisasi. Peringatan XSS mandiri dinonaktifkan.
Untuk saluran rilis Chrome lainnya, teruskan tanda command-line
--unsafely-disable-devtools-self-xss-warnings
ke Chrome untuk menonaktifkan dialog peringatan self-xss sepenuhnya.
Kesimpulan
Bagaimana pendapat Anda tentang strategi ini untuk mengurangi serangan self-XSS? Jika Anda memiliki komentar atau saran, tambahkan komentar ke bug ini atau hubungi kami menggunakan salah satu metode berikut.
Terutama jika Anda sedang menangani situs yang memperingatkan tentang serangan self-XSS melalui log konsol, kami ingin membahas cara menyelaraskan upaya kami atau mengukur dampak dari tindakan mitigasi self-XSS.
Mendownload saluran pratinjau
Sebaiknya gunakan Chrome Canary, Dev, atau Beta sebagai browser pengembangan default Anda. Saluran pratinjau ini memberi Anda akses ke fitur DevTools terbaru, memungkinkan Anda menguji API platform web canggih, dan membantu Anda menemukan masalah di situs sebelum pengguna menemukannya.
Hubungi tim Chrome DevTools
Gunakan opsi berikut untuk membahas fitur baru, update, atau hal lain yang terkait dengan DevTools.
- Kirim masukan dan permintaan fitur kepada kami di crbug.com.
- Laporkan masalah DevTools menggunakan Opsi lainnya > Bantuan > Laporkan masalah DevTools di DevTools.
- Tweet ke @ChromeDevTools.
- Berikan komentar di video YouTube Yang baru di DevTools atau video YouTube Tips DevTools.