25 Ocak 2012 Çarşamba

Malware Analiz ve Sandbox

Malware Nedir?
Worm,virüs,trojan diye tabir edilen tüm kötü yazılımlar bu terimin içerisinde yer alır. Malware türleri:
Worm:bağımsız bir şekilde kendi başına çalışabilen ve kendisini başka makinelere kopyalabilen yazılımlara verilen ad. Botnetler kurmak için de kullanılır.
Virus: Bağımsız çalışamayan aktif edilmesi gereken ve genellikle işletim sistemi dosyalarına yapışan kod parçacığı
Trojan: Genelde kullanışlı bir yazılımın (crack,tool) içine gömülmüş gizli zararlı kod parçaçcığıdır. Arkaplanda port açma ve dışarıdan erişim sağlama gibi işleri kullanıcıdan habersiz yapar.
Spyware: Casus yazılımlar olarak adlandırılan bu yazılımlar kullanıcı bilgisayarındaki hassas bilgileri(hesap bilgileri,şifreler,kişisel veri) toplayan ve saldırganın bilgisayarına aktaran yazılımlardır.
Bot: Malware bulaşmış bir sistemin uzaktan kontrol edilerek bir botnet in parçası olmasıdır. bu makineler genellikle spam gönderme, cpu gücünü kullanma, Ddos atak yapma gibi işlerde kullanılır.
Rootkit: Saldırı altındaki makine üzerinde yapılan tüm işleri (çalışan süreçler,dosyalar,kayıtlar) işletim sisteminden gizleyen uygulamalardır.
Malware Analiz Teknikleri ve Araçları
Antivirüs programları genel olarak malware lerin siganture larını bir veritabanında tutup buradan bularak tespit ediyorlar. Bu yöntem çoğu zaman başarılı fakat günümüzdeki gelişmiş malware ler bu yöntemle malesef tespit edilemiyor. Bunun nedeni:
1-Bir malware in sürekli olarak evrim geçirmiş farklı versiyonları çıkıyor ve bu durum signature değişmesine neden oluyor.
2-Farklı yöntemlerle (encryption,kod bulanıklaştırma) signature değiştirilebiliyor.
Dinamik analiz,yalıtılmış bir ortamda malware i çalıştırmak ve ortama ait tüm durumları (registry,file system,process status) takip ederek analiz etme tekniğidir.
Statik analiz de ise çalıştırmadan binary kod üzerinden nerelere erişim sağlanıyor ne gibi değişiklikler yapıyor analiz edilmesidir.
Statik analiz
Eğer source code elimizdeyse statik analiz tekniği ile tüm işlevleri test edebiliriz.
Elimizde sadece binary mevcutsa değişkenler ve veri yapıları bilgileri gibi bilgiler kaybolacağından analiz zorlaşacaktır. Hex editorler sayesinde debug yetenekleride kullanılarak ve belirli komut setleri aranarak çalışma yapısı hakkında bilgi sahibi olunabilir.


Dinamik Analiz Teknikleri
1.    Function call monitoring
Kötü yazılım çalıştırıldığı sırada eğer bir function call (bu işletim sistemine ait bir user/kernel fonksiyonu olabilir) yapıyorsa bu anda işlemi keserek bazı bilgileri  elde edebiliriz. Bu işleme hooking(kanca atma) denir. Hook function, bir log dosyasına bu fonksiyonun adı,input parametreleri gibi bilgileri kaydeder.
İşletim sistemleri önemli işleri(dosya oluşturma,networkde istek yapma,donaım üzerinde kod çalıştırma gibi) üzerinde çalışan uygulamalara direk sunmaz bir API üzerinden sunar.
Windows api leri network,security,system servisleri ve management kategorileri altında toplanmıştır.



