SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama
SSL Sertifika Analizi Açık Port Tespiti Web Uygulama Tarama DNS Güvenlik Denetimi HTTP Başlık Analizi Yanlış Yapılandırma Tespiti Yazılım Parmak İzi Alt Alan Adı Tarama

Tüm Kayıtlar

Kategori Güvenlik Yanlış Yapılandırması / UI Redress Saldırısı
Tipik Önem Derecesi Orta
OWASP A05:2021 – Güvenlik Yanlış Yapılandırması
CWE CWE-1021: İşlenmiş UI Katmanları veya Frame'lerin Yetersiz Kısıtlanması
Diğer Adları Clickjacking, UI Redress Saldırısı, iframe Katmanlama Saldırısı
Etkilenen Sistemler HTTP yanıtlarında X-Frame-Options veya CSP frame-ancestors direktifi ayarlanmamış tüm web uygulamaları
İlgili Standart RFC 7034 (X-Frame-Options), W3C CSP Seviye 2 (frame-ancestors)

Genel Bakış

X-Frame-Options HTTP yanıt başlığı, tarayıcılara bir sayfanın <frame>, <iframe>, <embed> veya <object> elementi içinde render edilip edilmeyeceğini bildirir. Bu başlık eksik olduğunda — ve eşdeğer bir Content-Security-Policy: frame-ancestors direktifi de bulunmadığında — sayfa herhangi bir üçüncü taraf kaynak tarafından gömülebilir hale gelir; bu durum clickjacking (UI redress olarak da bilinir) saldırılarına zemin hazırlar.

Clickjacking saldırısında saldırgan, hedef sayfayı kötü amaçlı bir sitede görünmez bir iframe içine yükler ve ardından üzerine yanıltıcı UI öğeleri katmanlayarak kullanıcıyı, farkında olmadan gizli sayfadaki düğme veya bağlantılara tıklamaya yönlendirir.

Nasıl Çalışır

Saldırı, tarayıcının farklı kaynaklı çerçevelemeye (cross-origin framing) varsayılan olarak izin vermesini istismar eder:

  1. Saldırgan kötü amaçlı bir sayfa hazırlar: Bu sayfa, hedef uygulamayı şeffaf veya sıfır opaklıklı bir <iframe> içine yükler ve inandırıcı bir sahte arayüzün tam üzerine konumlandırır.
  2. Kullanıcı kötü amaçlı sayfaya çekilir: Kimlik avı, kötü amaçlı reklam veya güvenliği ihlal edilmiş bir üçüncü taraf site aracılığıyla.
  3. Kullanıcı sahte arayüzle etkileşime girer: Örneğin bir "Oynat" düğmesine veya ödül talep formuna tıkladığını sanarken, aslında tıklama gizli iframe tarafından yakalanır ve hedef uygulamada kimliği doğrulanmış bir işlem tetiklenir (örn. para transferi, hesap e-postasının değiştirilmesi, OAuth izni verilmesi).
  4. İstek kullanıcının kimliği doğrulanmış oturumundan geldiğinden, CSRF token gibi sunucu taraflı kontroller yine de karşılanmış olabilir.

Temel teknik noktalar:

  • X-Frame-Options: DENY — kaynaktan bağımsız olarak tüm çerçevelemeyi engeller.
  • X-Frame-Options: SAMEORIGIN — yalnızca aynı kaynak üzerindeki sayfaların çerçevelemesine izin verir.
  • X-Frame-Options: ALLOW-FROM uri — tek bir belirli kaynağa izin verir (kullanımdan kaldırılmıştır; tutarsız destek, CSP tarafından geçersiz kılınmıştır).
  • Modern ve tercih edilen mekanizma Content-Security-Policy: frame-ancestors 'none' veya frame-ancestors 'self' direktifidir; bu yaklaşım daha ayrıntılı kontrol sunar ve W3C CSP Seviye 2 spesifikasyonu ile standartlaştırılmıştır.
  • JavaScript tabanlı çerçeve kırma (frame-busting) yöntemleri (top.location kontrolleri) güvenilmez bir önlemdir: iframe üzerindeki sandbox özelliği veya JavaScript'in devre dışı bırakılması ile aşılabilir.
  • Her sayfa aynı risk düzeyini taşımaz; kimlik doğrulama, hesap yönetimi ve ödeme gibi hassas durum değiştiren işlemleri gerçekleştiren sayfalar en yüksek önceliğe sahiptir.

İş Üzerindeki Etkisi

Başarılı bir clickjacking saldırısı aşağıdaki sonuçlara yol açabilir:

  • Yetkisiz hesap işlemleri — kurbanın haberi olmadan şifre değişikliği, e-posta adresi değişikliği, iki faktörlü kimlik doğrulamanın devre dışı bırakılması veya hesap verilerinin silinmesi.
  • Mali dolandırıcılık — bankacılık ve e-ticaret platformlarında havale, satın alma veya abonelik değişikliği başlatılması.
  • Yetki yükseltme — bir yöneticinin yüksek ayrıcalıkları onaylaması veya bir yönetici panelinde güvenlik kontrollerini devre dışı bırakması için kandırılması.
  • Kimlik bilgisi veya token ele geçirme — form enjeksiyonu teknikleriyle birleştirildiğinde, saldırganlar katmanlı formlara girilen kimlik bilgilerini ele geçirebilir.
  • Regülatif yaptırım riski — GDPR, PCI DSS ve benzeri çerçeveler kapsamında temel güvenlik kontrollerinin uygulanmaması ihmal olarak değerlendirilebilir ve para cezası veya denetim bulgusuyla sonuçlanabilir.
  • İtibar hasarı — öngörülebilir ve önlenebilir zafiyetler nedeniyle hesapların ele geçirilmesi kullanıcı güvenini zedeler.

