DNS İsteklerini Analiz Ederek Zararlı Yazılım Tespiti

Zararlı yazılımlar komuta merkezleriyle haberleşmede alanadlarını sıklıkla kullanırlar. Alanladlarının kullanımı, internetin kalınına olduğu gibi zararlı yazılımlara da doğrudan IP adreslerinin kullanımıyla elde edemeyecekleri bir esneklik kazandırır. Bu esneklikten yararlanıp komuta merkezlerinin kapatılmasıyla zararlı yazılım ağının etkisizleştirilmesini zorlaştıracak yöntemler uygulayabilirler.

1. Alanadındaki Anormalliklerin İncelenmesi:
Alanadı gözden kaçması amacıyla bilindik bir alanadına çok benzer şekilde seçilmiş olabilir. Örneğin: rnicrosoft.com, 1inkedin.com gibi adreslere şüpheyle yaklaşılması gerekir.

Algoritmik olarak üretilmiş (bkz: DGA) f3122.com, a112331b.com gibi rasgele harf veya rakamlardan oluşan alanadlarının da detaylı analiz edilmesi gerekmektedir.

2. Alanadı Kayıtlarının İncelenmesi:
*nix sistemlerde alanadı kayıtları “whois alanadı” komutuyla elde edilebilir. Windows için de Sysinternals’ın whois aracı kullanılabilir. Whois, alanadıyla ilgili oldukça faydalı bilgiler verir. Örneğin bir Linux terminalde

“whois asasas.eu”    komutu çalıştırıldığında aşağıdaki çıktı elde edilmektedir.

% The WHOIS service offered by EURid and the access to the records
……………….
% WHOIS asasas
Domain:    asasas

Registrant:
    NOT DISCLOSED!
    Visit www.eurid.eu for webbased whois.

Reseller:

Technical:
    Name:    Tech. Service
    Organisation:    Internet.bs Corp.
    Language:    en
    Phone:    +1.2423275277
    Fax:    +1.2423275277
    Email:    euridtech@internet.bs

Registrar:
    Name:     Internet.bs Corp.
    Website: www.INTERNET.bs

Name servers:
    ns-canada.topdns.com
    ns-uk.topdns.com
    ns-usa.topdns.com
….

Bu sorgudan detaylı bilgi elde edilemese de www.eurid.eu adresinden bu alanadı için detaylı sorgulama yapılabileceği öğrenilmiştir. Adresin web tabanlı sorgu için kullanılabileceği belirtilmiştir, bu yüzden sorgu bir web tarayıcısı aracılığıyla gerçekleştirilebilir. Aksi durumda “whois -h www.eurid.eu asasas.eu” komutu ile belitilen adresten sorgulama yapılabilirdi.

Web tabanlı sorgunun çıktısı şu şekildedir:

Name     asasas
Status     REGISTERED (What this means)
Registered     June 13, 2014
Expiry Date     June 30, 2015
Last update     June 13, 2014, 3:12 am
Registrant
Name     Hans Bruse
Organisation     hans inc
Language     German
Address    

…..

Çıktıdan alanadının kayıt tarihi, ne zamana kadar kaydedildiği, en son ne zaman güncellendiği, kaydeden kişinin ve kuruluşun adı gibi bilgiler elde edilebilmektedir. Örnekte görüldüğü gibi alanadının kayıt veya güncellenme tarihinin çok yeni olması, veya süresinin dolmasına çok az kalmış olması, gerçekçi olmayan kişi kurum bilgileri gibi durumlar tek başına yeterli olmamakla beraber alanadının zararlı aktivitieler için kullanıldığına dair ipucu olabilir.

3. Alanadının Kara Listelerde Aranması:
Alanadının zararlı olarak kaydedilmiş olma ihtimaline karşı bilindik listelerde ve arama motorlarında aratılması gerekir.
http://www.malwaredomainlist.com/mdl.php     zararlı adreslerin güncel olarak listelendiği bir servistir.
http://www.anti-abuse.org/        ise alanadını birçok farklı RBL’de (real time black list) arayıp sonuçları listeleyen bir servistir.

Bu aşamada alt alanadlarının bulunup incelenmesi de alanadının zararlı olup olmadığı hakkında fikir verebilir. Alt alanadlarının bulunmasında Linux Dnsutils’de bulunan dig komutu, dnsmap veya fierce gibi araçlar kullanılabilir.

Dig komutuyla hedef alanadının DNS sunucusunda zone transfer özelliği açıksa o sunucudaki tüm DNS kayıtları elde edilebilir.
“dig NS suphelidomain.org”    komutu ile DNS sunucusu öğrenilir.
“dig @dnsserver afxr suphelidomain.org”     komutu ile de zone transfer denemesi yapılır.

