Subdomain Takeover Saldırısı ve Korunma Yöntemi

Subdomain Takeover Saldırısı ve korunma yöntemleri

Üçüncü parti internet hizmetlerinin kullanımının yaygınlaşması ve subdomain kullanımındaki artış beraberinde bazı riskleri gündeme getirmiştir. Kullanımı yaygın olan Github, Heroku, Tumblr, Amazon S3, Shopify, Slack, Tumblr, WordPress, Webflow bu üçüncü parti internet hizmetlerden bazılarıdır. Saldırının kısaca açıklaması; subdomainin DNS kaydıyla farklı bir domaine yönlendirilmesinin ardından, yönlendirilen domainin bir nedenle tekrar alınabilir hale gelmesini fırsat bilen bir saldırganın domaini alarak, subdomainin kontrolünün ele geçirilmesidir.

Hindistanlı bir güvenlik araştırmacısı SAHAD NK tarafından yapılan bir çalışmada success.office.com un, subdomain takeover a saldırısına açık olduğunu görüldü. Microsoft Azure Web App den bir uygulama açıp daha önce işaret edilmiş olan Web App adıyla yeni bir kayıt oluşturmuş ve Microsoft’un Subdomainin kontrolünü ele geçirmiştir.

Peki, bu açıklıkla ne elde edilebilirdi? Kullanıcıların Microsoft hesapları! Kimlik doğrulama işlemini başlatan Outlook.com veya Sway.com olsa bile login.live.com, https://success.office.com sitesinin geçerli bir yönlendirme URL’si olmasına izin verip, oturum açma tokenlarını bu etki alanına gönderiyordu. Bu durumda success.office.com subdomaininin kontrolünü elde eden birisi, kullanıcın adını/şifresini bilmeden oturum açmak için bu bilgiyi kullanabilir hale geliyordu.

Amerika başkanlık seçimlerinde Donald Trump için yapılan yardım kampanyası web sitesinin, yine subdomain takeover saldırısıyla “Pro_Mast3r” tarafından ele geçirilmesi; bu açıklığa neden olan yapılandırma eksikliğinin gözden kaçırılması nedeniyle uzun müddet kullanılacak gibi durmaktadır. Aşağıdaki resimde yönetimi ele geçirilen secure2.donaldjtrump.com subdomainin ekran görüntüsünü bulabilirsiniz.

Trump Hacked

Bazı kuruluşlar kendi sistemlerinde açıklık bulanlara ödül vadettikleri için siber güvenlikle ilgilenen bir çok kişi bu sürece dahil oluyor. Subdomain takeover ile ilgili biraz daha detaya girmek gerekirse;

Subdomain farklı alanlarda hizmet veren büyük kuruluşlar ya da verilen hizmetler için farklı dallar oluşturmak isteyen tarafından tercih edilmektedir.  Subdomain adı, domain adının önüne ek almış halidir. Domain adından türetilirler. Örneğin greenanimalsbank.com domain adı iken, blog.greenanimalsbank.com ya da green.greenanimalsbank.com subdomain adıdır. Kuruluşlar özellikle blog, forum gibi ana sayfadan ayrı tutulacak ya da tutmak istedikleri içerikler için subdomain kullanmaktadır. Domain adlarında olduğu gibi subdomain adlarında da başka domain adlarına yönlendirme işlemi yapılabilmektedir.

Üçüncü Taraf Bulut Hizmetleri giriş kısmında da bahsedildiği gibi, büyük ve küçük birçok kuruluş tarafından kullanılan, son derece yaygın bir çözümdür. Birçoğu belli bir zaman dilimine kadar ücretsiz hizmet (web depolama servisi, nesne depolama hizmeti, git servisi, yardım masası hizmetleri, mail uygulamaları vb) sunar ve yapılandırması basittir. İstenilen kaynağın oluşturulması için bulut hizmeti kullanılır ve istemciler CNAME veya DNAME gibi kayıtlar (yönlendirme yapılacak olan domainin alan adı kaydını tutar) kullanılarak subdomain den üçüncü taraf bulut hizmetine yönlendirilirler.

