Lapse of Keyboard at Internationalized Domain Name
LOKIDN "Homograph Attacks" türünde daha önce keşfedilmemiş yeni bir saldırı vektörüdür.
EDB-ID: 45567
LOKIDN
1.0. Giriş 2.0. IDN Yapısı 3.0. Özet 4.0. Nasıl Sömürülür? 4.1. Görsel Kaynak Sömürme 4.2. Stil (CSS) Kaynağını Sömürme 4.3. Zararlı Hedefe Yönlendirme 4.4. Hazır Scriptlerle Oluşan LOKIDN Zafiyeti 4.5. Alan Adına Ait Mail Adresini Sömürme 4.6. Ters Mantık ile Sömürme 5.0. Olası Durumların Analizi 5.1. Örnekleme 5.2. Yüksek Riskli IDN 6.0. Nasıl Test Edilir ve Korunulur? 7.0. Hakkımda 8.0. Ekler
1.0. Giriş
Hızla gelişen ve popülerleşen web dünyası ile birlikte özel alan adlarına da ilgi oldukça artmıştır. Günümüzde gerek kurum/kuruluş gerekse birey bazlı düşünecek olursak, markalaşma ve dikkat çekme amaçları doğrultusunda uygun bir alan adı alınması çok önemlidir. Dünyada giderek artan alan adı ihtiyacı, alan adı yetersizliğini doğurmuştur. Popüler TLD(Top Level Domain) uzantılarıyla(.com, .net, .org) istenilen alan adını kiralamak neredeyse imkansız hale gelmiştir. Bu durum dünya çapında yeni bir fikir ortaya atılmasına sebep olmuştur. Ülkelerin kendi ana dilleri ve alfabesiyle alan adı sağlama imkanı sunularak büyük bir problem haline gelen yetersizliğin birazda olsa önüne geçilmek istenmiştir. Bu teknoloji phishing saldırıları ile birlikte, "Lapse of Keyboard at Internationalized Domain Name (LOKIDN)" zafiyetini de beraberinde getirmiştir. Bu zafiyet türü ilk defa şahsım tarafından keşfedilmiştir.2.0. IDN(Internationalized Domain Name) Yapısı
IDN ile ASCII karakter dizisinde yer almayan özel karakterlerin kullanılması mümkündür. Alan adı için kullanılabilecek ASCII karakterler de ayrıca sınırlandırılmıştır. Standart alan adları "a-z, A-Z, 0-9 ve '-'" karakterleriyle kısıtlanmaktadır. IDN mimarisiyle UNICODE karakterlere sahip bir alan adı ASCII karakterlere dönüştürülerek doğru sunucuyla iletişim sağlanır. Aynı şekilde ASCII karakterlere sahip bir alan adını UNICODE karakterlere dönüştürebilmektedir. Bu mimariye örneklem yapacak olursak; tarayıcıya "lokıdn.com" yazıldığında IDN mimarisi alan adının ASCII karakterlerinden oluşan şeklini çözümleyerek DNS'e standart bir alan adı gibi sorgular. IDN kullanıcının görmesi gerektiği gibi tarayıcı üzerinde UNICODE alan adını yansıtır. "lokıdn.com" alan adının ASCII karşılığı "xn--lokdn-p4a.com" dizisiyle eşleşmektedir. Alan adı temelde "xn--lokdn-p4a.com" olarak kiralanmış olunur. IDN mimarisiyle bu ASCII dizisi, tarayıcının da desteklemesiyle birlikte özel karakterlerin yansıtılmasını sağlamış olur. IDN birçok ülke ve bölgede kullanılmaktadır.3.0. Özet
Karmaşık web uygulamaları geliştiricileri uygulama geliştirme veya güncelleme aşamalarında teknik hatalar gerçekleştirebilir. Nitekim güvenlik zafiyetlerinin bir çoğu geliştirici veya yönetici kişiler tarafından yaratılmaktadır. Geliştiriciler uygulama içerisinde kaynak gösterirken klavye yazım hatası gerçekleştirebilir. IDN alan adları bu kaynak hataları doğrultusunda güvenlik zafiyeti oluşturmaktadır. LOKIDN zafiyeti standart alan adı (ASCII) karakterleriyle örtüşen yani latin alfabesinin türlerini kullanan ülkelere ait klavyelerde ortaya çıkabilmektedir. Geliştirici veya yönetici klavyesinin desteklediği alfabe setinden dolayı alan adını yanlış bir şekilde kaynak gösterebilir. Bu tıpkı ufak bir dalgınlık sebebiyle web uygulamaları içerisinde veritabanı sorgularına yönelik güvenlik önlemlerinin alınmayarak injection zafiyetinin oluşturulmasına sebebiyet verilmesine benzemektedir. Dolayısıyla saldırgan bırakılan güvenlik zafiyeti türlerini sömürerek sisteme müdahale edebilir. Sistem yetkilisinin “lokidn.com” alan adı yerine “lokıdn.com” yazmasıyla LOKIDN zafiyeti oluşur. Saldırgan bu zafiyeti keşfederek daha önce hiç kiralanmamış ve kiralama için uygun olan “lokıdn.com” yani “xn--lokdn-p4a.com” alan adını kiralayarak sistem yöneticisinin hata yaptığı kaynaklara müdahale edebilir. Zafiyet ters mantık ile de oluşabilir.4.0. Nasıl Sömürülür?
Lapse of Keyboard at Internationalized Domain Name (LOKIDN) zafiyeti çok farklı alanlarda keşfedilebilir. Zafiyetin bulunduğu alana uygun şekilde sömürme işlemleri gerçekleştirilebilir. Genel başlıklarla hangi sömürme işlemlerinin yapılabileceğini inceleyeceğiz.4.1. Görsel Kaynak Sömürme
Hedef sitede manuel olarak yerleştirilen bir bağlantı görüyoruz. Bu kaynak kod “lokidn.com” alan adlı web sitesine aittir. Klavye hatası yapıldığı için LOKIDN zafiyeti olduğu anlaşılıyor.img class="center" src="http://lokıdn.com/images/banner.jpg"



