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

Benzer belgeler
ÖRÜN (WEB) GÜVENLİĞİ. Hazırlayan: Arda Balkanay

Web Uygulama Güvenliği Kontrol Listesi 2010

KARADENİZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ BİLGİSAYAR AĞLARI LABORATUARI. Wireshark ile Ağ Paket Analizi

HTTP. (Hyper Text Transfer Protocol)

PHP ile İnternet Programlama

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

Selective Framebusting

Güncel İnternet Teknolojileri ve PHP 2

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

SESSİON KULLANIMI. .Aşağıdaki Kodları da SessionDevam.asp adıyla kaydedelim. Language=VBScript Codepage="1254"%>

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz,

5651 ve 5070 Sayılı Kanun Tanımlar Yükümlülükler ve Sorumluluklar Logix v2.3 Firewall. Rekare Bilgi Teknolojileri

Web Formlar ve Sayfalar Arasında Bilgi Gönderme. BATML İnternet Programcılığı 1

İnternet Programcılığı Form İşlemleri ve Oturum Yönetimi Örnekleri

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

Öğrenciler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

Linux Temelli Zararlı Yazılımların Bulaşma Teknikleri, Engellenmesi ve Temizlenmesi

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

AHTAPOT Merkezi Güvenlik Duvarı Yönetim Sistemi Kontrol Paneli

Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlar!

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

Web Uygulama Saldırıları ve Klasik Çözümlerin Yetersizliği

PHP ile Web Uygulama Güvenliği

İNTERNET EXPLORER AYARLARI 1. Başlat-Ayarlar-Denetim Masası menüsünden "İnternet Özellikleri" (Seçenekleri)'ni seçiniz. Resim. 1

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

LIBPXY SERVİSİNİN KULLANIMI

MASTER PAGE SAYFASI KULLANIMI

SMS API. KobiKom Telekomunikasyon A.Ş. SMS API Kullanım Bilgilerini İçerir. Tel: Fax:

Cihazınızın İnternet ayarlarını yapabilmek için lütfen aşağıdaki adımları takip ediniz;


Kurumsal Ağlarda Web Sistem Güvenliği

Bireysel İnternet Şubesi

Yeni Nesil Ağ Güvenliği

WEB PROGRAMLAMA. PHP Temelleri 2. Dr. Erman Yukselturk

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

Erişim Noktası Ayarları

Armitage Nedir? Kullanım Öncesi

KÜTÜPHANE KAYNAKLARINA DIŞARIDAN (PROXY SUNUCU KULLANARAK) BAĞLANMAK İÇİN YAPILMASI GEREKENLER A. INTERNET EXPLORER KULLANICILARI İÇİN;

Bilgisayar Programcılığı Uzaktan Eğitim Programı. e-bilg 121 AĞ TEKNOLOJİLERİNİN TEMELLERİ Öğr. Gör. Bekir Güler

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

Ağ Bağlantısı Hızlı Kurulum Kılavuzu

HP PROCURVE SWITCHLERDE 802.1X KİMLİK DOĞRULAMA KONFİGÜRASYONU. Levent Gönenç GÜLSOY

Cyberoam Single Sing On İle

Self Servis Windows Parola İşlemleri

Bölüm 10: PHP ile Veritabanı Uygulamaları

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

VET ON KULLANIM KLAVUZU

Misafirler için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

TALİMAT. Doküman No: PT Yayın Tarihi: Revizyon Tarihi: -- Revizyon No: -- Sayfa 1 / 6

Google Chrome Kullanıyorsanız; Microsoft Internet Explorer Kullanıyorsanız;

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

J-Guar Self Servis Kurulumu

BitTorrent İstemci Kullanımı

Windows Live Mail Programı Kurulumu ve Ayarlanması

Başlangıç Ayarları.

Üst Düzey Programlama

VPN KURULUM ve KULLANIM REHBERİ

KAMPÜS DIŞINDAN PROXY (VEKİL) AYARLARI İLE KAMPÜS AĞINA BAĞLANMAK

MVC Kul anıcı Doğrulama ve Yetkilendirme MVC Filtreler Action Filter FilterAttribute IActionFilter FilterAttribute IActionFilter

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

Çerezleri (Cookie) ve Önbelleği (Cache) Temizleme

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

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

Web Uygulamarına Yönelik DoS DDoS Saldırıları ve Performans Testleri. Barkın

BBL 601 AĞ GÜVENLİĞİ Prof. Dr. Bülent ÖRENCİK. Örün (WEB) Güvenliği. Arda BALKANAY

5651 Sayılı Kanun Hakkında Kanunla ilgili detay bilgiler

WebSiteDefender ile Web Uygulama Güvenliği

CİSCO ANY CONNECT UYGULAMASI İLE İÇ KAYNAKLARA ERİŞİMİ KLAVUZU

