Ders 23 - Authentication Flaws > Multi Level Login 1 | |||||
Authentication Flaws(Kimlik Doğrulama Kusurları) ünitesinin dördüncü dersi olan
Multi Level Login 1(Çok Seviyeli Oturum Girişi 1) dersinde günümüzdeki bankaların internet şubelerinde kullanılan TAN[1] numarasının bir defalık kullanım ömrü olmasına rağmen ikinci kez nasıl kullanılabileceğinden ve böylece kurbanın banka hesabının senaryo gereği nasıl ele geçirilebileceğinden bahsedilecektir.
Dersin HedefiBu ders iki aşamadan oluşmaktadır.STAGE 1(AŞAMA 1) Bu aşama size sadece klasik bir "çok seviyeli oturum girişi"nin nasıl çalıştığını gösterecektir. Hedefiniz Jane kullanıcı adını ve tarzan şifresini kullanarak rutin bir giriş yapmaktır. Kullanabileceğiniz TAN'lar ders ekranında sıralanmıştır. STAGE 2(AŞAMA 2) Şimdi siz Jane adlı kullanıcının postasından palıklama(phishing) yöntemiyle bazı bilgiler çalmış olan bir hacker'sınız. tarzan şeklindeki şifreye ve ayrıca TAN #1 olarak 15648 numarasına sahipsiniz. Problem şu ki TAN #1 Jane tarafından zaten kullanıldı ve TAN numaraları bir kullanımlığa mahsustur. Kullanım sonrası geçersiz olurlar. Amacınız zaten kullanılmış olan TAN'a rağmen sunucuya kullanılmış TAN'ı tekrar kabul ettirmektir. AçıklamalarBir "Çok Seviyeli Oturum Girişi" sistemi güçlü bir yetkilendirme sağlamalıdır. Bu amaç var olan oturum girişine ikinci katmanı ekleyerek sağlanmıştır. Günümüz bankalarının internet şubelerini düşünelim. Eğer bir internet şubesine daha önce bağlandıysanız bilirsiniz ki hesabınıza girebilmek için öncelikle müşteri numarası tarzı bir veri, sonra ise şifre girersiniz. Girdiğiniz bu veriler şayet onaylanırsa akabinde bir TAN girmeniz istenir. TAN demek banka yetkilendirme numarasının ingilizce karşılığının baş harflerinden oluşan bir kısaltmadır. TAN bir çeşit sayı dizisidir. Siz telefonunuza sms olarak gelen bu sayıyı ikinci katmanda girerek internet şubesine bağlanırsınız. TAN verisi cep telefonuna sms olarak gelebileceği gibi mesela eposta aracılığıyla da gelebilir. Bu ders ekranında ise size kullanabileceğiniz birkaç tane bir defaya mahsus kullanıma sahip TAN'lar verilmiştir.Dersin ÇözümüAşama 1Bu aşamada rutin bir giriş yapılarak sistemin nasıl çalıştığı gösterilmek istenmiştir. Öncelikle size verilen kullanıcı adı ve şifreyi metin kutularına girin: Kullanıcı Adı: Jane, Şifre: tarzan . İlk katmanı geçtikten sonra ikinci katmanda sizden istenen TAN'ı ders ekranında sıralı TAN'lar içinden bulup kopyalayın. Burada dikkat etmeniz gereken husus login sisteminin sizden istediği TAN'ın #1 mi #2 mi yoksa diğerleri mi olduğunu görmenizdir. Eğer daha önce deneme yanılma yapmamışsanız sizden istenen TAN #1 olacaktır. Dolayısıyla TAN #1'i kopyalın ve metin kutusuna yapıştırın. Ardından Submit butonuna basın. Böylece aşama 1'i tamamlamış bulunmaktasınız. Bu aşama ile login sistemin iki katmanlı oluşunu deneyimlemiş oldunuz. Aşama 2 Şimdi Aşama 1'de yaptığınız oturum girişinden çıkmanız gerekmektedir. Çünkü kurbanın hesabına geçiş yapacağız. Bu yüzden logout düğmesine tıklayın. Şimdi biraz senaryodan bahsedelim. Senaryoya göre siz bir hacker olarak kurbana sanki banka yolluyormuşçasına süslemelere sahip bir eposta gönderdiniz. Bu eposta ile kurbanın kullanıcı adı ve şifresini, hatta TAN'ını bile yemlemenin(phising'in) sahiciliğinden ötürü aldınız. Bu yapılan sahtekarlığa phising denmektedir. Bu bilgileri kullanarak bankanın internet şubesine giriş yapmak istiyorsunuz. Fakat TAN'lar sadece bir defalığa mahsus kullanılmak üzere kullanıcıya verilen seri numaralardır. Zaten kullanıcı tarafından kullanılmış bir TAN'ı bankaya kabul ettirmek ise bankanın vereceği bir güvenlik açığı ile mümkündür. Diğer türlü böyle bir şeyin olması beklenemez. Bu ders ekranındaki bankanın verdiği açığa birazdan değinilecektir. Çalınan kullanıcı adı ve şifreyi ders ekranındaki login sistemine girin(Kullanıcı Adı: Jane, Şifre: tarzan). Submit deyin. Ardından sistem sizden 2 numaralı TAN'ı girmenizi isteyecektir. Sizin elinizde 1 numaralı TAN var. Bu noktada öncelikle WebScarab'dan yardım istemeliyiz. WebScarab'daki Intercept sekmesine tıklayın ve Intercept Request checkbox'ına tick işareti koyun. Böylece sunucuya gönderilecek talepler sunucuya gitmeden önce WebScarab proxy'sine gelecektir. Şimdi elinizde var olan 1 numaralı TAN'ı ders ekranındaki metin kutusuna girin: 15648. Ardından Submit düğmesine basın. Ekrana bir WebScarab popup penceresi gelmiş olmalıdır. Bu pencere aşağıdaki gibidir: Sunucuya login olurken 3 tane değişken gönderdiğimizi ekrandan kolayca görebiliriz. Birincisi Submit butonu ve değeri, ikincisi tan değişkeni ve girdiğimiz tan değeri, üçüncüsü ise hangi numaralı tan geliyoru tutan hidden_tan değişkeni ve 2 değeri. Burada sanırım fark etmişsinizdir sistemin verdiği açığı: Sistem TAN numarasını kullanıcıdan aldığı gibi hangi TAN'ın geleceği kararını da kullanıcının bilgisayarına gönderdiği rakama göre belirliyor. Fakat unutulan şey şu ki kullanıcıya gönderdiği rakam kullanıcı tarafından WebScarab gibi bir yazılımla kolayca değiştirilebilmektedir. Resimde dikkat ederseniz hidden_tan değişkeni 2 sayısını tutmaktadır. Yani sunucu TAN #2'yi istemektedir. Biz ise sunucu bizden TAN #1'i istiyor yaparsak, yani 2 değerini 1 yaparsak kullanılmış TAN #1'i tekrar sisteme kabul ettirmiş oluruz. Dolayısıyla hidden_tan hücresinin değerini taşıyan hücreye çift tıklayın. 2 sayısını silip 1 yapın, enter'layın ve Accept Changes düğmesine tıklayarak talebinizi sunucuya gönderin. Böylece dersi başarıyla tamamlamış olursunuz. Sonuç Banka, müşterisinden beklediği TAN'ı müşterisinden gelen "hangi TAN" bilgisine göre değerlendirirse hata etmiş olur. Sunucunun hangi TAN'ı seçip kıyaslayacağı bilgisi sunucu tarafında kalmalıdır ve bu saklı bilgiye göre müşterinin girdiği TAN ile sistemdeki TAN kıyaslanmalıdır. Diğer türlü eğer kıyaslanacak TAN'ın hangisi olduğu bilgisi müşteriye gönderilirse ne kadar müşteriye bu hangi TAN'ın değerlendirileceği bilgisi ekranda gösterilmiyor da olsa sonuçta gönderildiğinden kötü niyetli kişi kaynak koda inerek bu sözde saklı bilgiyi görebilir: Bu durum istismara açıktır. Dolayısıyla kıyaslanacak TAN kararı sunucu tarafında verilip kullanılan TAN'lar ise artık kullanılmayacaklar tablosuna eklenerek bu sorun çözülebilir(Tablodan kastım veritabanı tablosudur). [1] Transaction Authentication Number - TAN ( Banka işlemi yetkilendirme numarası ) |
|||||
Bu yazı 03.09.2015 tarihinde, saat 20:15:47'de yazılmıştır. 23.09.2015 tarihi ve 16:06:57 saatinde ise güncellenmiştir. | |||||
|
|||||
Yorumlar |
|||||
Henüz yorum girilmemiştir. | |||||
Yorum Ekle | |||||