Subdomain Takeover Açıklığı Nedir?

Subdomain takeover (alt alan adı devralma), yetkisiz bir şekilde bir subdomain adının ele geçirilerek kontrolünün alınmasıdır. CNAME kaydı ile gerçekleşen en yaygın senaryo aşağıdaki gibi özetlenebilir.

  • Bir domain adı (örnek; green.greenanimalsbank.com), başka bir domain için bir CNAME kaydı (green.greenanimalsbank.com CNAME subdomaintakeover.com) kullanır.
  • Bir süre sonra, subdomaintakeover.com domain adının kullanım süresi dolar ve herhangi biri tarafından tekrar alınması için önünde bir engel kalmaz.
  • CNAME kaydı green.greenanimalsbank.com DNS zone dosyasından silinmediği süre boyunca, subdomaintakeover.com domain adını alan herhangi biri, halihazırdaki DNS kaydı ile green.greenanimalsbank.com üzerinde tam kontrole sahip olur.

Yukarıdaki örnek üçüncü taraf bulut hizmetleri için düşünülürse hizmetin kaldırılması ya da silinmesi yine subdomain takeover açıklığına neden olmaktadır. Nedeni bir örnekle açıklanacak olursa;

green.greenanimalsbank.com subdomain adından github da bir sayfaya yönlendirme işlemi gerçekleştirilmiş olsun ya da içerik Github dan da sağlanıyor diyebiliriz. Github kullanıcısı sayfayı kaldırmış ya da silmişse (subdomainin CNAME kaydı ile işaret ettiği domainle ilişkisini kestiyse), durumu farkeden bir saldırgan atağa geçebilir. Github da yeni bir sayfa oluşturup CNAME kaydını da kullanarak green.greenanimalsbank.com subdomain ine iddiada bulunabilir. Başka kelimelerle tekrar ifade edilecek olursa tıpkı ilk oluşturduğumuzdaki konfigürasyon kullanılarak subdomain adı Github da belirtilerek kaydedilir. Mağdur kullanıcı her zamanki gibi aynı siteyi ziyaret ettiğinde içeriği değiştirilmiş ya da ele geçirilmiş başka bir subdomaini ziyaret etmektedir. Bu saldırı sadece Github ile değil diğer bulut hizmeti sağlayıcıları aracılığı ile de gerçekleştirilebilir. Aynı mantıkla, sonlandırılan ve yeni kullanıcıların hizmetine açılan servisleri eski CNAME bilgisi ile konfigüre ederek yeniden oluşturmaktır. Geçmişte bu tür saldırılara maruz kalmış kuruluşların birkaçına örnek vermek gerekirse Slack, GitLab, Uber söylenebilir.

Subdomain Takeover Nasıl Tespit Edilir?

CNAME subdomain takeover tespiti yapılırken yönlendirme işlemi gerçekleştirilmiş olan Domain adı yeni kayıt için uygun mu kontrolü gerçekleştirilir. Eğer kayıt için uygunsa açıklık vardır. Yeni bir domain adı kaydının yapılıp yapılamayacağı ise ICANN’ a kayıtlı herhangi bir kuruluştan kontrol edilebilir. Örneğin isimtescil.net, natro.com vb. Domain adı kaydının kontrolünün (NXDOMAIN yani olmayan bir domain adın sorgulanmasıyla) DNS cevabıyla da gerçekleştirilebileceği düşünülebilir. Bu gibi durumlarda yanıt olarak NXDOMAIN cevabı alınsa dahi domain adının kaydedilemeyeceği özel durumların olabileceği unutulmamalıdır. Örneğin .gov, .mil, .museum gibi.

