Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

Clickjacking nedir?​

Clickjacking, kullanıcının gördüğü sayfa ile gerçekte tıkladığı öğenin farklı olduğu bir arayüz saldırısıdır. Saldırgan, güvenilir bir sitenin tıklanabilir alanını saydam veya yanıltıcı bir iframe katmanında, masum görünen düğmenin üstüne hizalar. Kullanıcı kendi isteğiyle tıkladığını sanarken alttaki güvenilir sayfadaki işlem tetiklenebilir.

Nasıl çalışır?​

Saldırganın sayfasında örneğin “Videoyu oynat” düğmesi bulunur. Bunun üstüne, saydamlaştırılmış bir banka, yönetim paneli veya hesap ayarları sayfasının ilgili bölümü hizalanır. Kullanıcının tıklaması, gördüğü düğme yerine saydam katmandaki “Onayla”, “Sil” veya “Yetkilendir” kontrolüne ulaşır.

Saldırının etkili olabilmesi için genellikle şu koşullar birlikte gerekir:

  • Hedef site başka bir sayfada çerçeve içinde görüntülenebiliyor olmalıdır.
  • Kullanıcının hedef sitede geçerli oturumu bulunmalıdır.
  • Hedef işlem, yalnızca görünür metin veya ek bir doğrulama olmadan tıklamayla yapılabiliyor olmalıdır.

Varsayımsal bir örnekte yönetim paneline giriş yapmış bir yönetici, saldırganın hazırladığı sayfada “Ödülü al” düğmesine basar. Saydam katmandaki yönetim paneli düğmesi bu noktaya denk getirildiyse, yönetici fark etmeden bir ayarı değiştirebilir. Bu, kullanıcının parolasının ele geçirildiği anlamına gelmez; sorun, yetkili oturumun yanıltıcı bir arayüz üzerinden kötüye kullanılmasıdır.

Site sahibi için korunma adımları​

Öncelik, hassas sayfaların başka siteler tarafından çerçevelenmesini tarayıcıya bildiren yanıt başlıklarını göndermektir.

  1. Korunacak sayfaların HTTP yanıtlarında, özellikle giriş yapılabilen yönetim ve hesap sayfalarında Content-Security-Policy içindeki frame-ancestors yönergesini tanımlayın. Sayfanın hiç çerçevelenmemesi isteniyorsa en dar politika frame-ancestors 'none' olur.
  2. Eski veya CSP desteklemeyen istemciler için X-Frame-Options: DENY başlığını da gönderin. Aynı origin’in çerçevelemesine ihtiyaç varsa SAMEORIGIN gibi daha sınırlı bir seçenek değerlendirilir.
  3. Başlıkların gerçekten hedef sayfada döndüğünü, yönlendirme sonrasında kaybolmadığını ve önbellek ya da ters vekil katmanında değiştirilmediğini kontrol edin.
  4. Çerçevelenmesi zorunlu olan bir sayfa varsa tüm siteyi gevşetmek yerine yalnızca gereken güvenilir üst kaynakları açıkça tanımlayın. Hassas işlemleri mümkünse yeniden kimlik doğrulama veya kullanıcı onayıyla güçlendirin.

En küçük başlık örneği şu şekildedir:

Kod:
Content-Security-Policy: frame-ancestors 'none'
X-Frame-Options: DENY

Bu başlıklar HTML meta etiketiyle değil, HTTP yanıt başlığı olarak eklenmelidir. frame-ancestors, default-src değerinden miras almaz; ayrıca tanımlanmalıdır. frame-ancestors destekleyen tarayıcılar iki başlık birlikteyse onu esas alır. Üçüncü tarafın çerçevelemesine izin verirken eski istemcilerde DENY/SAMEORIGIN davranışını da hesaba katın. Tarayıcı, politika ihlali olan bir çerçeveyi yüklemeyi engeller; bu nedenle saldırganın saydam katmanını hedef sayfanın üzerine yerleştirmesi mümkün olmaz.

Hangi politika seçilmeli?​

Karar verirken çerçeveleme ihtiyacını ve sayfanın hassasiyetini birlikte değerlendirin:

Sayfa durumuTercihGerekçe
Çerçevelenmesi gerekmiyorframe-ancestors 'none'En dar izin; harici çerçevelemeyi kapatır.
Yalnızca aynı site içinde kullanılacakframe-ancestors 'self'Aynı kaynak dışındaki çerçevelemeyi sınırlar.
Belirli bir uygulama tarafından kullanılacakYalnız gereken kaynakları listeleyinGeniş izin yerine kontrollü entegrasyon sağlar.

Değişiklikten sonra tarayıcının geliştirici araçlarında Network sekmesinden hedef yanıtı açın ve başlıkların bulunduğunu kontrol edin. Çerçeveleme denemesi engelleniyorsa konsolda CSP veya X-Frame-Options kaynaklı bir engelleme görülmesi beklenir. Başlık görünmüyor ya da sayfa hâlâ çerçevelenebiliyorsa yapılandırma yanlış katmana uygulanmış, yönlendirmede kaybolmuş veya başka bir sunucu yanıtı dönüyor olabilir.

Sık yapılan hatalar​

  • Yalnızca sayfadaki JavaScript kontrolüne güvenmek: JavaScript devre dışı bırakılabilir veya farklı bir çerçeveleme senaryosunda beklenmedik davranabilir. Sunucu yanıt başlıkları temel savunma olmalıdır.
  • Güvenilir görünen her alan adına çerçeveleme izni vermek: İzin verilen bir alan ele geçirilirse veya yanlış yapılandırılırsa koruma zayıflar.
  • Yalnızca giriş sayfasını korumak: Asıl risk, oturum açıkken işlem yapan ayar, ödeme ve yönetim uç noktalarında ortaya çıkar.
  • Başlığın yalnızca ana sayfada bulunmasını yeterli sanmak: Koruma, hassas yanıtların tamamında ve yönlendirme zincirlerinde doğrulanmalıdır.

Sık sorulan sorular​


Clickjacking ile phishing arasındaki fark nedir?​

Phishing çoğunlukla kullanıcıyı sahte bir sayfaya bilgi girmeye yönlendirir. Clickjacking ise gerçek bir sitenin arayüzünü, kullanıcının tıklamasını başka bir işlemle eşleştirmek için yanıltıcı biçimde kullanır; iki teknik birlikte de kullanılabilir.

CSRF koruması clickjacking korumasının yerine geçer mi?​

Hayır. CSRF belirli isteklerin yetkisiz başka bir kaynaktan gönderilmesini sınırlamaya çalışır; clickjacking ise kullanıcının gerçek arayüzdeki işlemi fark etmeden başlatmasını hedefler. Çerçeveleme politikaları ve işlem doğrulamaları ayrı savunma katmanlarıdır.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.