[invisible iframe]Delete AccountClick to Win!click lands on iframe behind decoy

Clickjacking

10 min bacaKeselamatan

Clickjacking ialah serangan di mana halaman berniat jahat menindih iframe yang tidak kelihatan ke atas kandungan tipuan. Pengguna fikir mereka sedang mengklik butang yang menggoda; mereka sebenarnya mengklik dalam bingkai tersembunyi yang mengandungi tapak lain. Kes klasik itu membuatkan pengguna "suka" halaman Facebook yang tidak pernah mereka lihat. Varian moden mencuri pembayaran dan perubahan akaun.

Badan artikel penuh disediakan dalam bahasa Inggeris di bawah.

Clickjacking (juga dipanggil pembetulan UI atau serangan pembingkaian) menipu pengguna untuk mengklik pada sesuatu yang berbeza daripada apa yang mereka anggap. Penyerang memuatkan tapak sasaran dalam iframe yang tidak kelihatan, meletakkannya di atas antara muka umpan dan menunggu. Pengguna mengklik pada umpan yang kelihatan; klik mendarat pada iframe tersembunyi; tapak sasaran melihat interaksi biasa daripada pengguna.

Contoh klasik

2008: Penyelidik menunjukkan tindanan butang "Suka" Facebook yang tidak kelihatan pada kandungan umpan yang menarik ("Klik di sini untuk memenangi iPad!"). Pengguna mengklik umpan; penyemak imbas mereka secara senyap menyukai halaman Facebook penyerang. Suka adalah sahih — pengguna telah log masuk ke Facebook, penyemak imbas menghantar kuki biasa, Facebook melihat klik yang disahkan sebenar.

Corak yang sama berfungsi untuk sebarang tindakan UI: menukar tetapan, memberikan kebenaran OAuth, memindahkan dana, mengesahkan pembelian. Di mana-mana sahaja pengguna log masuk boleh melakukan sesuatu dengan satu klik, clickjacking berpotensi membuatkan mereka melakukannya tanpa disedari.

Mekanik

Pelaksanaan klasik:



Iframe diletakkan tepat di atas imej butang yang menggoda tetapi dipaparkan dengan kelegapan sifar. Pengguna melihat imej; klik pergi ke iframe. Kedudukan CSS membolehkan penyerang memperhalusi koordinat supaya klik hinggap pada butang tertentu di dalam halaman berbingkai.

Defenses

Tdua mekanisme utama:

  • X-Frame-Options pengepala dalam tells HTTPS28X yang mengepalai penyemak imbas O. iframes. Nilai: DENY (tidak pernah bingkai), SAMEORIGIN (hanya pembingkaian tapak yang sama), BENARKAN-DARI (ditamatkan). Disokong secara meluas, mudah untuk digunakan.
  • Dasar Keselamatan Kandungan: arahan bingkai-nenek moyang. Pengganti moden. Content-Security-Policy: frame-nenek moyang 'tiada' atau 'self' atau asal-usul tertentu. Lebih fleksibel daripada X-Frame-Options.

Sama ada pengepala (atau kedua-duanya) ialah pertahanan standard. Tapak tanpa tapak adalah mudah terjejas pembingkaian.

Varian dan komplikasi

  • Cursorjacking. Helah CSS yang salah menjajarkan kursor yang boleh dilihat daripada sasaran klik sebenar. Dibetulkan sebahagian besarnya oleh penyemak imbas moden tetapi dari segi sejarah adalah nyata.
  • Keystroke bicu. Konsep yang sama untuk input papan kekunci — fokus adalah pada iframe yang tidak kelihatan.
  • Seret dan lepas pembingkaian. Pengguna mungkin dipindahkan ke bingkai tersembunyi atau seret ke dalam bingkai tersembunyi. data.
  • Persediaan berbilang klik. Sesetengah serangan memerlukan pengguna mengklik berbilang titik tertentu; jujukan umpan memikat pengguna melalui keseluruhan aliran.
  • Tjancing klik berasaskan sentuhan pada mudah alih. Sasaran ketik lebih besar dan lebih mudah untuk dikaburkan; penyemak imbas mudah alih mempunyai pertahanan berlapis tetapi permukaannya kekal.