Saldırgan gözü ile subdomain takeover tespitinde genellikle otomatize edilmiş yöntemler kullanılır. Öncelikle hedef domainin, sahip olduğu subdomain tespiti yapılır. Bu tespiti gerçekleştirmek için kullanılan ücretli-ücretsiz bir takım araçlar mevcuttur. Örnek olarak HostileSubBruteForcer, Sublist3r, Aquaton açık kaynak kodlu araçlardır. Online web siteleri ile de subdomain tespiti gerçekleştirilebilir örneğin DNS Dumpster, VirusTotal, Cyberint gibi…

Subdomain Takeover ile Neler Yapılabilir?

Kuruluşlar genellikle DNS yapılandırmalarını düzenli olarak denetlemezler. Çoğu zaman, DNS zone dosyalarına giriş eklemek, değiştirmek veya kaldırmak için yapılan standart bir işlem de yoktur. DNS kayıtlarındaki değişiklikleri kaydetmek dahi yaygın olarak yapılmamaktadır. Kuruluşlar için bunun bir karmaşa olduğu ve çok geç olmadan iyileştirmesi gerekliliği vardır.

Bu nedenle bir subdomainin devralmasının sonuçları kuruluşlar için oldukça kötü sonuçlar doğurabilir. Siber saldırganlar, phishing ile kimlik avı kampanyası başlatabilir, siteler arası betik çalıştırılmasını sağlayabilir veya kurumun itibarına- zarar verebilir. Mağdurun, içeriğin domain adı sahibi veya bir siber saldırgan tarafından gerçekleştirilip gerçekleştirilmediğini de söylemesinin bir yolu yoktur. DNS kaydı nedeniyle gerçekleşen bu açıklık aslında, insan hatası, ya da yanlış yapılandırma kaynaklı oluyor da denilebilir. 

Subdomain Takeover Nasıl Önlenir?

DNS izleme, çok sayıda sunucuları olan kuruluşlar için, biraz daha zahmetli olabilir. Bununla birlikte, subdomain takeover saldırılarının önlenmesi için öncelikle dijital ayakizinin (footprint) DNS kayıtları düzgün bir şekilde izlenmeli ve analiz edilmelidir. Eski DNS girişlerinin (CNAME kayıtları) bırakılmadığını manuel olarak kontrol etmekten kaçınılmalıdır. Kurum içi çözümlerle ve ücretli araçlarla eski CNAME kayıtlarının temizlenmesi otomatikleştirilmeli ve DNS zone dosyası güncel tutulmalıdır. Subdomain takeover bilindik bir ortadaki adam tarzı saldırı (man in the middle) olmadığından TLS / SSL bu sorunu çözmediği de unutulmamalıdır.

Subdomain Takeover Saldırı Örneği

Adım adım subdomain takeover saldırısı örnekle nasıl gerçekleştirilebilir?

Subdomain Takeover Saldırı Örneği
  • green.greenanimalsbank.com subdomain adına sahip olan bir kullanıcı github ta oluşturacağı içeriği kullanmak istiyor. İçeriği github da hazırladıktan sonra green.greenanimalsbank.com subdomainini custom domain olarak belirterek ilişkisini kuruluyor.
  • Kullanıcının işlemlerini tamamlaması için hosting hizmeti aldığı yerden CNAME kaydı girmesi gerekmektedir.
  • CNAME kaydı tamamlandıktan sonra github ta oluşturulan sayfa kullanıma hazır hale gelir. Subdomaini ziyaret eden bir kullanıcı Github da oluşturulan içeriği görecektir.
  • Belirli bir zaman sonra herhangi bir nedenden ötürü üçüncü taraf bulut hizmeti sağlayan yer bağlantıyı kaldırdı ya da artık CNAME kaydı yapılan diğer domain bir şekilde aktif değil. Örnek saldırıda mevcut github kullanıcısının kullanıcı adı değiştirilerek github ın kullanıcı adına göre oluşturmuş olduğu domain adı bilgisi değiştirildi.

