Saya ingin berbagi dengan Anda hasil penelitian saya tentang keadaan saat ini dalam proses deanonimisasi menggunakan teknik clickjacking. Dengan deanonimisasi, maksud saya adalah kemampuan situs web jahat untuk mengungkapkan identitas pengunjung, termasuk nama lengkapnya dan kemungkinan informasi lainnya. Saya tidak memberikan informasi baru di sini yang sebelumnya tidak diketahui publik, tetapi saya sangat terkejut mengetahui betapa mudahnya melanggar privasi pengunjung dan mengungkapkan identitasnya, bahkan jika Anda mengikuti praktik terbaik dan menggunakan browser modern dan sistem operasi.
Semuanya dimulai dengan Google YOLO
Perjalanan saya dimulai ketika saya menemukan
posting blog hebat
bernama Google YOLO , yang ditulis oleh
@filedescriptor , tentang kerentanan clickjacking Google YOLO (You Only Login Once) widget web yang menyediakan otorisasi sebaris satu-klik pada situs web . Saya sangat menyarankan Anda mampir dan membaca posting blog yang menggambarkan dan secara interaktif menunjukkan teknik clickjacking.
Singkatnya, masalah privasi adalah bahwa Anda dapat membuat situs web dengan widget Google YOLO dan menyembunyikannya sebagai tombol yang tidak berbahaya. Ketika Anda mengklik tombol yang tidak berbahaya pada pandangan pertama, korban tanpa sadar masuk dengan akun Google-nya, mentransfer identitasnya kepada pemilik situs web, termasuk nama lengkap dan alamat emailnya.
Seringkali, ini tidak terlalu penting, karena banyak situs web yang kemungkinan besar sudah mengetahui identitas Anda. Namun demikian, masalah ini dapat memiliki konsekuensi yang tidak menyenangkan. Pertimbangkan, misalnya, mengisi survei yang diduga anonim. Karena Anda belum pernah mengunjungi situs web ini, Anda mungkin berpikir bahwa itu tidak memiliki kemampuan untuk mengaitkan jawaban Anda dengan identitas Anda, tetapi ini sama sekali tidak.
Ketika saya pertama kali menemukan posting blog Google YOLO, Google telah
memperbaiki masalah dengan membatasi fitur hanya untuk situs web afiliasi. Posting blog ini juga menjelaskan clickjacking menggunakan widget Suka Facebook, tetapi ketika Anda mengklik tombol, widget meminta konfirmasi:

Permintaan konfirmasi membuat serangan ini tidak mungkin - bahkan jika korban secara tidak sadar mengklik tombol Suka dua kali, dia masih harus mengkonfirmasi tindakannya di jendela sembulan. Popup tidak dapat dimodifikasi oleh situs penyerang dan karenanya tidak terkena serangan clickjacking. Kelemahan dari solusi ini adalah penggunaannya menjadi kurang nyaman, membutuhkan tindakan tambahan setiap saat, bahkan untuk penggunaan tombol “Suka” yang disengaja.
Akibatnya, saya sampai pada kesimpulan bahwa perusahaan-perusahaan besar telah menyelesaikan masalah ini, dan untuk sementara waktu saya melupakannya, sampai saya memiliki ide baru ...
Widget komentar Facebook: "typejacking"
Suatu hari, saat berjalan di Internet, saya menemukan sebuah situs web yang menggunakan
widget komentar Facebook untuk memungkinkan pengunjung mengomentari halaman pihak ketiga. Pada saat itu, saya ingat apa yang saya baca sebelumnya dan pikirkan: masalah clickjacking diselesaikan oleh perusahaan besar, tetapi bagaimana dengan “typejacking”? Bagaimana jika saya mengambil widget komentar dan menempelkannya ke situs web saya, menyamarkannya sebagai bentuk yang tidak terkait? Kemudian, jika saya bisa meyakinkan korban untuk memasukkan teks di dalamnya, teks apa saja, dan mengirimkannya sebagai komentar Facebook ke halaman saya, saya dapat mengetahui identitasnya dengan memeriksa di Facebook akun mana yang baru saja diposting komentar.
Dengan pemikiran ini, saya mulai bekerja pada halaman web yang menunjukkan teknik ini. Dalam prosesnya, saya tidak sengaja menemukan bahwa widget "Suka", yang bagi saya memerlukan konfirmasi, berfungsi tanpa konfirmasi di halaman web saya! Membaca tentang widget di Internet, saya menemukan bahwa Facebook, tidak seperti Google, menggunakan daftar hitam untuk melindungi terhadap clickjacking.
Cara Facebook memutuskan untuk melindungi penggunanya dari clickjacking dapat melindunginya dari koleksi suka besar - Facebook mungkin memperhatikan bahwa sejumlah besar suka datang dari satu situs, menambahkan konfirmasi, dan bahkan membatalkan suka. Tetapi ini tidak melindungi dari ancaman deanonimisasi. Seorang penyerang dapat dengan mudah membuat situs web baru dan menggunakan clickjacking dengan widget "Suka", kemudian mengirim halaman ke sejumlah korban dan mengungkapkan identitas mereka dengan melacak suka Facebook.
Yang mengejutkan saya, teknik likejacking, sebuah istilah yang menggambarkan teknik clickjacking untuk mendapatkan suka, telah diketahui
setidaknya sejak 2010 . Dan hari ini, 9 tahun kemudian, itu masih relevan. Juga, ketika datang ke "likejacking," masalah deanonimisasi jarang disebutkan. Masalah deanonimisasi ditulis untuk umum, paling tidak
sejauh tahun 2012 , tetapi tetap saja, saya percaya bahwa tidak banyak orang yang tahu tentang itu, terutama untuk zaman kita, ketika semakin banyak orang memahami pentingnya privasi di Internet.
Sedangkan untuk teknik mengetik, saya masih menambahkan
halaman web yang menunjukkan serangan itu . Anda dapat mencoba sendiri atau menonton video:
Clickjacking, typejacking ... apa lagi?
Merenungkan teknik clickjacking, saya bertanya-tanya apa lagi yang bisa dilakukan dengan menggunakan kemampuan untuk memasukkan dan memanipulasi widget pihak ketiga di situs web berbahaya. Teknik clickjacking dan typejacking dirancang untuk interaksi pengguna dengan widget. Bagaimana jika sebaliknya kami meyakinkan pengguna untuk memberikan kami informasi dari widget?
Ternyata seseorang sudah memikirkannya sebelum saya. Pencarian cepat membawa saya ke artikel
Tell Me About Yourself: The Malicious CAPTCHA Attack , yang menganalisis teknik ini. Berikut adalah contoh dari artikel yang menunjukkan bagaimana seorang penyerang bisa menipu korban dan tanpa sadar mengungkapkan namanya dengan menutupi widget sebagai captcha yang tidak bersalah:

