Kerentanan dalam filter AdBlock dan uBlock memungkinkan kode arbitrer untuk dieksekusi di sisi pengguna

Di bawah sejumlah kondisi, opsi filter $rewrite , diimplementasikan di AdBlock, AdBlock Plus, dan uBlock dengan pembaruan 3.2 tanggal 17 Juli 2018 , memungkinkan kode arbitrer untuk dieksekusi pada halaman web yang ditampilkan kepada pengguna, laporan blog armin.dev blog .

Berikut adalah bagaimana fungsi masalah dijelaskan di tambalan AdBlock itu sendiri:
Patch ini mengimplementasikan opsi filter $rewrite baru, yang memungkinkan penulis daftar filter untuk mencegah tampilan (terutama video) dari iklan yang sebelumnya tidak dapat diblokir di sejumlah situs web.
Kerentanan yang dijelaskan memengaruhi ketiga pemblokir iklan yang disebutkan, yang total pemirsa melebihi 100 juta pengguna. Anda dapat menggunakannya untuk menyerang layanan web apa pun, termasuk tetapi tidak terbatas pada, misalnya, sumber daya Google apa pun. Masalahnya tersebar luas, yaitu, serangan dengan kesuksesan yang sama dapat dilakukan pada browser populer dan tidak tergantung pada versinya.

Kerentanan berlangsung selama hampir 9 bulan dan baru ditemukan sekarang.

Inti dari serangan itu


Sumber blogger menjelaskan bahwa opsi $rewrite digunakan oleh AdBlock dan pemblokir lain yang disebutkan untuk menghindari pelacakan pengguna dan memblokir iklan dengan mengarahkan permintaan dari halaman web yang dikunjungi. Jadi, $rewrite memungkinkan Anda untuk mengarahkan ulang dan tidak memproses permintaan seperti SCRIPT , SUBDOCUMENT , OBJECT dan OBJECT_SUBREQUEST .

Serangan dapat terjadi jika situs web menggunakan XMLHttpRequest atau Fetch untuk mengunduh dan mengeksekusi cuplikan kode, sembari mengizinkan permintaan sewenang-wenang dibuat.

Artinya, untuk melakukan serangan, tiga syarat harus dipenuhi:

  1. Halaman web harus memuat string JS menggunakan XMLHttpRequest atau Fetch dan jalankan kode yang dikembalikan.
  2. Halaman web tidak boleh menggunakan arahan validasi Kebijakan Keamanan Konten dan tidak boleh memverifikasi URL final sebelum mengeksekusi kode yang diunduh.
  3. Sumber kode yang diekstraksi harus mendukung pengalihan sisi server atau mengandung konten yang dibuat pengguna secara sewenang-wenang.

Tampaknya ada banyak kondisi, dan CSP jauh dari hal baru di dunia pengembangan web. Namun, ancaman utama terhadap kerentanan yang ditemukan bukan pada cara kerjanya, tetapi bagaimana penyebarannya.

Karena sistem filter AdBlock, AdBlock Plus, dan uBlock rentan, cara untuk "menginfeksi" korban terakhir sangat sederhana - melalui sistem pembaruan otomatis filter. Bukan rahasia lagi bahwa sebagian besar pengguna menggunakan filter yang sudah jadi, tetapi tidak mengkonfigurasinya sendiri. Dalam hal ini, pembuat paket filter dapat meluncurkan pembaruan berbahaya, melakukan serangan, dan kemudian "menggulung" paket, dengan demikian "menyapu trek".

Cara untuk bertarung


Cara termudah untuk melindungi diri Anda dari kerentanan yang disebutkan adalah beralih ke uBlock Origin. Pemblokir iklan ini tidak mendukung fungsi $rewrite , artinya, mustahil untuk mengimplementasikan serangan yang dijelaskan di dalamnya.

Jika tidak, dengan risiko Anda sendiri, Anda harus menunggu pembaruan AdBlock berikutnya. Secara harfiah beberapa jam setelah publikasi di blog armin.dev, entri blog ini muncul di blog blocker resmi sebagai tanggapan atas kerentanan $rewrite .

Di dalamnya, administrasi AdBlock memastikan bahwa meskipun kerentanannya spesifik, mereka sangat berhati-hati tentang keamanan audiens mereka dan pada pembaruan berikutnya fungsi $rewrite akan dihapus dari AdBlock.

Juga, menurut jaminan administrasi, mereka memeriksa semua daftar filter dan mengeceknya sekarang. Berdasarkan hasil audit, administrasi melaporkan bahwa tidak ada daftar filter yang ada yang menjelaskan metode menyerang pengguna yang terkandung. Mengingat bahwa hanya sekitar empat jam telah berlalu antara waktu posting asli diposting dan respons terhadap blog AdBlock, kami hanya akan bersukacita pada responsif dari tim pemblokir.

Pada saat yang sama, menghapus fungsi $rewrite dari proyek adalah langkah mundur untuk AbBlock, karena awalnya dibuat untuk memerangi iklan video pop-up. Sekarang dia akan kembali demi keamanan universal. Selain itu, kecepatan yang diputuskan untuk sepenuhnya menghapus $rewrite dari proyek menunjukkan bahwa, meskipun serangan itu spesifik, konsekuensi dari perilaku massanya terlalu menakutkan.

Source: https://habr.com/ru/post/id448302/


All Articles