Selective Framebusting



Benzer belgeler
Web Uygulama Güvenliği Kontrol Listesi 2010

Basit bir web uygulaması

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

Tanımı Problemi 46 Şüpheci Yaklaşım 47 Tamsayı Taşması (Integer Overflow) 47 Tamsayı Taşması Java Uygulaması 48

Web 2.0 Örnek Eğitim Notu

Güvenlik Java ve Web Uygulama Güvenliği

Yeni Nesil Ağ Güvenliği

Pac Dosyası İle Proxy Kullanmak

Oturum Öncesi Tanımlı Oturum Kimliği Çerezi Açığı Gökhan

Üst Düzey Programlama

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Medula Eczane Stok Bilgileri Web Servisleri Kullanım Kılavuzu

Öğr. Gör. Serkan AKSU 1

PHP ile Web Uygulama Güvenliği

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

VERİ GÜVENLİĞİ. Web Uygulamaları Güvenliği. Özer Çelik Matematik-Bilgisayar Bölümü

WEB FORMLARI. Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

Web Güvenliği Topluluğu webguvenligi.org Web Uygulama Güvenliği Kontrol Listesi 2012

YZM 3215 İleri Web Programlama

Dünyada Veri Kaçağı ve Veri Kaçağı Önleme (DLP) Sistemleri Tahsin TÜRKÖZ Bilişim Sistemleri Güvenliği Grubu

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

PROGRAMLAMA DERSİ 1. İNTERNET

Üst Düzey Programlama

Sıkça Sorulan Sorular (SSS)

Burp Suite ile Deneme - Yanılma Denetimi

BÖLÜM 8. Bilişim Sistemleri Güvenliği. Doç. Dr. Serkan ADA

NextGeneration USG Series

FortiGate (Terminal Server) Terminal Sunucu Üzerinden Gelen Kullanıcılar

TÜBİTAK ULAKBİM ELEKTRONİK İMZA ENTEGRASYONU HİZMET ALIMI TEKNİK ŞARTNAMESİ

Algorithm of Your Life. AJAX ve...

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

ERİŞİM ENGELLEME DOS VE DDOS:

Mobil Cihazlardan Web Servis Sunumu

Üst Düzey Programlama

U y g u l a m a A i l e s i (Abakus 360, T-Panel, T-CRM) Tarayıcı Ayarları. IPera İletişim Teknolojileri

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

State Yönetimi. Bir web sayfası ile sunucu arasındaki etkileşim ;

ISLAK İMZALI BAŞVURU ARAYÜZÜ TALİMATI

CELAL BAYAR ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA ÜNİVERSİTE DIŞINDAN ERİŞİM

Ülkemizdeki Üniversite Web Sayfalarının Siber Güvenlik Açısından Hızlı Bir Değerlendirmesi

Google Search API ile ajax arama

Ufuk Üniversitesi Kütüphanesi Kütüphane Kaynaklarına Erişim Bilgileri

Bilgi Güvenliği Eğitim/Öğretimi

WEB SUNUCU GÜVENLİĞİ: Web Siteleri Neden Hacklenir?

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

KAMU SİBER GÜVENLİK GÜNÜNE HOŞGELDİNİZ

Daha detaylı bilgi ve teklif için adresine eposta gönderebilirsiniz.

DTÜ BİLGİ İŞLEM DAİRE

Programlama Yazılımı ile Web Sitesi Oluşturma

Campus Online. Güncelleme: Haziran 24, 2013


DDoS El Kitabı. Eylül 2014 UR.RHB.004

AirPrint Kılavuzu. Bu Kullanım Kılavuzu aşağıdaki modeller için geçerlidir: MFC-J2320/J2720. Sürüm 0 TUR

WebSiteDefender ile Web Uygulama Güvenliği

AirPrint Kılavuzu. Bu Kullanıcı Kılavuzu şu modeller içindir:

7. Çerçeveler. Bu bölümü bitirdiğinizde,

YAZILIM GÜVENLİĞİ POLİTİKASI 1/6. Doküman No : Yayınlandığı Tarih: Revizyon No: 00

PHP I PHP I. E. Fatih Yetkin. 26 Eylül 2011

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

AirPrint Kılavuzu. Bu Kullanıcı Kılavuzu aşağıdaki modeller için geçerlidir: MFC-J3520/J3720. Sürüm 0 TUR

Veritabanı Güvenliği ve Savunma Algoritmaları