Native api ler hakkında official bir dokümantasyon mevcut değildir.
1.1.Function Hooking gerçekleştirimi
Source code mevcut ise kodun içerisine hooking function lar eklenebilir.  Alternatif olarak ta compiler flag ler (örn: finstrument functions in GCC) kullanılabilr.
Elimizde sadece binary varsa binary rewriting yöntemi ile binary editlenerek hex editor de function pointer değerleri bizim hook function adresi ile değiştirilip hooking sonunda da gerçek function adresine yönlendirilebilir. Windows ta function call hooking için detours library kullanılabilir.   
Bu kütüphane 2 şekilde çalışabiliyor ya kodu çalışmadan önce modifiye ediyor ya da bellek üzerinde değiştirebiliyor.  Bellek üzerinde değiştirme işlemine dll injection denmektedir. Kodun kullandığı kütüphaneler stub adı verilen daha sonra aslıyla değiştirlecek geçici kütüphaneler ile değiştirilmektedir.
1.2.Post Processing Function Call Traces
Çağrılan fonksiyonların sonuçlarını izlemeye function call trace denir. Bu trace işleminde çağrılan fonksiyonların sırası mevcuttur.
2.    Fonksiyon Parametre Analizi
Statik analizde fonksiyon parametrelerine bakılarak(tiplerine ve değerlerin) mümkün olan parametre değerleri arasından hangisinin olabileceği tahmin edilmeye çalışılır. Dinamik analizde  ise fonksiyon çağrısı yapıldığı input olarak verilen tam değeri elde eder.
3.    Bilgi Akışını İzleme (Information Flow Tracking)
Program veriyi nasıl işliyor buna bakılır. Debug süresince değişken yada register değerleri işaretlenerek verinin hareketi izlenebilir. Bu izlemenin amacı önemli değişkenleri bulmak veya karmaşıklaştırılımış kodun sadeleştirmesini sağlamak olabilir.
4.    Instruction Trace
Bu yöntemde de analist yapan kişi debug edilen kodda bulunan makine kodları (machine instructions) nı incelemeye çalışır. İnceleme sırasında spesifik bir iş yapan makine koduna rastladığında daha yüksek seviyede göremediği önemli bilgiye bu seviyede erişmiş olur.
5.    Autostart extensibility points
 işletim sistemi açılması sırasında otomatik olarak yüklenen uygulamaların incelenmesi
Malware Bulaşma Yöntemleri
1-Network üzerinden tarama ile makine üzerinde açıklık bulunduruan servislerin exploit edilmesi
2-Web browser açıklığından faydalanarak zararlı kodun web üzerinden download edilmesini sağlama ve makineyi ele geçirme. Browser plugin leri,jscript,vbscript gibi client tarafında çalışan script dilleri saldırganların kullandığı araçlardır.
3-Sosyal mühendislik: farklı çeşitleri olduğu gibi mail ile kandırarak kullanıcıyı dosya açmasını sağlama, bedava yazılım adı altında dosya indirtme genel olarak kullanılan yaygın yöntemlerdir.
Malware SandBox
Kötü yazılımların (virüs,trojan,rootkit,bootkit v.s.) çalıştırılarak(dinamik analiz) , davranışlarını analiz eden ortamlardır.
Bu ortamlar; verilen örnekleri çalıştırarak arka planda dosya sisteminde, registry kayıtlarında, bellekte ne değişiklik yapıyor, ağ üzerinden hangi adresler ve protokollerle konuşuyor, hangi process leri ve api leri çağırıyor gibi başlıklar halinde toplayarak rapor haline getirirler.
Malware SandBox  Nasıl Çalışır?
Sandbox ortamını kapalı bir kutu gibi düşünürsek bu kutunun içinde tıpkı bir otomasyona geçmiş araba fabrikası gibi bir akış ve bölümler mevcuttur. Dışarıdan bize görünen kısmı ise sadece malware örneğini bu kutuya vermek ve sonuç raporunu yani arabayı almaktır.
Öncelikle bu kutunun içindeki yapıya bir göz atalım. Sandbox ortamları temelde iki parçadan oluşur .Bunlar;
1-    Analizin yapıldığı ve raporun oluşturulduğu ortam. (genelde ubuntu gibi linux türevleri kullanılıyor)
2-    Örneğin çalıştırıldığı genelde bir sanallaştırma ortamının (virtualbox,vmware v.s.) üzerindeki lab ortamı. (çoğunlukla windows tercih ediliyor)
Analizin yapıldığı kısımda sanal ortam ile konuşmayı sağlayan uygulama yada scriptler ve raporlamayı sağlayan araçlar dışında başka bir işlem yapılmamaktadır. Sanal lab ortamında ise kötü yazılımın davranışlarını analiz etmek için gerekli network araçları (wireshark,windump,tcpdump,etheral  v.s.), dosya sistemi  izleme uygulamaları (The Sleuth Kit, ), registry kayıtlarını izleme uygulamaları (process bat, captureBAT,regshot), Process izleme uygulamaları(sysinternals,process hacker,process explorer), Servisleri izleme uygulamaları vebellek inceleme uygulamaları(Volatility Framework,) bulunmaktadır. Bunun dışında özellikle web üzerinden analiz yapan (Anubis,Norman,Comodo) sandbox ürünleri verdiğiniz örneği veritabanlarındaki signature örnekleriyle karşılaştırıp daha önceden tespit edilmiş bir yazılım olup olmadığına da bakarlar. Tüm bu araçların oluşturduğu çıktı sandbox kodu tarafından derlenerek rapor haline getirilir.
Malware Sandbox Ortamları
Aşağıda bilinen malware ortamlarını türlerine göre grupladım.

