Cara Chrome DevTools membantu melindungi diri dari serangan XSS sendiri

Wolfgang Beyer
Wolfgang Beyer

Apa itu serangan {i>self-XSS<i}?

Self-XSS, atau pembuatan skrip lintas situs mandiri, adalah jenis serangan manipulasi psikologis yang mengelabui Anda agar menjalankan kode berbahaya di browser web. Tidak seperti serangan XSS biasa, yang mengandalkan kerentanan di aplikasi web yang memungkinkan penyerang memasukkan kode berbahaya, serangan mandiri XSS mengandalkan tindakan eksekusi kode potensial Anda.

Serangan Self-XSS biasanya melibatkan penyerang yang mengelabui Anda agar menyalin dan menempelkan kode berbahaya ke Konsol DevTools browser. Penyerang biasanya melakukan hal ini dengan menjanjikan semacam hadiah. Ini mungkin:

  • Menjanjikan bahwa kode tersebut akan memberi Anda akses ke fitur tersembunyi atau reward virtual.
  • Berpura-pura bahwa kode tersebut adalah uji keamanan atau perbaikan bug.
  • Menjanjikan bahwa kode tersebut memungkinkan peretasan ke situs untuk mendapatkan keuntungan Anda.

Setelah Anda mengeksekusi kode tersebut, penyerang kemudian dapat mengambil alih 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 self-XSS?

Membiarkan pengguna menempelkan kode ke DevTools lalu mengeksekusinya sangat berisiko. Namun, ini juga merupakan salah satu fitur inti dari 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. Sebagian besar developer sangat menyadari risiko keamanan saat mengeksekusi kode yang mereka temukan di sudut web yang tersembunyi.

Chrome DevTools memercayai developer untuk mengetahui apa yang mereka lakukan. Kita tidak ingin memperlambat mereka atau mengalihkan perhatian mereka dengan cara apa pun ketika mereka menyalin dan menempelkan kode.

Menurut kami, non-developer berisiko jauh lebih tinggi menjadi korban serangan self-XSS. Untuk melindungi Anda, kami percaya bahwa menginterupsi dapat diterima dan bermanfaat saat Anda melakukan hal yang berpotensi berbahaya. Saat Chrome DevTools mendeteksi bahwa pengguna yang tidak berpengalaman mencoba menempelkan kode ke DevTools, Chrome 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: hal ini didasarkan pada histori konsol profil pengguna Anda.

Jika profil Anda memiliki minimal 5 entri di histori konsolnya, DevTools tidak akan mengganggu 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 self-XSS?

Jika pengguna yang tidak berpengalaman mencoba menempelkan kode ke Konsol, tindakan ini akan diblokir dan Konsol akan menampilkan peringatan.

Peringatan XSS mandiri di Konsol.

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 Sources), pengalaman pengguna akan sangat mirip. Anda akan melihat dialog modal, bukan peringatan.

Dialog modal self-XSS di panel Sources.

Sekali lagi, menutup dialog ini saja tidak cukup untuk mengaktifkan penempelan. Untuk mengganti peringatan, Anda perlu mengetik 'izinkan penempelan' ke dalam bidang masukan.

Apakah ini satu kali pengaturan?

Ya, setelah Anda memutuskan untuk mengizinkan penempelan, Anda tidak akan terganggu dengan peringatan self-XSS lagi.

Kami berharap hal ini mencapai kompromi yang baik antara kegunaan dan gangguan. Dengan menambahkan hambatan, kami meningkatkan kemungkinan Anda membaca peringatan, sehingga mengurangi kemungkinan keberhasilan serangan self-XSS.

Chrome DevTools menyimpan tanda yang menentukan apakah akan menampilkan peringatan XSS mandiri di profil Chrome atau tidak. Jadi, jika Anda membuat profil baru dan segera mulai menempelkan kode ke DevTools, penempelan 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 yang baru untuk setiap pengujian yang dijalankan. Jadi, jika Anda menggunakan DevTools untuk men-debug pengujian otomatis, menempelkan ke Konsol awalnya akan diblokir.

Untuk menghindari masalah ini, lakukan salah satu tindakan berikut:

  • Gunakan Chrome for Testing, berbagai Chrome yang dirancang khusus untuk pengujian dan otomatisasi. Peringatan Self-XSS 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

Apa pendapat Anda tentang strategi untuk memitigasi serangan {i>self-XSS<i} ini? Jika Anda memiliki komentar atau saran, tambahkan komentar ke bug ini atau hubungi kami menggunakan salah satu metode berikut.

Terutama jika Anda sedang mengerjakan situs web yang memperingatkan tentang serangan {i>self-XSS<i} melalui log konsol, kami ingin berbicara tentang menyelaraskan upaya kami atau mengukur dampak tindakan mitigasi self-XSS.

Mendownload saluran pratinjau

Pertimbangkan untuk menggunakan Chrome Canary, Dev, atau Beta sebagai browser pengembangan default Anda. Saluran pratinjau ini memberi Anda akses ke fitur DevTools terbaru, menguji API platform web mutakhir, dan menemukan masalah di situs Anda sebelum pengguna melakukannya.

Menghubungi tim Chrome DevTools

Gunakan opsi berikut untuk membahas fitur dan perubahan baru dalam postingan, atau hal lain yang terkait dengan DevTools.

  • Kirim saran atau masukan kepada kami melalui crbug.com.
  • Laporkan masalah DevTools menggunakan Opsi lainnya   Lainnya   > Bantuan > Laporkan masalah DevTools di DevTools.
  • Tweet di @ChromeDevTools.
  • Tulis komentar di Video YouTube yang baru di DevTools atau Tips DevTools Video YouTube.