İNÖNÜ ÜNİVERSİTESİ MALATYA MESLEK YÜKSEKOKULU DERS TANITIM FORMU. Kredisi AKTS Eğitim Dili Tipi: Zorunlu/ Saat

Metin Text Kutuları. Metin kutusu oluşturmak için <input> tagı kullanılır.

VERİ MADENCİLİĞİ (Web Madenciliği)

Twitter da bu durumla karşılaşan başka kullanıcılar var mı diye twitter virüs anahtar kelimeleri ile genel bir arama yaptığımda ise bu durumun Nisan

Coslat Monitor (Raporcu)

Trend Micro Worry-Free Business Security 8.0 İlk Kez Kurulumla İlgili İpuçları ve Püf Noktaları

MYLOGO ÜYELİK VE KUR İŞLEMLERİ

VET ON KULLANIM KLAVUZU

Kaynak Kod Güvenliği Bir Güvensiz API Örneği

FortiMail Gateway Modunda Kurulum. v4.00-build /08

İstemci Tabanlı Saldırı Türleri. Ozan UÇAR

Siber Güvenlik Risklerinin Tanımlanması / Siber Güvenlik Yönetişimi

Ağınız üzerinde tarama yapmak için Web Hizmetleri'ni kullanma (Windows Vista SP2 veya üzeri, Windows 7 ve Windows 8)

Web Önyüzü Nasıl Olmalı? <Markup> : İskelet {css} : Görünüm JavaScript() : Etkileşim

Data Classification is a Business Imperative. TITUS White Paper. Veri Sınıflandırma Artık Bir Zorunluluk!

Öğrencilerin Canlı derslere katılması, * Sisteme giriş

Web tabanlı altyapı sayesinde her cihazdan erişilebilir ve düzenlenebilir dokümanlar oluşturulup anında paylaşılabilir.

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

AG DANIŞMANLIK HAKKINDA

SANAL POSLAR VE GÜVENLİK POLİTİKALARI. Yunus Emre SEYHAN Web Yazılım Uzmanı

İNTERNET PROGRAMLAMA II. Tanımlar

4.41. WEB DE GENÇ TEKNİK: AJAX. Fırat Üniversitesi Fen Bilimler Enstitüsü, Elazığ. Fırat Üniversitesi Teknik Eğitim Fakültesi,

DEVLET KURUMLARINDA WEB ERİŞİLEBİLİRLİĞİ

AirPrint Kılavuzu. Sürüm 0 TUR

ABONELİK MERKEZİNE GİRİN

YMT 412-Yazılım Kalite Ve Güvencesi Yazılım Test Araçları 1/37

TASNİF DIŞI KAMU SERTİFİKASYON MERKEZİ. Doküman Adı MOBİL İMZA KULLANIM AMAÇLI NİTELİKLİ ELEKTRONİK SERTİFİKA BAŞVURU TALİMATI

WINDOWS SERVER 2008 R2-SERVER 2012 DE IP SANALLAŞTIRMA

Sunucu Taraflı JavaScript ile Gerçek Zamanlı Web Uygulamaları Geliştirme

BİLGİSAYAR VE AĞ GÜVENLİĞİ ÖĞR. GÖR. MUSTAFA ÇETİNKAYA DERS 2 > AĞ VE UYGULAMA GÜVENLİĞİ

e-fatura Başvuru Açıklamalar

BİLGİSAYAR SİSTEMLERİNE YAPILAN SALDIRILAR

MOBİL İMZA KULLANIM AMAÇLI NİTELİKLİ ELEKTRONİK SERTİFİKA BAŞVURU TALİMATI

Veritabanı Dersi. Teoriden Pratiğe. Çağıltay N.E., Tokdemir G. Veritabanı Sistemleri Dersi -Bölüm XXV: Web'den Erişim Çağıltay, N., Tokdemir, G.

Transkript:

Selective Framebusting Seçiçi Çerçeveleme Engelleme Sema Arık, TurkcellTeknoloji, sema.arik@turkcellteknoloji.com.tr Bedirhan Urgun, Web Güvenlik Topluluğu, urgunb@hotmail.com Giriş PCI DSS Requirements and Security Assesment Procedures (Gereksinim ve Güvenlik Değerlendirme Prosedürleri) v1.2 dokümanı 1, Protect Cardholder Data (Kart sahibi Verilerinin Korunması) başlığı altında dördüncü gereksinim olarak; Açık ağlar boyunca kart sahibi veri gönderiminin şifrelenmesi zorunluluğunu getirir. Şirketlerin ana web sayfaları online kullanıcıları ile buluştukları en önemli noktalardır. Bu sitelerde, şirketler kullanıcılarına en yeni haberleri ve gelişmeleri aktardıkları gibi, kullanıcılarından geri dönüş de alırlar. Bu doğrultuda kullanıcıların formlar doldurması ve/veya bazı servislerden faydalanması direk olarak bu site içinden sağlanır. Problem Ana web sitelerinin kullanıcılarından aldığı bazı veriler regülasyonlar ve genel güvenlik prensipleri düşünüldüğünde SSL üzerinden aktarılmalıdır. Bu da, HTTP üzerinden açılan ana web sitesinin (frame/iframe etiketleri ile) sağladığı formları ve verileri HTTPS üzerinden aktarması demektir. http: www.anawebsitesi.com.tr Resim 1 Bu durum aslında HTTP ve HTTPS kaynaklarının karıştırılması anlamına gelir ve temelinde güvenlik/güven problemleri taşır. Yapılması gereken bu iki tür trafik için açık bir farklılık oluşturmaktır (ayrı pencerelerde mesela). Ancak bunun proje ve marketing bölümlerine kabul ettirilmesi her zaman mümkün değildir. 1

Ancak iframe/frame tabanlı çözümler ve genelinde bütün web sayfaları bir tür leeching (sömürme) saldırılarına açıktır. Direct linking/inline Linking/Bandwith Theft 2 olarak da adlandırılan bu açık saldırgan sitenin içeriğinizi bulunduran sayfanızı kendi sayfanızda iframe/frame etiketleri yardımı ile barındırmasıdır. http: www.saldirgan.com.tr Resim 2 Bu durumun getirdiği problemler arasında ana web sitenizin hit sayısının azalması ve belki bazı istemci taraflı saldırılar (clickjacking 3 ) olabilir. Bu dokümanın geri kalan bölümü bahsedilen problemin mümkün olan en standard çözümünü bulmaya yöneliktir. Çözüm #1 (Alternatif) Direct linking saldırılarında en önemli çözümlerden biri Referer kontrolüdür. Ana web sitesinde uygulanabilecek bu yöntem, korunmak istenen içeriği bulunduran sayfaya gelen isteklerdeki HTTP Referer başlığının değerinin kontrol edilmesidir. Eğer bu değer beklenen (http://www.anawebsitesi.com.tr/biryol) değerden farklı ise farklı bir içerik cevap olarak gönderilebilir. Ancak istemci tarafında kullanılan Internet te iz bırakmayan gezinme sağlayan programlar veya bazı proxyler bu HTTP başlığının (Referer) silinmesini sağlarlar. Her ne kadar bu programları kullanan son kullanıcılar bu durumun farkında olsalar da, Referer başlığına güvenmek prensip olarak standard bir yol değildir. Ayrıca kullanıcı kaybı endişesi bu korumayı uygulamakta problem yaratabilir. Ancak saldırıların büyük bir bölümü bu basit kontrol sayesinde ortadan kalkacaktır. Çözüm #2 (Yanlış) Bahsedilen problem Leeching fenomeninin özel bir durumudur ve kontrol için istemci tarafında özel bir teknik geliştirilmiştir; Frame busting 4. Genel olarak korumak istenen sayfaya aşağıdaki gibi bir javascript kodu gömülerek, sayfanın çerçeve altına alınması önlenebilir. (Safari tarayıcısında bu kodun çalışmadığı belirtilmiştir 4 ) if(top!= self) top.location.href = http://www.anawebsitesi.com.tr/ ; Genel framebusting koruması bazı durumlarda saldırganlar tarafından çalışmaz hale getirilebilirler 6. Ama bunun da icabına bakacak basit html etiketlerini kullanmak mümkündür 7. 2

