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

Tıklama hırsızlığı

10 dk okumaGüvenlik

Clickjacking, kötü amaçlı bir sayfanın sahte içeriğin üzerine görünmez bir iframe yerleştirdiği saldırıdır. Kullanıcı cazip bir düğmeye tıkladığını düşünüyor; aslında farklı bir siteyi içeren gizli bir çerçevenin içine tıklıyorlar. Klasik vaka, kullanıcıların hiç görmedikleri Facebook sayfalarını "beğenmesine" neden oldu. Modern varyantlar ödemeleri ve hesap değişikliklerini çalar.

Makalenin tam metni aşağıda İngilizce olarak verilmektedir.

Clickjacking (aynı zamanda kullanıcı arayüzü düzeltme veya çerçeveleme saldırısı olarak da bilinir), kullanıcıları algıladıklarından farklı bir şeye tıklamaları için kandırır. Saldırgan, hedef siteyi görünmez bir iframe'e yükler, onu bir tuzak arayüzü üzerine konumlandırır ve bekler. Kullanıcı görünen tuzağa tıklar; tıklama gizli iframe'e gelir; hedef site kullanıcıdan normal bir etkileşim görüyor.

Klasik örnek

2008: Araştırmacılar, çekici yem içeriğinin üzerine görünmez Facebook "Beğen" düğmelerinin yerleştirildiğini gösterdi ("Bir iPad kazanmak için buraya tıklayın!"). Kullanıcılar yemi tıkladı; tarayıcıları saldırganın Facebook sayfasını sessizce beğendi. Beğeniler gerçekti; kullanıcı Facebook'ta oturum açmıştı, tarayıcı normal çerezler gönderiyordu, Facebook gerçek bir kimliği doğrulanmış tıklama gördü.

Aynı model tüm kullanıcı arayüzü eylemleri için işe yarar: ayarları değiştirmek, OAuth izinleri vermek, para aktarmak, satın alma işlemlerini onaylamak. Oturum açmış bir kullanıcının tek tıklamayla bir şey yapabildiği her yerde, tıklama hırsızlığı potansiyel olarak bunu farkında olmadan yapmasına neden olabilir.

Mekanik

Klasik uygulama:



İframe tam olarak cazip düğme görüntüsünün üzerine konumlandırılmıştır ancak sıfır opaklıkla oluşturulmuştur. Kullanıcı görüntüyü görür; tıklama iframe'e gider. CSS konumlandırma, tıklamanın çerçeveli sayfa içindeki belirli bir düğmeye gitmesi için saldırganın koordinatlara ince ayar yapmasına olanak tanır.

Defenses

İki ana mekanizma:

  • X-Frame-Options başlığı. Tarayıcılara sayfanın iframe'lere gömülüp gömülemeyeceğini söyleyen daha eski HTTP başlığı. Değerler: DENY (asla çerçeveleme), SAMEORIGIN (yalnızca aynı site çerçeveleme), ALLOW-FROM (kullanımdan kaldırıldı). Yaygın olarak desteklenir, dağıtımı kolaydır.
  • İçerik Güvenliği Politikası: çerçeve ataları yönergesi. Modern alternatif. İçerik-Güvenlik-Politikası: çerçeve ataları 'yok' veya 'kendisi' veya belirli kökenler. X-Frame-Options'tan daha esnektir.

Her iki başlık da (veya her ikisi) standart savunmadır. Bunlara sahip olmayan siteler çerçevelemeye karşı savunmasızdır.

Çeşitler ve komplikasyonlar

  • Cursorjacking. Görünür imleci gerçek tıklama hedefinden yanlış hizalayan CSS hileleri. Büyük ölçüde modern tarayıcılar tarafından düzeltildi ancak tarihsel olarak gerçek.
  • Tuş vuruşu girişi. Klavye girişi için benzer konsept — odak görünmez bir iframe üzerindedir.
  • Sürükle ve bırak çerçeveleme. Kullanıcı, içeriği gizli bir çerçeveye sürüklemeye teşvik edilir, muhtemelen kimlik bilgileri veya data.
  • Çoklu tıklama ayarları. Bazı saldırılar, kullanıcının birden fazla belirli noktaya tıklamasını gerektirir; bir dizi tuzak, kullanıcıyı tüm akış boyunca cezbeder.
  • Mobilde dokunmaya dayalı tıklama hırsızlığı. Dokunma hedefleri daha büyüktür ve anlaşılması daha kolaydır; mobil tarayıcıların katmanlı savunmaları vardır ancak yüzey aynıdır.