Web üzerinden servis olarak dosya yükleyip sonucu rapor olarak verenler:
* Norman SandBox (http://www.norman.com/security_center/security_tools/)
* Anubis (http://anubis.iseclab.org)
* GFI Sandbox (http://www.threattrack.com/) (eski CWSandbox)
* ThreatExpert (http://www.threatexpert.com)
* Comodo Camas (http://camas.comodo.com)
* MalBox (http://malbox.xjtu.edu.cn)
* Xandora (http://www.xandora.net/)

Ücretli Olanlar:
* Norman SandBox (http://www.norman.com/products/sandbox_malware_analyzers/en)
* GFI Sandbox (http://www.sunbeltsoftware.com/Malware-Research-Analysis-Tools/Sunbelt-CWSandbox/)
* Joe Sandbox (http://www.joesecurity.org)

Ücretsiz ama kaynak kodu açık olmayanlar:
* Buster's Sandbox Analyzer (http://bsa.isoftware.nl)

Open Source:
* Cuckoo Sandbox (http://www.cuckoobox.org)
* Truman Sandbox (http://www.secureworks.com/research/tools/truman/)
* ZeroWine (http://sourceforge.net/projects/zerowine/)
* ZeroWine Tryouts (http://zerowine-tryout.sourceforge.net/)
* Minibis (http://www.cert.at/downloads/software/minibis_en.html)
* BitBlaze (http://bitblaze.cs.berkeley.edu)


Malware SandBox  Karşılaştırması

Şekil 1 Online Sandbox Karşılaştırması


Şekil 2 Offline Sandbox Karşılaştırması



Şekil 3 Örnek Rapor – Anubis








Kaynakça
•    Malware Analyst's Cookbook – Wiley Publishing
•    A Survey on Automated Dynamic Malware Analysis Techniques and Tools – Manuel Egele, Theodoor Scholte, Engin Kırda, Christopher Kruegel
•    http://en.wikipedia.org/wiki/File:Malware_statics_2011-03-16-en.svg
•    http://www.cuckoobox.org/
•    http://www.cert.at/downloads/software/minibis_en.html
•    http://bitblaze.cs.berkeley.edu/
•    http://www.secureworks.com/research/tools/truman/
•    http://zerowine.sourceforge.net/
•    http://zerowine-tryout.sourceforge.net/
•    http://anubis.iseclab.org/
•    http://www.threattrack.com/
•    http://www.norman.com/
•    http://camas.comodo.com
•    http://malbox.xjtu.edu.cn
•    http://www.xandora.net/


======================================================================

IF YOU LIKE THIS ARTICLE PLEASE CLICK ADVERTISEMENTS

MAKALEYİ BEĞENDİYSENİZ LÜTFEN SİTEDEKİ İLANLARI TIKLAYINIZ.

======================================================================