Apache Htaccess Güvenlik Testleri

EKLER EK 12UY0106-5/A4-1:

BioAffix Ones Technology nin tescilli markasıdır.

BATMAN ÜNİVERSİTESİ KÜTÜPHANE VERİTABANLARINA KAMPÜS DIŞINDAN ERİŞİM REHBERİ

Outlook ta Mail Arama

Google Chrome Proxy Sunucusu Ayarları

MOBILEPAX XML PRODUCT API KULLANIM ŞEKLİ

AĞ KULLANIM KILAVUZU. Yazdırma Günlüğünü Ağa Kaydetme. Sürüm 0 TUR

BİLGİ GÜVENLİĞİ. Temel Kavramlar

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

YILDIZ TEKNİK ÜNİVERSİTESİ

Enerji, bankacılık, finans, telekomünikasyon gibi önemli sektörler Sinara Labs ile siber saldırılar a karşı güvende

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

Kurum Personeli için Kablosuz İnternet Erişimi (Wi-Fi) Kullanım Kılavuzu

7/24 destek hattı Kolay kurulum CD si Üç yıl garanti Üç yıl garanti YM.WR.5341.UM.TR.D01REV

Amadeus Selling Platform. Yükleme Kılavuzu

SAB 103 TEMEL BİLGİSAYAR KULLANIMI

AKINSOFT. Eofis NetworkAdmin. AKINSOFT EOfis NetworkAdmin Kurulumu Bilgi Notu. Doküman Versiyon : Tarih : Copyright 2008 AKINSOFT

İnternet Bağlantı Ayarları. Kablosuz Bağlantı Ayarları. Pirelli DRG A226G. Modem Kurulum Kılavuzu. VodafoneNET

CHECKPOINT VPN KULLANIM KILAVUZU

MyEnglishLab Online Kayıt Kılavuzu 2011

Geliştirici Referans Kılavuzu

SAĞLIK BAKANLIĞI RESMİ E-POSTA BAŞVURU ADIMLARI

1. Bilgisayarınızda kullandığınız Web tarayıcı programını (Internet Explorer, Mozilla Firefox vb.) çalıştırınız.

Avrupa Komisyonu Kimlik Tanımlama Sistemi (ECAS) ile Kayıt İşlemi Unutulan şifre Ad-soyad veya e-posta adresi değiştirme 8

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

LOGO Uygulamalarında E-Defter

Adım Adım Windows 2000 Server Kurulumu 11 Cuma, 08 Eylül :32 - Son Güncelleme Cumartesi, 12 Eylül :45

Kullanıcı Ayarları. Resim 89. United Security. Kullanici Adi Seviye Etkin. No.

UZAKTAN EĞİTİM YÖNETİM SİSTEMİ (MMYO)EĞİTMEN YARDIM KILAVUZU

Transkript:

