DGA Nedir? Nasıl Tespit Edilir & Engellenir?
Domain Generation Algorithm ( DGA ) Domain Oluşturma Algoritması olarak adlandırılsa da, algoritmik olarak oluşturulmuş domain adlarıdır aslında ( AGD denebilir ). DGA’lar, bir dizi komut ve kontrol (C&C) siteleri ile iletişim kurmak için kötü amaçlı yazılım istemcileri tarafından kullanılan domain adlarının bir listesini programlı olarak üreten kodlardır. Bu domainler, bir ana taşıyıcı ağda gizlice iletişim kurmak için kötü amaçlı yazılımlar ve hacker kontrollü sunucular için buluşma noktaları olarak kullanılır. Dinamik olarak oluşturulmuş domainlerden biri BT güvenliği tarafından algılandığında ve engellendiğinde, kötü amaçlı yazılım istemcisi ve C&C sunucusu savunmaları atlamak için listede olan domainlerden bir sonrakine geçer. Bence çok şekil:)
LinkedIn ve Twitter üzerinden bana ulaşabilirsiniz.
DGA alanları aşağıdaki özelliklere sahiptir:
- Uzun ve anlamsız isimleri var — com, çünkü önceden kaydedilmiş bir domain adıyla daha az çakışma şansına sahip olmaları için.
- Genellikle hem kötü amaçlı yazılım istemcisi hem de C&C sunucusunun paylaştığı aynı kriptografik algoritmaları kullanılarak kodlanır veya şifrelenir, bu da onların kodunu çözmeyi / deşifre etmeyi zorlaştırır.
- Her gün binlerce DGA alanı oluşturulur, ancak yalnızca birkaçı aktif veya çözülebilirdir ve bu, yalnızca kötü amaçlı yazılım istemcisi ve C&C sunucusu tarafından bilinir.
- Aktif olduklarında bile, kısa bir ömürleri vardır (genellikle sadece birkaç gün), bu da kara listeye almayı zorlaştırır.
- Dns Tünelleme taktiği yerine de kullanıldığı noktalar vardır.
Bir önceki yazımda aktardığım zararlı yazılım C2 ya mail ile sistem bilgilerini aktarıyordu, burada dns katmanı ile de bu encode edilerek belli ölçüde yapılabilir.
Bilindiği üzere kötü amaçlı yazılım güncellemelerini ve ek modülleri indirmek için DNS sorgularını da kullanabilirler. Kötü amaçlı yazılımların engellenmesini zorlaştırmak için genellikle her gün çok sayıda yeni domain oluşturmak için bir domain oluşturma algoritması (DGA) kullanır. İletişim kanalını açık tutmak için, saldırganların bu domainlerden yalnızca küçük bir kısmını kaydettirmesi gerekir, ancak iletişimi engellemek için ağ güvenliği ekibinin neredeyse hepsini engellemesi gerekir. Bu örnek inbound yönünde olanlar için,
Tamam, bu gelen iletişim. Virüslü sunuculardan verileri dışa aktarmaya ne dersiniz? DNS protokolü, bir alan adının en fazla 253 karakter uzunluğunda olmasına izin verir ve “<birşey> .testdomain.com” sorguları, “testdomain.com” için DNS sunucularına yönlendirilir. Veriler, virüslü ana bilgisayarda (ör. “parola_testblogu_icin_gmail_com_pas123*.testdomain.com”) DNS sorguları oluşturularak ve diğer uçtaki mesajı yorumlamak için özel DNS sunucu yazılımı kullanılarak dışa aktarılabilir ( veya mevcut trafiği dinleyerek dns şifresiz iletişim kuran bir protokol ). Bunu encode ederek de sorgularını gönderebilir.
Kullanılan yöntemler arasında bence en tehlikeli olanlar ransomware ve sunburst malware ( solarwinds supply chain attack )örneği.
Örnek olarak ransomware revil ( sodinokibi )
Virustotal üzerinde dga etiketi ile arama yapıp inceleyebilirsiniz.
Sunburst malware özelinde tersine mühendislik yöntemleriyle incelemeler blog yazıları epey paylaşıldı. Ben genel olarak bir malware veya apt grubunu ilk incelediğimde önce network aktivitelerine bakıyorum, ağda yapılan aktivitelerin iz bırakmama ihtimali yok encrypt eder tüneller vs ama iz bırakır. EDR veya endpoint tarafında her zaman geçerli bir durum değil maalesef, service kill edilebiliyor veya edr ip si öğrenilince null route yazılıp erişimi kesebiliyorlar veya o noktada ajan yüklenmemiş olabiliyor vs. DNS tarafı da network alanında daha çok ilgimi çekiyor. “Ben küçük meselelerin adamıyım bunlarla da birileri ilgilenmeli nihayetinde” Internet ekipler amiri:) Bu amcalar da tabi dga ve dns nimetinden istifade etmişler ziyadesiyle. Burada tabi microsoft ve fireeye açıklamadan bazı araştırmacılar kesin olarak domain decode ederek kesin yargıya vardılar( kurban şirketler bunlardır vb ) bunu tam olarak bilmek bence çok zor. Belki de hedef saptırıyor da olabilirler…
SUNBURST
Bu amcalar da SUNBURST’ün son C2 sunucusunu almak için bir aracı komut ve kontrol (C2) koordinatörünü kullanıyorlar. C2 koordinatörü arka kapıya işaretlemeyi devam ettirmesi veya durdurması talimatını verir. Ayrıca, SUNBURST’u DNS CNAME kayıtları aracılığıyla nihai C2 sunucusuna yeniden yönlendirir. Bunun, zararlı bulaşanlar arasında paylaşılan ağ altyapısını sınırlayarak UNC2452'nin operasyonlarını bölümlere ayırmasına olanak tanıdığına inanıyorlar[2]
C2 koordinatörü, avsvmcloud[.]com etki alanı için yetkili authoritative DNS sunucusu olarak uygulanır. C2 koordinatörü ile iletişim kurmak için SUNBURST , avsvmcloud[.]com’un sub-domainlerini alt alan adlarını oluşturmak için bir DGA kullanır ve sistem DNS istemcisini kullanarak FQDN çözer. Arka kapı, C2 lardan komut almak için DNS yanıtlarını alışılmadık bir şekilde yorumlar.
DGA, FQDN’yi oluşturmak için aşağıdaki DNS son ekleriyle alt etki alanları oluşturur:
- .appsync-api.eu-west-1 [.] avsvmcloud [.] com
- .appsync-api.us-west-2 [.] avsvmcloud [.] com
- .appsync-api.us-east-1 [.] avsvmcloud [.] com
- .appsync-api.us-east-2 [.] avsvmcloud [.] com
Yazılım güncellemesi, bu rastgele görünen C2 alt etki alanlarının oluşturulması için kriptografik yardımcıları başlatmaktan sorumludur. Alt alanlar, kodlanmış bir kullanıcı kimliğinin sistemin etki alanı adının bir kodlamasıyla birleştirilmesiyle oluşturulur. C2 koordinatörü kurban alan adını şifrelenmiş verilerden kurtarabilir ve muhtemelen bunu SUNBURST’u nihai C2 sunucusuna yönlendirmek için kullanır.
Üç değere göre bir kullanıcı kimliği oluşturulur:
- MAC adresi
- Alan adı
- HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Cryptography \ MachineGuid değeri
SUNBURST, bu birleştirilmiş değerlerin MD5 hashlerini alır ve bunu özel bir XOR şeması kullanarak kodlar.
SUNBURST, arka kapının çalışma modunu belirtmek için dört farklı alt etki alanı biçimi kullanır. Her form biraz farklı bilgiler içerir. Bununla birlikte, iki formda, araştırmacılar mağdur kuruluşların alan adlarını kurtarabilir. SUNBURST C2 koordinatör trafiğinde bir kurbanın etki alanının varlığını doğrulamak için DNS günlüklerini incelemenizi öneririz.
Sunburs DGA Decode için githubda paylaşılan tool&script
Detection DGA
Anomali çok sevilmese de ( f/p oranı vs ) pek önem verilmese de burada işe yaramakta. Elastic ekibinin bu konuda yazısı oldukça güzel.
https://www.elastic.co/blog/machine-learning-in-cybersecurity-detecting-dga-activity-in-network-data
Splunk bu konu özelinde videosu da çok güzel ve detaylı onu da şuraya bırakayım. DGA uygulamasıyla, kötü amaçlı domainleri tespit etmek için machine learning kullanarak nasıl çalıştırılacağını gösteriyor.
Infoblox da machine learning kullanmak, DGA tabanlı alan adlarını algılamanın daha iyi bir yoludur diye düşünmüş.
Entropi: Alan adında ne kadar rastgelelik var?
Sözcüksel: Kodlanmış veya şifrelenmiş görünüyor mu?
N-gram: Alan adı bir dilde kelimeler içeriyor mu?
Sıklık: Aynı harici alana çok fazla istek mi gönderildi?
Boyut: Alan adı alışılmadık derecede uzun mu?
Sunburst vakasında okuduğum bazı yerlerde ana domaini engellemeyi önerenler olmuş, bu çaba statik olarak işe yarayabilir ama daha dinamik olan dga türlerinde işe yaramayacaktır. Dns bazlı fw kurallarının girilmesi her zaman tünelleme ve dga gibi konularda işe yaramayabilir. NGFW firewall ve dns fw olarak adlandırılan ürünlerde DGA ve DNS tunneling özelinde ayrı policy ler bulunmakta, bu profiller açılabilir. Bu cihazlarda ağda gidip gelen dns trafiğini izleyerek ona göre policy yazmanıza imkan sağlıyorlar.
Özetle host dan çıkan dns isteklerini izlemek ve tabi dönüşte gelen cevaplar özelinde nx kayıtlarını kontrol etmek oldukça işlevli olacaktır. ( genel olarak cihazların tespit tasarımları entropi, nx response, alt alan adı sıklığına göre şekilleniyor diyebilirim gördüğüm kadarıyla ) Bilelim, izleyelim ki engel olabilelim.
Son olarak Georgia Institute of Technology den olan abiler güzel bir akademik makale yazmışlar incelemek faydalı olabilir. Detecting and Tracking the Rise of DGA-Based Malware
https://www.usenix.org/system/files/login/articles/login1212_antonakakis.pdf
Yetkili abiler & ablalar
https://en.wikipedia.org/wiki/Domain_generation_algorithm [1]
https://www.fireeye.com/blog/threat-research/2020/12/sunburst-additional-technical-details.html [2]