Yukarıda verilen uyarı subdomain takeover saldırısı için bir hatırlatma sayılabilir. Github da oluşturulmuş olan kullanıcının adı değiştirilerek sağlanan domain boşa çıkarılmış veya kullanılabilir hale gelmiş oldu.

Github username error

Kullanıcılar subdomaini ziyaret ettiklerinde yukarıdaki gibi bir hata ile karşılaşacaklar.

Github 404
  • Art niyetli bir kullanıcı ya da saldırganlar yukarıdaki hatayı gördükleri zaman subdomain takeover saldırısı gerçekleştirilebilir mi bunun kontrolünü sağlayacaktır. Açık kaynak kodlu araçlardan Sublist3r kullanılarak domaine ait başka subdomain var mı kontrolü yapıldı. Görülen subdomain den başka bir subdomain olmadığı tespit edildi. Yine ücretsiz olarak subdomain tespiti yapan ve açıklık olup olmadığı hakkında bilgi veren “takeover.cyberint.com” web sitesinden faydalanılarak açıklık arandı.
  • Sonuç olarak bir tane subdomain tespiti yaptı ve subdomainde açıklık olduğu bilgisini verdi.
  • Dig aracılığıyla CNAME bilgisi kullanılarak github ta aynı kullanıcı adına sahip yeni kullanıcı oluşturuldu ve böylelikte boşta kalmış olan domain tekrardan alındı.
subdomain takeover

Yukarıdaki resimden tespit edildiği gibi oluşturulması gereken hesap adı “subdomaintakeover”.

Subdomain sitesini ziyaret edecek kullanıcılar için siteler arası betik çalıştırma açıklığında test amaçlı kullanılan küçük bir alarm script i yazıldı. Saldırgan burada çok daha farklı yollara girerek kuruluşa zarar verecek farklı işler de gerçekleştirebilir. Subdomain ziyaret edildiğinde ise aşağıdaki pop up la karşılaşılmıştır.

Atağın başarılı olmasındaki neden DNS kayıtlarında girilen CNAME kaydının silinmemiş olmasıdır. Daha sonra hosting hizmeti alınan sunucudan CNAME kaydı silinmiş ve subdomain tekrar ziyaret edilmiştir.

Github ta domain boşta kaldığı an CNAME kaydı siliniş olsaydı saldırının başarısız olduğu görülecekti.

KAYNAKLAR

[1] https://www.iana.org/domains/root/db
[2] https://is.muni.cz/th/byrdn/Thesis.pdf
[3] https://dzone.com/articles/what-are-subdomain-takeovers-how-to-test-and-avoid
[4] https://blog.sweepatic.com/subdomain-takeover-principles/
[5] https://0xpatrik.com/subdomain-takeover-basics/
[6] https://blog.securitybreached.org/2017/10/11/what-is-subdomain-takeover-vulnerability/
[7] https://www.hackerone.com/blog/Guide-Subdomain-Takeovers
[8] https://www.slideshare.net/AkshayPandurangi/subdomain-takeover?qid=bd4b8109-5205-4dba-9a75-47805d0ebd60&v=&b=&from_search=1
[9] https://www.slideshare.net/fransrosen/dns-hijacking-using-cloud-providers-no-verification-needed-76812183?qid=bd4b8109-5205-4dba-9a75-47805d0ebd60&v=&b=&from_search=4
[10] https://techcrunch.com/2018/12/11/microsoft-login-bug-hijack-office-accounts/
[11] https://www.grahamcluley.com/hacker-defaces-donald-trump-fundraising-site-via-subdomain-takeover-attack/
[12] https://www.safetydetective.com/blog/microsoft-outlook/
[13] https://arstechnica.com/information-technology/2017/02/secure-trump-website-defaced-by-hacker-claiming-to-be-from-iraq/

Yorum Yaz

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*
*

seventeen + 17 =

Mail listemize üye olarak eğitim fırsatlarını kaçırmayın!
Eğitim ve ücretsiz etkinliklerizden haberdar olmak için e-posta listesimize üye olun!.