LOKIDN "Homograph Attacks" türünde daha önce keşfedilmemiş yeni bir saldırı vektörüdür.

EDB-ID: 45567

  • Exploit-DB Link
  • OWASP List
  • 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"    
    
    Dolayısıyla “lokıdn.com” alan adını satın alarak hedef klasörden çekilmek istenen görsele müdahale edebiliriz.

    “lokıdn.com” alan adını kiraladıktan sonra “/image/banner.jpg” yoluna sitede yansımasını istediğimiz herhangi bir görsel yerleştirebiliriz.

    “lokidn.com” adresini yenilediğimizde sonuç sitenin hacklendiğini söylüyor.

    Saldırgan site logosunda, arkaplanda, galeride veya reklam alanlarındaki görsel kaynaklarda bırakılan LOKIDN zafiyetleriyle benzer müdahalelerde bulunabilir.

    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.

    LOKIDN zafiyeti olduğu keşfedilerek dosya yolu sömürülür.

    Artık sytle2.css dosyasının içerisine ismini bildiğimiz “center1” adlı bir class oluşturarak görsel boyutuyla oynama yapılabilir.

    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.

    Siteye ait temel CSS dosyası da LOKIDN zafiyetinden dolayı kayıp olabilir. Saldırgan aynı mantıkla siteye ait tüm alanların stillerinde değişiklik yaparak oynayabilir.

    Siteye ait style.css dosyasının LOKIDN zafiyetinden dolayı çağrılamadığı görülmektedir.

    Kaynak kod incelendiğinde “menu” ve “body” genel class isimlerinin kullanıldığı tespit edilir. Bu doğrultuda “lokıdn.com/index_files/style.css” dosyasının içeriğine aşağıdaki gibi bir class yerleştirilebilir.

    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.

    Örneklerde gösterildiği üzere saldırgan CSS ile yapılabilecek tüm işlemleri sömürerek LOKIDN zafiyeti içeren siteyi şekillendirebilir.

    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   
    
    “lokidn.com” sitesine ait kaynak kodda yukarıdaki gibi bir yönlendirme kodunda LOKIDN zafiyeti olduğu keşfedildiğinde, saldırgan “lokıdn.com” alan adı üzerinde oluşturacağı “blog.php” dosyasıyla bir çok işlem yapabilir. Sahte bir blog login sayfası oluşturarak, uygulama kullanıcı bilgilerini elde edebilir.
    ?php
        $line = date('Y-m-d H:i:s') . " - $_SERVER[REMOTE_ADDR]";
        file_put_contents('ziyaretci.log', $line . PHP_EOL, FILE_APPEND);
    ?   
    
    Kodlarına sahip bir “blog.php” dosyası oluşturularak ziyaretçilerden IP bilgisi alınabilir.

    Bu yönlendirme linki aynı zamanda bir “download” yani indirme linki ise saldırgan kaynak koda trojan,shellcode gibi uzak bağlantı sağlayabilecek içeriğe sahip dosya yerleştirebilir.

    Saldırgan akla gelebilecek bir çok oltalama(phishing) yöntemiyle de LOKIDN zafiyetini sömürebilir.

    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 
    
    Saldırgan satın aldığı “lokıdn.com” alan adı üzerinde “info” mail adresi oluşturarak sitedeki kullanıcılara ait özel konuşmaları ve hatta kişisel bilgileri elde edebilir.

    Sistem yöneticileri kullandıkları hazır veya özel scriptlerde admin(yönetici) hesabına ait mail adreslerinde klavye hatası yapabilir. Bu durumda yine LOKIDN zafiyeti oluşmuş olur. Saldırgan bu durumu keşfederek, “şifremi unuttum” işlemleriyle yönetici hesabını ele geçirerek sistemi hackleyebilir.

    Hatta sistem yöneticisi herhangi bir LOKIDN zafiyeti bırakmasa bile saldırgan klavye hatası yapılabilecek alan adını satın alarak sosyal mühendislik saldırıları düzenleyebilir. Saldırgan “lokıdn.com” alan adını kiralayarak, tüm bu alan adlarına uygulamadaki kullanıcıların sürekli iletişim halinde olduğu “info@lokidn.com” gibi mail adresi oluşturup herhangi bir kullanıcının klavye hatası yaparak sahte alan adına mail atmasını bekleyebilir.

    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.

    Yeşil renkli ülkeler latin alfabesi kullanmaktadır. Mor renkli ülkeler ise karışık olarak değerlendirilmiştir. Dolayısıyla bu ülkelerde LOKIDN zafiyetinin meydana gelmesi olasıdır.

    Ek olarak EURid tarafından IDN yapısının izin verdiği bir karakterler listesi sunulmuştur. Makalenin sonundaki link üzerinden erişim sağlayabilirsiniz.

    5.1.Örnekleme

    LOKIDN zafiyeti, farklı alfabelere ait karakterler birbirine benzer olduğunda da ortaya çıkabilir.

    Bütün benzer karakter tiplerinde hata yapılması mümkündür.

    Benzer karakterlerle örnek yapalım; ( ì - í - ï - ı - i / ό - ὂ - ὄ - ὅ - ö - o )

    Bu karakterler IDN için kullanılabilir. Dolayısıyla LOKIDN zafiyeti oluşabilir. Örneğin; Aşağıdaki gibi IDN kayıtları yapılması mümkündür.

    Homoglif karakterler tablosuna eklerde yer alan linkten erişebilirsiniz.

    5.2.Yüksek Riskli IDN

    Kelimelerin yazılışı ve okunuş şekli LOKIDN zafiyetinin oluşmasında oldukça önemlidir. Bu durum LOKIDN riskini önemli ölçüde arttırmaktadır. Çünkü insanlar okudukları gibi yazabilirler. Örneğin; “domain” kelimesi Türkçe’de “Alan adı” anlamına gelmektedir. Bu yüzden “alanadi.com”, “alanadı.com” olarak okunur. Dolayısıyla “alandi.com” sahibinin klavye hatası yapma riski çok yüksektir. Sadece yönetici değil, kullanıcıların da bu tarz alan adlarında klavye hatası yapmaları mümkündür. Bu durum diğer diller için de geçerlidir.

    6.0.Nasıl Test Edilir ve Korunulur?

    Owasp ZAP, Nessus, Acunetix, Vega, Netsparker vb. aktif web uygulama tarayıcıları bu zafiyetin taramasını ve testini henüz gerçekleştirmemektedir. LOKIDN zafiyetinin uluslararası geçerliliğinin kabulüyle tarama araçlarında(scanner tools) zafiyetin testine ve keşfine yer verilmesi şarttır. Zafiyetin keşfi web uygulamasına ait tüm sayfaların ve alanların kaynak kodunda olası IDN türlerinin taranmasıyla yapılabilir. Web uygulama tarayıcısına “lokidn.com” yazılarak taramanın başlatılmasıyla, tarayıcı kaynak kodlarda “lokıdn.com”, “lökidn.com” ve “lökıdn” IDN kombinasyonlarını taraması gerekmektedir. Aynı şekilde IDN olan “lokıdn.com” alan adı yazıldığında da ters mantıkla “lokidn.com”, “lökidn.com” ve “lökıdn.com” kombinasyonlarının taranması gerekir.

    Henüz tarama araçlarının desteğinin olmaması sebebiyle, geliştiriciler ve yöneticiler sahip oldukları sistemin kaynak kodlarını ve kullanılıyorsa veritabanını manuel şekilde taratarak LOKIDN zafiyetinin olup olmadığını analiz edebilir.

    Korunmanın ilk yolu, alan adıyla örtüşen IDN’lerin satın alınmasıdır. Bu tehlikeden dolayı LOKIDN zafiyeti riski baz alınarak sistem sahiplerinin tüm kombinasyonlardaki alan adlarını da kiralaması şarttır. Aksi takdirde LOKIDN zafiyetine maruz kalmamak mümkün değildir. Kullanılan web scriptte bazı güvenlik önlemleri alınabilir. Yönetici panelinde bulunan bilgi giriş(input) alanlarına herhangi bir link girişi yapılıyorsa, scriptin bu linki LOKIDN mantığına dayalı analiz ederek, yöneticiyi “Bunu yapmakta emin misin?” gibi uyarı mesajlarıyla bilgilendirmesi gerekir. Sistem yöneticisine bağlı olarak bu girişlerin hiç bir şekilde yapılmaması da sağlanabilir.

    7.0. Hakkımda

  • >> WHOAMI <<
  • 8.0. Ekler

  • >> Homoglif Karakter Listesi <<
  • >> IDN Dünya Haritası <<
  • >> EURid IDNs Bilgilendirmesi <<
  • PDF

  • >> PDF versiyonu için tıklayın <<