4.2. Stil(CSS) Kaynağını Sömürme
Saldırgan web sitelerinin vazgeçilmezi olan CSS kaynaklarında keşfedilecek bir LOKIDN zafiyetiyle sitenin görünümünü bozabilir veya şeklini değiştirebilir. CSS kaybından dolayı tamamen şekli bozulmuş bir siteye de istediği şekillendirmeyi yapabilir. Örneğimizde CSS kaybından dolayı “center1” adlı class doğru reaksiyonu göstermiyor.

img.center1 { display: block; margin-left: auto; margin-right: auto; width: 200%; height: 200%; }Boyutları %200’e kadar arttırıp görselin tüm siteyi kaplayarak sitenin bozulması sağlanabilir.


body { background-color: #171b1b; background-image: url(../index_files/Hacked.png); }Bu sayede saldırgan sitenin arka planına istediği görseli yerleştirebilir.


4.3. Yanlış Hedefe Yönlendirme
LOKIDN zafiyeti sadece kaynak gösterilen dosya yolu bağlantılarında değil, sıradan link ve yönlendirme bağlantılarında da yer alabilir. Web uygulamasının farkı bir bölümüne veya uygulama içerisinde yer alan farklı bir sayfaya yönlendirme yapılırken klavye hatası yapılmış olunabilir. a href="http://lokıdn.com/blog.php” target="_blank">Blog /a
?php
$line = date('Y-m-d H:i:s') . " - $_SERVER[REMOTE_ADDR]";
file_put_contents('ziyaretci.log', $line . PHP_EOL, FILE_APPEND);
?

4.4. Hazır Scriptlerle Oluşabilecek LOKIDN Zafiyeti
Bir çok hazır script ve bu scriptlere ait eklentiler(plugins) İngilizce alfabe haricinde girilen herhangi bir metni otomatik olarak İngilizceye çevirebilmektedir veya tanımlayamadığı özel karakterleri yok sayabilir. Bu tarz scriptler çeviri işlemi esnasında herhangi bir hata vermez ve yönetici tarafından yazılan girdiyi kendine ait mantıkla uygulamaya yansıtır. Dolayısıyla yönetici oluşabilecek LOKIDN zafiyetinden haberdar olmayabilir. Örnek bir input olarak “http://lokıdn.com” yazıldığını varsayarsak, kullanılan özel script veya eklenti bu girdiyi “http://lokidn.com” veya “http://lokdn” şeklinde çevirerek uygulama içerisine yerleştirir. Bu doğrultuda özel scriptler LOKIDN zafiyeti oluşmasına sebebiyet verebilir.4.5. Alan Adına Ait Mail Adresini Sömürme
Alan adlarına özel mail kullanımında da LOKIDN zafiyeti barınabilir. Geliştirici veya yönetici diğer LOKIDN çeşitlerinde olduğu gibi mail adresini belirtirken klavye hatası yapabilir. “lokidn.com” web sitesinde aşağıdaki gibi bir info mail bağlantısı yerleştirildiğini görüyoruz. a href="mailto:info@lokıdn.com">Contact Me /a
4.6. Ters Mantık ile Sömürme
LOKIDN zafiyeti sadece ASCII karakterlere sahip bir alan adının klavye hatasıyla UNICODE karakterlerle yazılmasına yönelik oluşmamaktadır. Sistem sahibinin bilinçli olarak “lokıdn.com” alan adını satın aldığı varsayılırsa, klavye hatasıyla kaynak kodda “lokidn.com” yazılmasıyla da LOKIDN zafiyeti oluşur. Bu durum da ters mantık ile zafiyetin oluşmasına olanak sağlar. Gösterilen örneklerin tamamı ters mantık ile gerçekleştirilerek zafiyet sömürülebilir.5.0. Olası Durumların Analizi
LOKIDN zafiyeti, klavyenin de desteklemesi üzerine insanların alan adında kullanılan bu kelimeleri ana dilindeki okunuş şekliyle yazması sonucu oluşur. İngilizce klavyede Türkçe bir IDN için hata yapılması mümkün değildir. Latin alfabesiyle IDN hizmeti verilebilen ülkelerde ana dilde klavye kullanımı söz konusuysa LOKIDN zafiyetinin oluşması olasıdır. The European Registry of Internet Domain Name (EURid) tarafından alfabeye ve ülkelere göre IDN dünya haritası oluşturulmuştur.
5.1.Örnekleme
LOKIDN zafiyeti, farklı alfabelere ait karakterler birbirine benzer olduğunda da ortaya çıkabilir.