Nasıl Düzeltilir

  1. Tüm yanıtlara X-Frame-Options başlığı ekleyin (minimum uygulanabilir düzeltme):
    Başlığı web sunucusu veya uygulama katmanında ekleyin. Aynı kaynaklı çerçevelemeye özel bir ihtiyaç yoksa DENY kullanın:
    X-Frame-Options: DENY
    veya uygulama kendini meşru olarak çerçekeliyorsa:
    X-Frame-Options: SAMEORIGIN
  2. Content-Security-Policy: frame-ancestors tercih edin (önerilen):
    Bu direktif, tüm modern tarayıcılarda X-Frame-Options'ın yerini alır; birden fazla güvenilir kaynağı destekler ve W3C tarafından standartlaştırılmış yaklaşımdır:
    Content-Security-Policy: frame-ancestors 'none';
    veya
    Content-Security-Policy: frame-ancestors 'self' https://guvenilir-ortak.example.com;
    Her iki başlığın da dağıtılması, CSP'yi desteklemeyen eski tarayıcılar için derinlemesine savunma sağlar.
  3. Altyapı katmanında yapılandırın:
    Başlığı yalnızca uygulama koduna bırakmak yerine, tutarlı kapsam sağlamak amacıyla ters proxy veya yük dengeleyici yapılandırmasında (nginx, Apache, IIS, CDN kenar kuralları) global olarak uygulayın; bu yaklaşım hata sayfalarını ve statik varlıkları da kapsar.
    • nginx: add_header X-Frame-Options "DENY" always;
    • Apache: Header always set X-Frame-Options "DENY"
    • IIS: web.config veya IIS Yöneticisi arayüzü aracılığıyla özel bir HTTP yanıt başlığı ekleyin.
  4. Meşru çerçeveleme gereksinimlerini denetleyin:
    Uygulamanın gömülebilir olması gerekiyorsa (örn. bir widget veya gömülü ödeme formu), joker karakter (*) kullanmak yerine frame-ancestors direktifinde tüm meşru üst kaynakları açıkça listeleyin; joker karakter hiçbir koruma sağlamaz.
  5. Hassas alt sayfaları dahil edin:
    Başlığın yalnızca ana sayfada değil, kimliği doğrulanmış tüm sayfalar ve durum değiştiren uç noktalarda — hesap ayarları, ödeme akışları ve yönetici arayüzleri dahil — bulunduğundan emin olun.
  6. Düzeltmeyi test edin:
    Başlığın HTTP yanıtlarında göründüğünü tarayıcı geliştirici araçları (Ağ sekmesi) veya komut satırı kontrolüyle doğrulayın: curl -I https://example.com. Sensagraph, web varlıklarınız genelinde bu başlığı sürekli olarak izler ve başlığın eksik olduğu sayfaları işaretler.

Kaynaklar

Sıkça sorulan sorular

X-Frame-Options, RFC 7034'te tanımlanan eski ve yaygın destekli bir başlıktır; üç direktifi vardır: DENY, SAMEORIGIN ve kullanımdan kaldırılmış ALLOW-FROM. Content-Security-Policy frame-ancestors ise modern W3C standartlarına dayalı halefdir; birden fazla izin verilen kaynağı destekler ve daha esnektir. CSP'yi destekleyen tüm modern tarayıcılarda frame-ancestors, X-Frame-Options'a göre önceliklidir. Her iki başlığın birlikte dağıtılması en geniş tarayıcı kapsamını sağlar.

Hayır. Çerçevelenmiş bir sayfadaki link tıklamaları, sürükle-bırak işlemleri ve bazı saldırı varyantlarında kaydırma olayları dahil her türlü kullanıcı etkileşimi ele geçirilebilir. Ancak hesap ayarları, ödeme akışları ve yönetici işlemleri gibi hassas durum değiştiren uç noktalar, tek bir yanlış yönlendirilmiş tıklamanın ciddi sonuçlar doğurabileceği en yüksek değerli hedeflerdir.

Hayır. HTTPS, aktarımdaki verileri şifreler ve sunucuyu doğrular; ancak tarayıcının bir sayfayı üçüncü taraf bir kaynaktaki iframe içinde render etmesini engellemez. Clickjacking tamamen tarayıcı UI katmanında gerçekleşir ve taşıma güvenliği mekanizmasından bağımsızdır.

Güvenilir biçimde sağlamaz. CSRF token'ları, bir isteğin hedef sitedeki meşru bir formdan geldiğini doğrulayarak siteler arası istek sahteciliğine karşı koruma sunar. Clickjacking saldırısında ise kurbanın tarayıcısı gerçekten hedef sayfayı bir iframe içinde yükler ve geçerli CSRF token'ıyla gerçek bir form gönderir; token kontrolü karşılandığından clickjacking'e karşı ek bir koruma sağlamaz.

Önem derecesi, etkilenen sayfanın bağlamına göre değişir. Kimliği doğrulanmamış, yalnızca bilgilendirme amaçlı sayfalar için genellikle Düşük olarak değerlendirilir. Durum değiştiren işlemler gerçekleştiren kimliği doğrulanmış sayfalar (hesap yönetimi, ödeme, yönetici işlevleri) için istismarın kolaylığı ve potansiyel etkisi nedeniyle genellikle Orta ila Yüksek olarak derecelendirilir. Güvenlik tarayıcıları ihtiyatlı bir temel olarak genellikle Orta'yı varsayılan alır.