Tıklama hırsızlığı neyi başarabilir

  • LSosyal hesapları beğenme/takip etme
  • OAuth izinlerini yetkilendirme (saldırgan uygulamalara verilerinize erişim izni verme)
  • Hesap ayarlarını değiştirme (e-posta, şifre) kurtarma)
  • Satın almaları veya aktarımları onaylama
  • Web uygulamalarında kamera/mikrofon izni verme
  • Bağlı hizmetlerde derin bağlantılı eylemleri etkinleştirme

Saldırı, kullanıcının hedef sitede oturum açmasına ve tıklaması için kandırılmasına dayanır. Hasar, tek bir tıklamanın hedef üzerinde ne kadar etkili olabileceğine göre ölçeklenir.

Korumalı alan içindeki iframe'ler ve modern web

Modern web platformları, tıklama hırsızlığını karmaşıklaştıran çeşitli özellikler içerir:

  • Cross-Origin-Opener-Policy, gezinmeyi izole eder contexts
  • İzinler API, hassas işlemler (kamera, mikrofon vb.) için açık istemler gerektirir
  • Gerekli kullanıcı hareketi — birçok yüksek etkili API (panoya yazma, tam ekran, açılır pencereler) yalnızca kullanıcı tıklamalarına yanıt olarak çalışır ve sessizliği kısmen yener overlay

Yaygın olarak kullanılan X-Frame Seçenekleri ve CSP çerçeve atalarıyla birleştiğinde, iyi yapılandırılmış sitelere karşı klasik tıklatma on yıl öncesine göre çok daha zordur. Bu kategori daha nadirdir ancak nesli tükenmemiştir.

Geliştiriciler için

  • Kimliği doğrulanmış her sayfada çerçeve atalarını veya X-Frame Seçeneklerini ayarlayın
  • Yerleştirme dostu sayfalar (videolar, widget'lar) için, izin verilen üst öğeler hakkında spesifik olun
  • Kimliği doğrulanmış oturumlardan bile kritik eylemler (şifre, MFA) için adım adım onay iste
  • Şu işlemler için çerçeveleme kaynağını doğrulamak amacıyla Origin başlığını kullanın: Embeds'ten yasal olarak çalışın

Kullanıcılar için

İstemci tarafında tıklama korsanlığını kolayca tespit edemezsiniz; mesele bu. Savunmalar sunucu tarafındadır. Genel hijyen yardımcı olur: Oturum açmanız gerekmeyen hesaplarda oturumunuzu açık tutmayın, işiniz bittiğinde hassas hizmetlerden çıkış yapın, gerçek olamayacak kadar iyi teklifler içeren yabancı sayfalara karşı dikkatli olun.

Sık sorulan sorular

Reklam engelleyici tıklama hırsızlığına karşı yardımcı olur mu?
Kısmen — bazı reklam engelleyiciler şüpheli kaynaklardan iframe'leri çıkarır. Güvenliği ihlal edilmiş meşru bir sitede tıklama yapılması engellenmeyecektir. Güvenilir savunma, istemci tarafı filtrelemesi değil, sunucu tarafıdır (çerçeve ataları).
Mobil uygulamalar tıklama hırsızlığına karşı savunmasız mıdır?
Web'den daha az çünkü mobil kullanıcı arayüzü aynı kaplama mekaniğine sahip değil. Mobil eşdeğerleri (Android'de yer paylaşımı izinleri aracılığıyla "dokunma hırsızlığı") mevcuttur, ancak işletim sistemi tarafından aşamalı olarak kilitlenmiştir. Modern Android, SYSTEM_ALERT_WINDOW yer paylaşımı izni için açık kullanıcı izni gerektirir.
Saldırıya neden "kriko" adı veriliyor?
Portmanteau "tıklama hırsızlığı", 2008 yılında Jeremiah Grossman ve Robert Hansen tarafından icat edildi. Saldırganlar tarafından meşru tıklamaların ele geçirilmesini yakalıyor.
Bir sitenin kendisinin çerçevelenmesine izin verip vermediğini nasıl kontrol ederim?
Geliştirici araçları veya basit bir HTML sayfası aracılığıyla onu bir iframe'e yüklemeyi deneyin. Sayfa iframe'in içinde yükleniyorsa çerçeve koruma başlıkları eksiktir ve tıklama hırsızlığına karşı savunmasız olabilir. Birçok güvenlik tarayıcısı bunu otomatik olarak kontrol eder.
Clickjacking son zamanlarda büyük olaylara neden oldu mu?
2008-2015 zirvesinden daha az, ancak hata ödül platformları hala daha küçük sitelerde tıklama hırsızlığı raporları görüyor. Büyük siteler genellikle uygun başlıklara sahiptir. Daha az bakımı yapılan yönetici arayüzleri, dahili araçlar ve eski SaaS, tıklama yüzeylerinin göründüğü yerlerdir.
Clickjacking'in Açıklaması: Görmediklerinizi Tıklatmanızı Sağlayan Kullanıcı Arayüzü Hilesi