DGA(Domain Generations Algorithms) Nedir ve Nasıl Çalışır?
Saldırganlar, bir sisteme zarar vermek için kötü amaçlı yazılım gönderdiklerinde, hem onun ne yaptığını takip etmeleri hem de ona talimatlar göndermeleri gerekir. Command and Control [C&C] sunucuları, kötü amaçlı yazılım bulaşmış sistemlere emirler vererek onlara ne yapmaları gerektiğini söyler.
Saldırganlar, tespitten kaçınmak için bir karşı taktik olarak C&C sunucusu için periyodik olarak çok sayıda alan adı(Domain) ve IP adresi oluşturmak üzere DGA’ları kullanır. Bu, bir C&C sunucusunun kolayca kapatılmasını neredeyse imkansız olmasa da zorlaştırır. Hem sunucu hem de kötü amaçlı yazılım bu adres değişikliklerinin kurallarını bildiğinden iletişim kurmaya devam edebilirler.
Domain Generation Algorithms(Etki Alanı Oluşturma Algoritmaları) nasıl çalışır?
İlk olarak herkesin anlayabileceği bir örnek ile konuya giriş yapalım.
DGA’ları şu şekilde düşünebilirsiniz: Birisi size tek bir top atarsa, onu yakalamak kolaydır. Peki birisi önünüze 100 top atarsa hepsini yakalama şansınız nedir?
Domain Generation Algorithms, saldırganları C&C sunucularıyla iletişim kurabileceği bir buluşma noktası görevi görebilecek binlerce etki alanı adını hızlı bir şekilde üretmek için karakter dizilerini kullanan uygulamalardır. Bu algoritmalar her gün çoğu kayıtlı olmayan on binlerce DGA alan adı üretebilir. Saldırganlar, kayıtlı olanları gizlemek için kayıtlı olmayan alan adlarını kullanır; bu da imzaları ve IP repütasyon durumlarını kullanan CTI kaynaklarının tespitinden kaçmayı kolaylaştırır. Algoritma hem istemci hem de kaynak tarafından yürütülür. Hem saldırgan hem de C2 sunucusu tarafından bilinen bir seed ile başlar ve her ikisinin de hangi alan adlarının oluşturulacağını ve hangi alan adının kötü amaçlı yazılım için iletişim kanalı olarak hizmet vermek üzere kaydedileceğini bilmesine olanak tanır. Bu alan adı güvenlik sistemleri tarafından tanımlanır ve engellenirse saldırganlar, hem saldırganın hem de kötü amaçlı yazılımın veya Botnet’in anlayacağı bir modeli izleyerek C&C sunucusuyla iletişimi sürdürmek için hızla bir sonraki alana geçebilir.
DGA Türleri Nelerdir?
Pseudo-Random Generator (PRNG): PRNG, bir DGA için en yaygın ve genel metodolojidir. PRNG, hem saldırgan hem de kötü amaçlı yazılım için öngörülebilir olan alan dizileri oluşturmak için deterministik bir rastgele seed kullanır. Buradaki seed(tohum) anlamı anahtar kelimeler,sözcükler vb olarak düşünebilirsiniz. PRNG’ler sıklıkla seed olarak sistem tarihi ve saatini kullanır.
Character-Based DGAs: Bu tür en basit olanıdır ve alan adlarını oluşturmak üzere alfabeyi veya sayıları seçmek için rastgele bir seed kullanır. Bunlar en ilkel oldukları için tespit edilmeleri de en kolay olanlardır.
Dictionary-Based DGAs: Bu tür, sözlük tabanlı kelimeler kullanır ve rastgele, insan tarafından okunamayan bir görünüme sahip etki alanları oluşturmak için bunları rastgele birleştirir. Yani bu etki alanları, meşru etki alanlarına yakından benzeyebileceğinden AI sistemlerinin tespit etmesi daha zordur.
High-Collision DGAs: Yasal alan adları gibi görünecek şekilde tasarlanmıştır ve .com .net ve .org gibi üst düzey alan adlarıyla(Top Level Domain’ler) eşleştirilir. High Collision DGA’larda, üretilen alan adının zaten kayıtlı olma olasılığı daha yüksektir ve bu da tespit sürecine bir karışıklık katmanı ekleyebilecek bir “Collision” neden olur.
Referanslar:
akamai.com/glossary/what-are-dgas
akamai.com/blog/security-research/dga-dynamic-unexpected-behavior-in-dns
bluecatnetworks.com/blog/among-cyber-attack-techniques-what-is-a-dga/
zvelo.com/domain-generation-algorithms-dgas/