$ dig @ns2.3322.net afxr f3322.org
; <<>> DiG 9.8.3-P1 <<>> @ns2.3322.net afxr f3322.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 40085
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;afxr.                IN    A

;; ANSWER SECTION:
f3322.org.        60    IN    A    101.71.195.119
……

;; AUTHORITY SECTION:
f3322.org.        86400    IN    NS    ns2.3322.net.
f3322.org.        86400    IN    NS    ns1.3322.net.
……

4. Alanadı-IP Çözümlemesinin Analiz Edilmesi:

“host alanadı”    komutuyla alanadının çözdüğü IP adresleri öğrenilir.
host f3322.org
f3322.org has address 101.71.195.119

Daha sonra öğrenilen IP adresleri
http://www.malwaredomainlist.com/mdl.php
http://www.anti-abuse.org/
adreslerinden kara listelerde aranır.

Bazı zararlı yazılımlar, özellikle botnetler komuta merkezi olarak kullandıkları sunucuların tespit edilip engellenmesini zorlaştırmak için “fast flux” adı verilen bir yöntem kullanırlar. Bu yöntemle C&C sunucuları farklı servis sağlayıcılarda konuşlandırıp bu sunucuların IP adresleri DNS kayıtlarına girilir. Round-robin mantığıyla DNS çözümlemesinde en üstteki IP adresinin değişmesi sağlanır. Normalde bu yöntem yük dengeleme veya hizmet kesintilerini engelleme amaçlı kullanılmaktadır. Örneğin art arda çalıştırılan iki “host google.com” komutunun çıktısı şu şekildedir.

$ host google.com
google.com has address 173.194.70.100
google.com has address 173.194.70.102
google.com has address 173.194.70.139
google.com has address 173.194.70.101
google.com has address 173.194.70.138
google.com has address 173.194.70.113
….

$ host google.com
google.com has address 173.194.70.138
google.com has address 173.194.70.113
google.com has address 173.194.70.100
google.com has address 173.194.70.102
google.com has address 173.194.70.139
google.com has address 173.194.70.101
….

Fast flux alanadlarını tespit etmek için bir alanadının daha önce çözdüğü ip adreslerini listeleyebilen
www.bfk.de
www.robtex.com/
servisleri kullanılabilir. Ayrıca robtex.com IP’nin bulunduğu coğrafik bölge bilgisini de vermektedir.

Fast flux alanadlarının gösterdiği bir diğer anormallik ise DNS kaydı TTL değeridir. IP adresleri sürekli güncellendiğinden dolayı DNS cevaplarının önbelleğe alınması sorun oluşturabilir. Bu yüzden TTL değerinin 0 veya çok küçük bir değer olması gerekir. TTL değeri “dig alanadi.com” komutunun çıktısında görülebilir.

Yerel ağdaki fast flux alanadlarının yakalanması için Australian Honeynet Project’in Tracker aracı kullanılabilir. Tracker aracını kurmak için sırasıyla aşağıdaki komutlar çalıştırılır.

(eğer sistemde postgresql kurulu değilse)
apt-get install postgresql

sudo -u postgres psql

CREATE DATABASE fast_flux;
CREATE USER tracker WITH PASSWORD ‘123456’;
GRANT ALL PRIVILEGES ON DATABASE fast_flux TO tracker;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA PUBLIC TO tracker;
q

add-to-test-table.pl, test_submission.pl, flux.pl dosyalarından $username ve $password alanları güncellenir.

$username=‘tracker’
$password=‘123456’

Veritabanı yüklenip dosyalar çalıştırılabilir yapılır.

sudo -u postgres psql fast_flux < setupdb.sql
chmod u+x add-to-test-table.pl flux.pl test_submission.pl

Son olarak domains.txt içine şüpheli alanadları yazıldıktan sonra Tracker’ın betikleri şu sırayla çalıştırılır.

./add-to-test-table.pl < domains.txt
hotmail.com     Inserted
google.com     Inserted
yahoo.com     Inserted

./test-submission.pl
Looking for new work to do
Testing Host hotmail.com
4 Distinct cnt
Removing Host hotmail.com from the input Table
Testing Host google.com
6 Distinct cnt
Removing Host google.com from the input Table
Testing Host yahoo.com
3 Distinct cnt
Removing Host yahoo.com from the input Table

./flux.pl
Getting New Work
0
Checking Domains that have been set to inactive
Getting New Work
0
Checking Domains that have been set to inactive
Getting New Work
….

flux.pl betiğinin çıktısı incelenerek listedeki fast-flux alanadları belirlenebilir.