Apa yang boleh dicapai oleh clickjacking

  • LMenyukai/mengikuti akaun sosial
  • Membenarkan kebenaran OAuth (memberi apl penyerang akses kepada data anda)Membuat tetapan ZPLXPLZ71CXXhang pada akaun ZPLX71CXXhang pemulihan)
  • Mengesahkan pembelian atau pemindahan
  • Memberi kebenaran kamera/mikrofon pada aplikasi web
  • Mendayakan tindakan berpautan dalam pada perkhidmatan yang disambungkan

Serangan bergantung pada klikan pengguna dan dilog masuk ke sasaran. Kerosakan berskala dengan sejauh mana kesan satu klik pada sasaran.

Iframe berkotak pasir dan web moden

Platform web moden termasuk pelbagai ciri yang merumitkan clickjacking:

  • Cross-Origin-PolicXsolXsing ip9 contexts
  • Permissions API memerlukan gesaan eksplisit untuk operasi sensitif (kamera, mikrofon, dsb.)
  • Gerak isyarat pengguna yang diperlukan — banyak API berimpak tinggi (dalam penulisan papan klip timbul sahaja) pada skrin penuh, klik pada skrin penuh pengguna, klik pada papan klip timbul sahaja tindanan

Digabungkan dengan X-Frame-Options yang digunakan secara meluas dan nenek moyang bingkai CSP, clickjacking klasik terhadap tapak yang dikonfigurasikan dengan baik adalah lebih sukar berbanding sedekad yang lalu. Kategori ini lebih jarang tetapi tidak pupus.

Untuk pembangun

  • Tetapkan nenek moyang bingkai atau X-Frame-Options pada setiap halaman yang disahkan
  • Untuk halaman mesra benam (video, widget), jelaskan tentang ibu bapa yang dibenarkan
  • Memerlukan pengesahan langkah untuk tindakan kritikal sesi genap (kata laluan, MFAPL8X)sekata laluan, MFA. pengepala Origin untuk mengesahkan sumber pembingkaian untuk tindakan yang sah beroperasi daripada embeds

Untuk pengguna

Anda tidak boleh mengesan clickjacking sebelah klien dengan mudah — itulah maksudnya. Pertahanan adalah bahagian pelayan. Kebersihan umum membantu: jangan kekal log masuk ke akaun yang anda tidak perlu masuk, log keluar daripada perkhidmatan sensitif apabila selesai, berhati-hati dengan halaman yang tidak dikenali dengan tawaran yang terlalu bagus untuk menjadi benar.

Soalan lazim

Adakah penyekat iklan membantu menentang clickjacking?
Sebahagiannya — sesetengah penyekat iklan menanggalkan iframe daripada sumber yang disyaki. Clickjacking pada tapak terjejas yang sah tidak akan disekat. Pertahanan yang boleh dipercayai adalah bahagian pelayan (kerangka-nenek moyang), bukan penapisan sisi klien.
Adakah apl mudah alih terdedah kepada clickjacking?
Kurang daripada web kerana UI mudah alih tidak mempunyai mekanik tindanan yang sama. Setara mudah alih ("tapjacking" pada Android melalui kebenaran tindanan) wujud tetapi telah dikunci secara berperingkat oleh OS. Android moden memerlukan geran pengguna eksplisit untuk kebenaran tindanan SYSTEM_ALERT_WINDOW.
Mengapa serangan itu dipanggil "jacking"?
Portmanteau "click-jacking" telah dicipta oleh Jeremiah Grossman dan Robert Hansen pada tahun 2008. Ia menangkap rampasan klik yang sah oleh penyerang.
Bagaimanakah saya boleh menyemak sama ada tapak membenarkan dirinya dibingkaikan?
Cuba muatkannya dalam iframe melalui alat pembangun atau halaman HTML mudah. Jika halaman dimuatkan di dalam iframe, ia tiada pengepala perlindungan bingkai dan mungkin terdedah kepada clickjacking. Banyak pengimbas keselamatan menyemak ini secara automatik.
Adakah clickjacking menyebabkan insiden besar baru-baru ini?
Kurang daripada semasa puncak 2008-2015, tetapi platform hadiah pepijat masih melihat laporan clickjacking pada tapak yang lebih kecil. Tapak utama biasanya mempunyai pengepala yang betul. Antara muka pentadbir yang kurang diselenggara, alatan dalaman dan SaaS warisan ialah tempat permukaan clickjacking muncul.
Clickjacking Dijelaskan: Trik UI Yang Membuat Anda Klik Perkara yang Anda Tidak Nampak