Oturum Öncesi Tanımlı Oturum Kimliği Çerezi Açığı Gökhan Muharremoğlu Oturum Öncesi Tanımlı Oturum Kimliği Çerezi Açığı Oturum öncesi tanımlı oturum kimliği çerezi açığı, az bilinen ve dünya genelinde çok sayıda sistemde yaygın olarak bulunan bir açıktır. Bunun başlıca nedeni, açığın ve dolaylı etkilerinin bilinirliğinin düşük olmasıdır. Türkiye de bu açıktan ilk defa 02.04.2012 tarihinde TÜBİTAK Ulusal Bilgi Güvenliği Kapısı nda yayınlanan Oturum Açma Sistemleri Tasarımında Güvenlik [1] başlıklı makalede bahsedilmiştir. Web uygulamaları kimlik doğrulaması adımından başarı ile geçen kullanıcılar oturumlarını saklamak için Session ID/Cookie (çerez) bilgisini kullanırlar. Yaratılan bir çerezin içeriğinde kullanıcıya ait oturum kimliği de bulunur. Bu oturum kimlikleri kullanıcı başarılı bir kimlik doğrulama adımını geçtikten sonra özel olarak hazırlanmış tahmin edilmesi zor Session ID lerinden oluşturulurlar ve hem sunucu tarafında hem de kullanıcı tarafında saklanırlar. Bir çerez içeriğinde kimlik doğrulama (login/authentication) adımından önce bulunan Session ID, yani oturum kimliği, başarılı bir oturum açma işlemi sonrasında da kullanılmaya devam ederse, oturum açılmadan önceki çerezi çalan bir saldırgan, kullanıcı oturum açtıktan sonra da bu çerezi kullanarak sisteme yetkisiz erişim sağlayabilir. Kullanıcı giriş sayfalarında kimlik doğrulaması adımı geçilmeden yaratılan çerez bilgisinin kimlik doğrulaması adımından sonra da kullanılmaya devam ettiği durumlarda bu açığın varlığından söz edilebilir. Açığın Oturum Çalma (Session Hijacking) saldırılarından biri olan Oturum Dinleme (Session Sniffing attack) saldırısındaki kullanım şekli, bütün saldırı sürecinin daha kullanıcı kendi kimlik bilgisini (login/authentication) girmeden uygulamanın kullanacağı oturum çerezini atamasıyla başlıyor olmasıdır. Saldırgan kullanıcıya bir oturum çerezi atamak zorunda olmadan oturum öncesi oluşturulmuş olan bu kimliği çalarak, oturum açma işlemini gerçekleştirmiş veya gerçekleştirecek olan kullanıcının oturumunu ele geçirir. Oturum sabitleme (Session Fixation attack) saldırısında ise saldırgan bildiği bir oturum çerezinin kullanıcı tarafından oturum açma işlemi gerçekleşmeden kullanılmasını sağlar ve böylece kullanıcının saldırgan tarafından atanmış çerez ile oturum açması sonucu oturumu ele geçirir veya kendi oturumundan devam etmesini sağladığı kullanıcının bilgi gizliliğini bozabilir. Bu duruma örnek olarak, kullanıcının kendi oturumunun değiştiğini fark etmemesi ve kendi (kredi kartı, özlük, vs.) bilgilerini saldırgana ait oturuma girerek kaydetmesi gösterilebilir. Oturum öncesi tanımlı oturum açma çerezi açığının bulunduğu her sistemde, oturum açılması (authentication) sonrası yeni bir çerez oluşturulmaması nedeniyle Oturum Sabitleme saldırısından (Session Fixation attack) bahsedilebilir iken, Oturum Sabitleme saldırısının yapıldığı her sistemde bu açıktan söz edilemeyebilir. Oturum açma çerezinin kimlik bilgilerinin girildiği sayfada kimlik bilgileri girilmeden önce oluşturulduğu bir sistemde, kullanıcı girişi yapıldıktan sonra değiştirilmeyen bir çerez, aynı şekilde bir saldırgan tarafından önceden tanımlanabilir ve oturum sabitleme saldırısı gerçekleştirilebilir. Oturum sabitleme saldırısının yapıldığı bir sistemde çerezin kimlik bilgilerinin girilmeden oluşturulmadığı durumlarda veya oluşturulduktan sonra session_regenerate_id (PHP) gibi bir fonksiyon ile değiştirildiği senaryolarda oturum öncesi tanımlı çerez açığı bertaraf edilmiş olsa dahi bu durum oturumun devam ettiği herhangi bir anda çerezin bir saldırgan tarafından değiştirilip sabitlenmesine mani olmamaktadır. Kendi oluşturduğu oturumu kullanıcıya atayan bir saldırgan, kendi oturumu üzerinden kullanıcının hareketlerini izleyebilir ve karşı tarafın kimlik bilgisini geçirmese dahi yetkisiz erişim sağlayabilir veya gizliliği bozabilir.

Kullanıcı giriş yapmadan önceki çerez bilgisi (Session ID) ve açıktan etkilenen PHP kodu Kullanıcı giriş yaptıktan sonraki değişmeyen çerez bilgisi (Session ID) 2

Yukarıdaki ekran görüntülerinde oturum açıldıktan sonraki çerez bilgisinin kullanıcı adı ve parola girilmeden önceki çerez bilgisi ile aynı olduğu görülmektedir. Bu durumda oturum açılmamış bir sistem çerezi neredeyse oturum açılmış bir sistem çerezi ile aynı önem düzeyine sahiptir. Aşağıdaki ekran görüntülerinde oturum sonrası oluşturulan çerez değiştirilerek session_regenerate_id() fonksiyonu ile açık giderilmiştir. Kullanıcı giriş yapmadan önceki çerez bilgisi (Session ID) ve açıktan etkilenmeyen PHP kodu 3

Kullanıcı giriş yaptıktan sonraki yeniden üretilmiş çerez bilgisi (Session ID) Örnek PHP Kodu: <?php session_start(); if (isset($_post["submit"])) { if ($_POST["user"] == "gokhan" && $_POST["pass"] == "muharremoglu") { } }?> $_SESSION["username"] = $_POST["user"]; session_regenerate_id(); <html> <head> <title>iosec</title> </head> <body> <?php if (isset($_session["username"])) { echo("giriş Yaptınız!"); } else {?> <form method="post"> Oturum Öncesi Tanımlı Oturum Açma Çerezi Açığı <br><br> Kullanıcı Adı :<input type="text" name="user" /><br /> Parola :<input type="text" name="pass" /><br /> <input type="submit" name="submit" value="login" /> </form> <?php }?> </body> </html> 4