Pencegahan clickjacking untuk pemilik situs
Masih belum ada cara yang dapat diandalkan untuk mencegah clickjacking.
Pada tahun 2009, header HTTP
X-Frame-Options diperkenalkan, yang menawarkan perlindungan parsial terhadap clickjacking. Header memungkinkan pemilik situs web untuk menentukan halaman mana yang tidak boleh dalam bingkai. Browser yang mendukung header akan menolak memuat halaman-halaman ini dalam sebuah bingkai. Meskipun ini mencegah clickjacking dalam beberapa kasus, itu tidak membantu dengan widget yang perlu dimuat dalam bingkai, seperti widget "Suka" atau widget komentar.
Melihat tajuk
X-Frame-Options , saya bertanya-tanya mengapa tidak membuat opsi serupa yang akan memberikan ukuran perlindungan sementara masih memungkinkan halaman web memuat dalam bingkai? Pikirkan, misalnya, widget "Suka": apakah ada alasan yang bagus untuk menggambar halaman web di atas tombol? Ubah ukuran atau tombol transparansi? Apakah ada manipulasi lain seperti filter CSS? Satu-satunya alasan yang dapat saya bayangkan adalah clickjacking. Mengapa tidak memperkenalkan opsi
X-Frame-Options baru , seperti
X-Frame-Options: Isolate , yang memungkinkan halaman web memuat di dalam frame, tetapi memastikan bahwa frame tidak dapat diubah ukurannya dan situs web induk tidak dapat menarik dia. Seperti dengan ide-ide sebelumnya,
dan seseorang sudah menyarankan ini kepada saya .
Meskipun browser tidak menerapkan perlindungan seperti itu, pemilik situs web hanya memiliki satu opsi: memerlukan interaksi tambahan dengan pengguna, misalnya, menggunakan jendela sembul yang terpisah. Kami melihat bahwa Facebook melakukan ini dengan widget "Suka", tetapi hanya untuk situs web yang mencurigakan yang dihosting. Jelas, Facebook lebih menghargai kenyamanan pengguna daripada privasi mereka.
Pembaruan: Ternyata Chrome memberi pemilik widget kemampuan untuk mendeteksi clickjacking menggunakan fungsi
Intersection Observer v2 . Fitur ini diaktifkan secara default dimulai dengan Chrome 74, dirilis pada April 2019. Sayangnya, saat ini hanya Chrome yang mengimplementasikannya, dan itu tidak mudah digunakan - setidaknya lebih sulit daripada menambahkan header. Lihat
Kepercayaan yang Baik, Pengamatan Lebih Baik untuk informasi lebih lanjut.
Pencegahan Clickjacking untuk Pengguna
Setelah mencoba beberapa solusi, saya sampai pada kesimpulan bahwa memblokir cookie pihak ketiga adalah cara terbaik untuk mencegah kebocoran informasi melalui clickjacking. Ini tidak mencegah teknik clickjacking itu sendiri, tetapi karena frame yang disematkan tidak menerima cookie pengunjung, frame ini tidak akan sangat berguna bagi penyerang.
Plus, opsi untuk memblokir cookie pihak ketiga adalah pada sebagian besar browser opsi ini sudah ada pada awalnya. Tidak perlu menginstal ekstensi pihak ketiga atau mencari solusi berbeda untuk browser atau perangkat yang berbeda.
Kelemahannya adalah widget seperti widget Suka atau widget komentar akan berhenti berfungsi di semua situs. Saya tidak terlalu merindukan mereka, tetapi mungkin opsi ini tidak cocok untuk semua orang.
Keuntungan lain dari pemblokiran cookie pihak ketiga adalah bahwa pemblokiran dapat melindungi dari serangan saluran-samping yang tidak memerlukan intervensi pengguna. Sebagai contoh,
metode ini menunjukkan penggunaan CSS3 untuk mendanonimisasi pengguna Facebook tanpa interaksi pengguna tambahan dengan halaman web. Contoh lain dari kerentanan lama namun menarik yang dapat dicegah dengan memblokir cookie pihak ketiga adalah
Pencurian lintas-domain lintas-generik , yang menggunakan celah dalam spesifikasi CSS untuk memaksa browser untuk menggunakan halaman asal-silang sebagai CSS dan akses ke informasi spesifik (
masalah proyek Chromium ).
Kesimpulan
Di antara semua detail historis dan teknis dalam artikel ini, ada rekomendasi yang ingin saya tekankan lagi: pertimbangkan memblokir cookie pihak ketiga untuk meningkatkan perlindungan identitas Anda di Internet.
Saya harap artikel ini membantu meningkatkan kesadaran tentang teknik clickjacking yang telah dikenal sejak 2010 dan belum terselesaikan. Mungkin vendor browser akan mempertimbangkan memperkenalkan langkah-langkah untuk mencegahnya, untuk membatasi manipulasi bingkai.
PS On Habré menulis tentang
masalah serupa di situs web VKontakte 5 tahun yang lalu. Tampaknya demo tidak lagi berfungsi (Anda perlu mengonfirmasi tindakan di jendela sembulan), tetapi, seperti yang Anda lihat, temanya masih relevan. Mungkin di VKontakte ada widget lain yang dapat Anda gunakan, misalnya, widget komentar. Namun, sayangnya, dalam artikel itu, penulis tidak menyebutkan pemblokiran cookie pihak ketiga.