DNS Sinkhole İle Zararlı Yazılım Tespiti ve Engelleme

Zararlı yazılımların komuta merkezi ile haberleşmesini engellemek veya zararlı bulaşmış sistemleri tespit etmek amacıla DNS sinkhole yöntemi kullanılabilmektedir. Sinkhole yöntemi ayrıca botnet’lerin etkisinin tespiti veya etkisizleştirilmesi amacıyla da kullanılabilmektedir. Yazıda DNS sinkhole yönteminin kurumsal ağlarda zararlı yazılımları engelleme amaçlı kullanımı ele alınmıştır.

Yöntemin mantığı, DNS isteklerine sahte cevaplar vererek zararlının erişmek istediği alanadının gerçek IP adresini çözmesini engellemektir. Bunun için örnek bir yapılandırma aşağıdaki adımlar takip edilerek elde edilebilir.

Linux kurulu bir sisteme (örnekte Ubuntu)

“apt-get install bind9”        komutu ile Bind DNS sunucusu kurulur. Sonra sırasıyla
“mkdir /etc/bind/zones”
“nano /etc/bind/zones/malware.db”    komutları çalıştırılıp blacklist.host dosyasının içeriğine aşağıdaki gibi bir kayıt girilir.

$TTL    3600
@            IN      SOA     ns1.malware.com. root.malware.com. (2012041615 10800 3600 604800 86400)
           IN      NS      ns1.malware.com.
           IN      NS      ns2.malware.com.
           IN      A       192.168.41.1
*         IN         A       192.168.41.1
Yapılandırılmaya bağlı olarak son iki satırdaki 192.168.41.1 yerine zararlıların yönlendirileceği adres girilir. Ayrıca yeni oluşturulan zones dizinin bind kullanıcısı için erişim haklarının “rwx” şeklinde olması gerekmektedir. Bu işlem için
“chown bind /etc/bind/zones”       
“chmod u+rwx /etc/bind/zones”        komutları kullanılabilir.
Ayrıca
“named-checkzone malware.com /etc/bind/zones/malware.db”    komutu ile oluşturulan kaydın doğruluğu kontrol edilebilir.

Daha sonra
“/etc/bind/named.conf.local”    dosyasına sinkhole uygulanmak istenilen alanadları aşağıdaki formatta eklenir.

zone “malware.com” {
      type master;
      file “/etc/bind/zones/malware.db”;
      };

zone “malicious.com” {
  type master;
  file “/etc/bind/zones/malware.db”;
  };
Son olarak
“service bind9 restart”        komutu ile bind9 servisi yeniden başlatılarak kullanıma hazır hale getirilir. Bu bölümde Bind DNS sunucusunun sadece sinkhole olarak yapılandırılması anlatılmış olup, sıradan DNS isteklerine geçerli cevaplar verebilmesi için gerekli ayarların bulunduğu ağ yapılandırmasına göre ayrıca yapılması gerekmektedir.
DNS sunucusunun düzgün çalışıp çalışmadığı dnsutils paketi kurulu bir Linux sistemden
“dig malware.com @192.168.41.142”    komutu ile kontrol edilebilir. Buradaki malware.com’un karalistedeki bir adres, 192.168.41.142’nin ise DNS sunucusunun adresi olması gerekmektedir. Örnekteki yapılandırma ile bu komutun çıktısı şu şekildedir.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> malware.com @192.168.41.142
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50892
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;malware.com.            IN    A

;; ANSWER SECTION:
malware.com.        3600    IN    A    192.168.41.1

;; AUTHORITY SECTION:
malware.com.        3600    IN    NS    ns2.malware.com.
malware.com.        3600    IN    NS    ns1.malware.com.

;; ADDITIONAL SECTION:
ns1.malware.com.    3600    IN    A    192.168.41.1
ns2.malware.com.    3600    IN    A    192.168.41.1

;; Query time: 2 msec
;; SERVER: 192.168.41.142#53(192.168.41.142)
;; WHEN: Wed Apr 23 13:23:45 2014
;; MSG SIZE  rcvd: 113

Cevapta görüldüğü üzere DNS isteği yapıldığında adres 192.168.41.1 olarak çözülmüştür.

Windows makinenin ağ ayarlarından DNS sunucusu 192.168.41.142 olacak şekilde değişiklik yapılıp karalistedeki bir adrese erişilmeye çalışılarak da doğrulama yapılabilir.

Capture.PNG
Karalisteye alınması gereken alanadlarına “http://www.malwaredomains.com/?page_id=66” adresinden erişilebilir. Karalistedeki alanadları “0.0.0.0” gibi erişilemez IP adresleri ile eşleştirilerek erişim engellenebilir veya örnekte olduğu gibi yerelde bir makineye yönlendirilip bu makinenin trafiği incelenerek zararlı bulaşan sistemler tespit edilebilir. Zararlı trafiğinin detaylı incelenmesi aşamasında “Zararlı Trafiğinin Sahte Servislerle Yönetimi” ve “SSL Kullanan Zararlı Yazılım Trafiğini Yönlendirme ve İnceleme” yazılarından faydalanılabilir.

Kaynaklar:
https://www.sans.org/reading-room/whitepapers/dns/dns-sinkhole-33523

Onur ALANBEL < onur.alanbel@bga.com.tr >