Yukarıdaki kod korunması istenen ama zaten çerçevelenmiş olan sayfada çalışmayacaktır. Bu nedenle aşağıdaki parça kontrol için daha uygundur. try{ if(top.document.domain!= "www.anawebsitesi.com.tr") { top.location.href = document.location.href; catch(e){ top.location.href = " http://www.anawebsitesi.com.tr/"; Bu şekilde seçici davranılacak ve www.anawebsitesi.com.tr dışında başka bir sitenin sayfayı çerçeve içine alması engellenecektir. Resim 3 te gösterilen durumda çalışan bu koruma, Resim 4 te tarayıcılarda meşhur same origin policy (aynı kaynak politikası) prensibine 5 taklıp, çökecektir. http: www.saldirgan.com.tr Resim 3 http: www.anawebsitesi.com.tr https: www.anawebsitesi.com.tr/form Resim 4 Çözüm #3 (Yanlış) Resim 4 gibi bir durumda seçici frambusting kontrolünü kullanmak istemek için form açılan sayfanın iframe/frame ile açılırken HTTP ile açılması, ve sadece FORM submit aşamasında HTTPS kullanılmasıdır (Resim 5). Regülasyonlar ve güvenlik açısından senaryo ile çelişmeyen bu vaziyette script in çalışması same origin policy e takılmayacaktır. 3

http: www.anawebsitesi.com.tr Resim 5 Ancak bu düzenleme uygulama tarafında şöyle bir probleme yol açacaktır. Kullanıcı formu doldurup POST ettiğinde, sunucu tarafında eğer bir hata durumu ile kaşılaşılırsa (eksik bilgiler), sayfa HTTPS e döndüğünden dönülen hata sayfasında selective framebusting kodu çalışacak ve aynı kaynak politikası nedeniyle kullanıcıya hatasını düzeltmek için şans tanımadan, kullanıcıyı ana websitesine yönlendirecektir. Çözüm #4 (Eksik) Yukarıdaki sorun selective framebusting kodumuzu biraz düzenleyerek bertaraf edilebilir. if(document.location.protocol == "http:"){ try{ if(top.document.domain!= "www.anawebsitesi.com.tr") { top.location.href = document.location.href; catch(e){ top.location.href = " http://www.anawebsitesi.com.tr/"; Bu şekilde HTTP protokolü kullanıldığında çalışacak kontrol, HTTPS protokolüne geçildiğinde atlatılacaktır. Ancak saldırganın Resim 6 daki gibi bir çerçeveletme kullanmasına mani olacak hiç bir kontrol yoktur. 4

http: www.saldirgan.com.tr https: www.anawebsitesi.com.tr/form Resim 6 Çözüm #5 (Eksik) Tam bir çözüm için sadece istemci taraflı standard bir çözüm bulunamamıştır. Bu denemede, hem Çözüm #2 deki orjinal selective framebusting kodu, Çözüm #3 teki HTTP sayfa HTTPS submit metodu hem de sunucu tarafında (sunucu taraflı kod içerisinde) aşağıdaki algoritma adımları kullanılmıştır. 1. HTTP/S GET isteklerinde kullanıcıyı selective framebusting kontrolü olan normal form sayfasına 2. HTTP/S POST isteklerinde, 2.1. İsteği işle 2.1.1. Hata yoksa framebusting kontrolü olmayan normal bir sayfaya 2.1.2. Hata varsa framebusting kontrolü olmayan orjinal form sayfasına yönlendir. Daha da sadeleştirilirse; 3. HTTP/S GET isteklerinde, selective framebusting kontrolü olan normal form sayfasına 4. HTTP/S POST isteklerinde, selective framebusting kontrolü olmayan normal form veya başka sayfaya yönlendir. Ancak bu durumda bile saldırganın elinde sayfayı çerçeleyebileceği bir durum vardır. Saldırgan, kendi sayfasında biraz Javascript ve DOM programming ile dinamik olarak iframe oluşturabilecek, bu iframe in içine dinamik olarak form oluşturup, korumak isteğimiz sayfaya HTTPS submit gerçekleştirebilecek, eksik bilgi girdiği için de sunucu taraflı kodumuz tarafından içinde selective frame busting kodu olmayan form sayfasını (1 2 hata mesajı ile) çerçeveleyebilecektir! Çözüm #6 (Tam) Çözüm #5 in üzerine GET isteğinde sunucu tarafında oluşturulacak rasgele bir token hem form sayfasında hidden bir değişken olarak isetmciye hem de oturumda (session) saklanmalıdır. Bu şekilde, HTTP/S üzerinden POST yapan kişinin saldırgan olmadığının kontrolü sunucu tarafında yapılabilecektir. Bu da klasik bir CSRF korumasıdır ki zaten istenen bir güvenlik kontrolüdür. 5

Referanslar [1] https://www.pcisecuritystandards.org/security_standards/download.html?id=pci_dss_v1 2.pdf [2] http://en.wikipedia.org/wiki/direct_linking [3] http://ha.ckers.org/blog/20081007/clickjacking details [4] http://www.quirksmode.org/js/framebust.html [5] https://developer.mozilla.org/en/same_origin_policy_for_javascript [6] http://crypto.stanford.edu/framebust/ [7] http://ha.ckers.org/blog/20081007/clickjacking details/#comment 87102 6