Site icon BGA Cyber Security – Siber Güvenlik Çözümleri

Snort Kullanarak Zararlı Yazılım Tespiti

Zararlı yazılımları ve aktivitelerini ağ seviyesinde tespit edebilmek kurumların bilgi güvenliği ihlallerine karşı atması gereken önemli adımlardan biridir. Mevcut IDS/IPS’leri yeni tehtitlere karşı güncel tutabilmek veya özel senaryolar için uygun tanımlamaları yapabilmek bu konuda etkin bir savunma için gereklidir.
Yazıda, bir zararlı yazılımın ağ trafiğinin tanınmasını sağlayacak kendine has özelliklerini tespit edip bu özellikleri yakalayacak Snort kuralları yazılarak, örnek yöntemler ve izlenebilecek yollar açıklanmıştır.

Örnek senaryoda HTTP ve SMTP trafiği oluşturan bir çeşit Zeus türevi bir sanal makineye bulaştırılıp bu makinenin internete çıktığı ağ arayüzü Wireshark ve Snort ile dinlenir. Elde edilen ağ verisine göre Snort kuralları yazılarak zararlı tespit edilmeye çalışılır.

Örnekte kullanılan lab yapısı şu şekildedir. Windows XP internete NAT ile çıkacak şekilde ayarlanmış tek ağ arayüzü bulunan bir sanal makinede kuruludur. Snort’un kurulu olduğu SecurityOnion dağıtımı ise, bir tanesi Windows XP ile aynı sanal ağa bağlı iki ağ arayüzü bulunan başka bir sanal makineye kurulmuştur. Snort, ortak arayüzü dinleyecek şekilde ayarlanmıştır. Diğer arayüz ise bu makineye yönetim amaçlı erişim için ayrılmıştır.

Örnek zararlının ağ verisi incelendiğinde sırasıyla şu işlemleri yaptığı görülüyor. (Farklı çalıştırmalarda sonuçlar değişiklik gösterebilir)

From: Edward09@4251.com
To: sadiabuttar@yahoo.com
Subject: Pharmacy Express
Date: Sun, 27 Jan 2013 23:39:52 -0800
Mime-Version: 1.0
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Message-ID: <88397533550593.79168.qmail@hordzd>
Zararlının çalışma anında aktif olmayan farklı özellikleri de vardır fakat buradaki amaç zararlıyı tamamen analiz etmek değil örnek ağ verisini kullanarak bu aktiviteleri tanımlayacak kurallar yazmaktır.
İlk adımda eldeki veriler kullanılarak sadece zararlının kullandığı IP adresleri ve/veya alanadları belirlenip, bunları tanımlayacak kurallar yazılır. Veriler değerlendirildiğinde, mediafire veya yahoo’ya ait adresler için kurallar yazmanın makul olmayacağı ancak srv5050.co, karmachemie.de ve jasperrussell.com adresleri için yazılabileceği görülmektedir. Bu adresler doğrudan zararlıyı yayanlar tarafından alınmış veya sonradan ele geçirilmiş sistemler olabilirler. Her iki durumda da kullanıcılar için tehlike arz etmektedirler. Örneğin srv5050.co adresine yapılacak DNS sorgularını yakalayacak bir kural şu şekilde yazılabilir.
alert udp any any -> any 53 (msg:”Zeus variant DNS query”; content:”srv5050″; priority:1; sid:9000554; rev:1;)
Doğrudan IP adresine yapılan bağlantıları yakalamak içinse şöyle bir kural kullanılabilir.
alert tcp $HOME_NET any -> 212.227.141.241 any (msg:”Zeus variant C&C IP”; flow:to_server; priority:1; sid:9000555; rev:1;)
Tabii ağ yapısına göre bu kuralları iyileştirmek mümkün.
İlk kural çalıştığında elde edilen Snorby görüntüsü:
 

İkinci adımda söz konusu zararlıyı doğrudan dosya indirme aşamasında tespit etmek için çalıştırılabilir dosyadan elde edilen bir imza kullanılabilir. Zararlının farklı türevlerinin aynı imzayı taşımama ihtimali yüksek olmasından dolayı tek başına çok etkili bir yöntem olmasa da bu yöntem diğerlerinin yanında kullanılabilir.

Öncelikle çalıştırılabilir dosyaya bir imza tanımlanır. Basitçe şu adımlar izlenir.

Son adımda zararlının ağ hareketleri incelenerek özel bir desen oluşturulmaya çalışılır. Örnek zaralının spam gönderimleri incelendiğinde gönderici adreslerinin belli bir formatta oluşturulduğu fark edilmiştir. Örneğin,
MAIL FROM:<Donald86@1008.com>
MAIL FROM:<Kevin08@3184.com>
MAIL FROM:<Michael36@6998.com>
şeklindeki gönderici adresleri (isim)(2rakam)@(4rakam).com desenine uymaktadır.
Desen belirlendikten sonra bu desene uygun bir Perl düzenli ifadesi yazılır. Bu desen “/<[a-z]+[0-9]{2}@[0-9]{4}.com>/i” düzenli ifadesi ile karşılanabilir. Yazılan düzenli ifadeleri online olarak test etmek için “www.regexe.com” adresi oldukça kullanışlıdır.
SMTP üzerinden mail gönderimlerinde belirlenen deseni arayacak Snort kuralı temel olarak aşağıdaki gibidir.
alert tcp $HOME_NET any -> $EXTERNAL_NET 25 (msg:”A Zeus variant is sending spam”; flow:to_server,established; pcre:”/<[a-z]+[0-9]{2}@[0-9]{4}.com>/i”; priority:1; sid:900$

Onur ALANBEL

Exit mobile version