AÇIKTAN ETKİLENEN BİR SİSTEMDEKİ HTTP ÜST BAŞLIK BİLGİLERİ İlk defa görüntülenen kullanıcı girişi ekranı (oturum öncesi) (Status-Line) HTTP/1.1 200 OK Server Apache/2.2.3 (CentOS) Set-Cookie PHPSESSID=8usd2oeo11a8cod9q3lnev9je2; path=/ Expires Thu, 19 Nov 1981 08:52:00 GMT Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma no-cache Content-Type text/html Content-Length 308 Date Tue, 10 Jul 2012 06:16:57 GMT X-Varnish 1922993981 Age 0 Via 1.1 varnish Connection keep-alive Yollanan kimlik bilgileri (Request-Line) POST /iosec_login_vulnerable.php HTTP/1.1 Host www.iosec.org User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.0; tr; rv:1.9.2.25) Gecko/20111212 Firefox/3.6.25 (.NET CLR 3.5.30729;.NET4.0E) Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language tr-tr,tr;q=0.8,en-us;q=0.5,en;q=0.3 Accept-Encoding gzip,deflate Accept-Charset ISO-8859-9,utf-8;q=0.7,*;q=0.7 Keep-Alive 115 Connection keep-alive Referer http://www.iosec.org/iosec_login_vulnerable.php Cookie PHPSESSID=8usd2oeo11a8cod9q3lnev9je2 Content-Type application/x-www-form-urlencoded Content-Length 42 POST DATA user gokhan pass muharremoglu submit Login 5

Doğrulanan kimlik bilgileri ile açılan oturum (Status-Line) HTTP/1.1 200 OK Server Apache/2.2.3 (CentOS) Set-Cookie PHPSESSID=8usd2oeo11a8cod9q3lnev9je2; path=/ Expires Thu, 19 Nov 1981 08:52:00 GMT Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma no-cache Content-Type text/html Content-Length 308 Date Tue, 10 Jul 2012 06:16:57 GMT X-Varnish 1922993981 Age 0 Via 1.1 varnish Connection keep-alive Bir saldırgan bu açığı kullanarak aşağıdaki gibi bir senaryo ile oturum hırsızlığı (Session Hijacking) saldırısı gerçekleştirebilir: Bir bankanın şubesinde ortak kullanılan ancak sadece bankanın Web sitesinin kullanıcı girişi sayfasının görüntülenmesine izin verilen bir terminal/kiosk sisteminde tarayıcı üzerinde bulunan adres çubuğu görünür ve değiştirebilir haldedir. Ancak adres çubuğuna girilen bankanın Web siteleri haricindeki bütün Web siteleri güvenlik duvarı aracılığı ile açılmadan doğrudan bankanın Web sitesine yönlendirilmektedir. Adres çubuğuna javascript:alert(document.cookie) yazarak Oturum Öncesi Tanımlı Oturum Açma Çerezi ni (Session ID) bir kağıda yazan saldırgan, bu bilgiyi kiosk ile oturum açan bütün kullanıcılar için sırayla kullanarak, kiosk ile giriş yapan bütün kullanıcıların oturumlarını çalabilir. Benzer bir şekilde oturum açma ekranında HTTP kanalını kullanan ancak form verilerini HTTPS üzerinden yollayarak karışık mod (Mixed Mode) şifreleme kullanan bir Web sayfasında bu açığın bulunması, ağ üzerinde dinleme yapılarak oturumun daha HTTP kanalında iken çalınabilmesine olanak sağlamaktadır. Oturum Öncesi Tanımlı Oturum Açma Çerezi açığının bu senaryoda tam olarak işlemesi için belli başlı düşük seviye olarak nitelendirilmiş açığın bankanın Web sitesinde bulunması gerekmektedir. Bunlardan bazıları şunlardır: User-Agent, IP kontrolünün yapılmaması (Same Origin Policy), Adres çubuğuna erişilebilir olma, Http-Only Cookie kullanılmaması, Oturum sonunda yeni Session ID atanmaması. Buradaki senaryo ile beraber göz önünde bulundurulması gereken nokta, bilgi güvenliğinde bir zincirin en zayıf halkası kadar sağlam olması felsefesidir. Her zayıf halkanın (düşük-kritik seviye bir açığın) daha kolay kopabilir bir zincir meydana getirdiği unutulmamalıdır. Tek başına önemsiz gibi görünen birkaç düşük seviye açık, ciddi güvenlik ihlallerinin kapısını aralayabilir. Açıktan etkilenen örnek sayfa: http://www.iosec.org/iosec_login_vulnerable.php [1]- http://www.bilgiguvenligi.gov.tr/siniflandirilmamis/oturum-acma-sistemleri-tasariminda-guvenlik.html Gökhan Muharremoğlu Bilgi Güvenliği Uzmanı gokhan.muharremoglu@iosec.org 6