Zararlı İçerik Barındıran Top-Level Domainler Kapsamında Sıkılaştırma

Unit42 tarafından hazırlanan “A Peek into Top-Level Domains and Cybercrime” başlıklı rapor kapsamında yapılan analizle göre, binden fazla Top-Level Domain (TLD) içinde sadece 25 TLD tüm zararlı domain adlarının %90’ını oluşturmakta. Bu duruma ek olarak her 10 zararlı barından TLD‘nin 6’sı gelişmekte olan ülkelerin sunduğu TLD‘ler.

Yukarıda geçen cümleleri okuduktan ve bizde durumlar nasıl sorusunun cevabını alma isteğinden hareketle, USOM veya benzeri zararlı URL raporlayan servislerdeki verileri elde etmek için basit bir script hazırlayıp sonuçları incelemek istedim.

Peki, TLD nedir sorusunu kısaca özetlemek gerekirse;

Örnek URL -> https://docs.google.com

  • docs -> Subdomain
  • google -> Registered Domain
  • com -> Top Level Domain

olarak tanımlanabilir.

Yazı kapsamında elde edilen sonuçlara göre şirketinizdeki DNS / Proxy / FW loglarını inceleyerek veya farklı rollerdeki istemcilerden örneklemler seçerek, istemcilerin en çok istek attığı TLD‘leri tespit ettikten sonra; aşağıda geçen TLD’lere trafik olup olmadığını kontrol etmek veya yapacağınız risk analizi sonucunda ilgili TLD’lere DNS isteği atılmasını / trafik oluşturulmasını engelleyebilirsiniz.

Bahse konu TLD’lerin engellenmesi, hem tehdit yüzeyini azaltacak, hem de DNS Tunnelling veya zararlı içeren DGA üretim ataklarını engelleyecektir.

Uygulama için öncelikle tldextract paketini indirelim. Sonrasında USOM ve bu bağlantıdaki Phishing Database verilerini indirip, ilgili txt dosyalarında perli kullanarak düzenlemeler yapalım.

pip3 install tldextract
wget https://www.usom.gov.tr/url-list.txt
wget https://raw.githubusercontent.com/mitchellkrogza/Phishing.Database/master/ALL-phishing-domains.tar.gz
tar xzvf ALL-phishing-links.tar.gz
mv url-list.txt domain
mv ALL-phishing-links.txt domain2 
perl -pi -e 's/127.0.0.1//g' domain
perl -pi -e 's/0.0.0.0//g' domain
perl -pi -e 's/127.0.0.1//g' domain2
perl -pi -e 's/0.0.0.0//g' domain2

Sonrasında spagetti kod olarak yazdığım aşağıdaki Python scriptini çalıştırarak top level domainleri (TLD) ve registered domainleri txt olarak kaydedelim. Script kapsamında oluşturduğum Python collectionı içindeki verileri histogram olarak elde etmek mümkün; ama ilgili scriptin tüm detaylarıyla oluşturulması fazla süre olacağı için Excel ile yolumuza devam edelim.

import os
import re
import string
import tldextract
import subprocess
import collections
from matplotlib import pyplot as plt
import csv
import collections
import matplotlib.pyplot as plt

os.system('clear')
domain = input("Please enter txt file to read:\n")

from tld import get_tld, get_fld
file1 = open('domain', 'r')
Lines = file1.readlines() 

writeFile = open('tldResults', 'w')
writeFile2 = open('domainResults', 'w')
for line in Lines:
    a= tldextract.extract (line)
    b= a.suffix
    c= a.domain
    d= a.subdomain
    writeFile.write ("%s\n" % b)
    writeFile2.write ("%s\n" % c)
     
writeFile.close()
writeFile2.close()

print("Check the domainResults file")
print("Check the tldResults file") 

lines = [line.strip() for line in open('tldResults')]
counts = collections.Counter(lines)
print ("%s\n" % counts)
counts = counts.most_common()
x,y = zip(*counts)
plt.pie (x,y)
plt.show()

USOM Veri Seti

USOM

Aşağıdaki grafikten de görüleceği üzere USOM’da yer alan TLD‘ler arasında; top, xyz, tk, ml, site, cf, ga vd. üst sıralarda yer almakta. Ayrıca; top, xyz, tk ve ml TLD‘leri tüm veri setinin %50’sini oluşturmakta. Bahse konu TLD’lerin kategorik olarak engellenmesi noktasında aşağıdaki grafiğin detaylarını inceleyebilirsiniz.

Örnek Aksiyon: top, xyz ve ml türü TLD’lerinin kategorik olarak engellenmesiyle ilgili risk analizi yapılması…

USOM’da yer alan zararlı bağlantıların registered domain kayıtlarını aşağıdaki grafikten inceleyelim. ddns, duckdns, sg-host tüm veri setinin yaklaşık %38,6’sına denk gelmekte. blogspot, discord ve 22web stringleri de incelemeye değer.

Örnek Aksiyon: Dinamik DNS hizmeti veren servislerin incelenmesi sonrasında erişimlerinin kategorik olarak engellenmesiyle ilgili risk analizi yapılması…

All Phishing Veri Seti

All Phishing

Diğer veri kaynağımızın adını “All Phishing” olarak adlandıralım ve bu bağlantıdaki veri setini inceleyelim. com, net, org hariç TLD‘ler arasında ru, xyz, cn, app, tk, co, com.br yaklaşık olarak veri setinin yaklaşık %28’ini oluşturmakta. USOM veri setine göre TLD değişkenlerinin sayıca daha fazlalaştığını ve ilk 10’da yer alan değişkenlere ait verilerin bir miktar daha eşit dağıldığını gözlemlemek mümkün.

All Phishing veri setindeki registered domain strinleri incelediğimizde duckdıns, 000webhostapp, appspot, web vd. stringlerin üst sıralarda yer aldığını gözlemleyebiliyoruz. Dinamik DNS hizmeri veya ücretsiz hosting hizmeti veren servislerin sıralamadaki yerleri de dikkata değer.

Özetle duckdns, 000webhostapp, appspot stringleri tüm veri setinin %22’sine denk gelmekte.

All Phishing veri setinde yer alan değerlerin bir bölümünü aşağıdaki tablodan inceleyebiliriz.

Unit42 Metodolojisi

Yazı içeriğinde aktarılan detaylara ek olarak Palo Alto Unit 42’nin hazırladığı analiz raporunda kullanılan metodoloji kapsamında en yüksek zararlı içeren TLD verilerine aşağıdaki tablodan erişebilirsiniz.

Kaynak: https://unit42.paloaltonetworks.com/top-level-domains-cybercrime/

Konuyla ilgili scriptlere erişmek için bu bağlantı adresini kullanabilirsiniz.

Faydalı olması dileğiyle…

Kaynaklar:

https://github.com/mitchellkrogza/Phishing.Database

https://www.usom.gov.tr/url-list.txt

https://unit42.paloaltonetworks.com/top-level-domains-cybercrime/

https://github.com/kaptankojiro/tld_analysis

Yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.