Temel Düzeyde Malware Analizi / Araçları
Malware'ların içlerine dalalım!
1.Ön Bilgi
2.Hakkında
3.Statik Analiz
4.Dinamik Analiz
4.1.Registry İncelemesi
4.2.Dosya Aktiviteleri
4.3 Network Aktiviteleri
4.4 Process Analizi
5.Makale Sonu
1.Ön Bilgi
Bu yazımızda, temel düzeyde dinamik malware analizinin nasıl yapılabileceğinden bahsedeceğiz, ilgili araçları tanıtacağız.
Genel olarak, malware analizi dinamik ve statik olmak üzere iki şekilde yapılır.Statik analiz ile kasıt, yazılımın çalıştırılmadan, "dead listing" denilen reverse engineering yöntemleriyle ,yani programin dissassembly çıktısı olsun, resource hacker vb. programlar aracılığı ile içinde gömülü olan şeyleri araştırma gibi yöntemlerdir.
Bizim bu yazıda daha çok bahsedeceğimiz ise dinamik analiz olacak, yani program aktifken yaptığı işleri kontrol ederek "malware" olup olmadığına karar vereceğiz ya da ne yaptığını detaylı olarak inceleyebileceğiz. Haricinde "debugging" de bir dinamik analiz metodudur. Fakat yazıda reverse engineering yöntemlerine değinilmeyeceği için makale incelenmeyecektir.
Aslında her ne kadar bizim yapacağımız nacizane analizler yerine, anti-virus, firewall , spyware vb çözümler kullanarak genellikle bu tür malware'leri tespit edebilecek olsanız da, genel olarak malware'lerin nasıl çalıştığını merak eden, ne gibi karakteristik özellikleri olduğunu öğrenmek isteyen, ve şüphelendiği dosyayı az-çok kurcalamak isteyen insanlar için faydalı olacaktır.
2.Hakkında
Yazar : Mesut TİMUR (mesut@h-labs.org)
Konular/Keywordler : malware ,trojan , virus, zararlı program tespiti
Seviye : Orta Düzey(Son Kullanıcı)
Tarih : 25 Aralık 2007
3.Statik Analiz
Genel olarak, değerlendirmelerin çalıştırılmayan, yani şüphelenilen uygulamanın durgun hali üzerine yapılan analizlerdir. Temel konseptleri için :
Executable dosya içerisinde geçen stringleri incelemek, çalışması için gerekli dll dosyalarını, derlendiği platform ve yazıldığı dili kavramak ,disassembly yani makine kodunu alıp biraz daha okunabilir hal olan ilgili işlemcinin assembler koduna çevirme, yapılabiliyorsa decompilation, packlenmişse unpacking vb işlemleri kapsayan başlıktır.Kod obfuscation ya da encryption gibi yöntemler çokça kullanılır ve analiz sürecini geciktirir/engeller.
Zaman zaman amatör malware'leri analiz ederken statik analizde çokça yararlı bilgi edinilebilmektedir. 1-2 yıl kadar önce "sms programı" adı altında dağıtılan bir keyloggerın yaptığı kayıtları yolladığı bir php scriptini, ve adresini bu yöntemle çok rahat tespit edebilmiştim.İşin komik yanı, keylogger'ı yazan arkadaş kendi nickiyle açtığı bir sub-domain'e kayıtları yönlendirmesiydi.
Haricinde belki de statik analizde en faydalı olan şeylerden biri, ilgili malware ile ilgili olarak nette araştırma yapmak.
Örneğin foundstone'un BinText isimli yazılımı bu işi başarıyla yapmakta.Verilen binary dosya içerisindeki ASCII text, Unicode ve Resource stringleri döndürebiliyor.
Örnekte ve tabii ki resimden de görülebileceği üzere, browse butonu ile kendisini gösterip Go'ya tıkladığımda programın hemen her yerinde geçen stringleri döndürdü, resimde ise sadece help'teki bilgilerin olduğu yeri gösterdim.
4.Dinamik Analiz
Kısacası malware'imiz çalışırken yapılan analizlerdir.Malware'in çalıştığı ortama etkisi, ortam değişkenlerine bağlı davranışları vs incelenir. Malware'in aktif olarak çalışacağı için, sisteminize zarar verme riskine karşı mantıklı olan VMware üzerinde bu işlemi gerçekleştirmektir.Dinamik analizin esas olayı, malware'in nasıl çalıştığından daha çok tam olarak ne yaptığıdır.
Dinamik analiz genel olarak 4 farklı koldan gerçekleştirilebilir.
4.1.Registry İncelemesi : Malware'in, registry'e yazdığı bilgilerin aynı zamanda bir text dosyasına kayıt edilmesi, belli filtera göre kayıt edilmesi ve sakladığı bilgilerin ortaya çıkmasıyla birlikte belli bir miktar bilgi sahibi olmak. Bu iş için biçilmiş kaftan tabii ki yıllardır bilinen/kullanılan RegMon'dur.
Regmon Gerçek zamanlı olarak hangi executable dosyanın hangi registry key'ine ulaştığını, o key ile ilgili ne gibi bir işlem yaptığını (açmak, kapamak, okumak, yazmak) , işlem sonucunu gösterebilmektedir.
Malware'ler ise, daha sonra kullanmak istedikleri bazı bilgileri saklamak ya da windowsun yeniden açıldığında tekrar aktif hale gelmesi için otomatik olarak çağırılması ile ilgili ayarlamalar yapıyor olabilir. Onun için şüpheli binary dosyanın registry işlemleri kesinlikle incelenmelidir.
Regmonun çalışma mantığı temel olarak hafızaya bir device driver yükleyip, registry ile ilgili servislere giden çağrıları hook etmek, yani çağrılar ile servis arasında girip gelip-giden istekleri görebilmektedir.
4.2 Dosya Aktiviteleri : Yine aynı şekilde malware'lar, dosyalarda önemli veriler tutuyor ya da bazı kontrolleri dosyaları sayesinde gerçekleştiriyor olabilirler. Bundan dolayı onların dosyalarla olan aktivitelerini incelemek bize çok faydalı bilgiler sağlayabilir.
Bu iş için de, yine SysInternals'in bir yazılımı olan FileMon kullanılabilir.FileMon da RegMon gibi hangi processin hangi dosya ile işlem yaptığını, ne gibi bir işlem yaptığını vb aktiviteleri monitor etmekte oldukça başarılı.
4.3 Network Aktiviteleri : Hangi portların açık olduğunu, hangi process'in hangi porttan iletişim yaptığını, hangi ip ile iletişimde olduğunu merak edebilir ve hatta bu iletişimin içeriğinin ne olduğunu bilmek isteyebilirsiniz. Bu durumda, yine SysInternals'ten TCPView yazılımını tavsiye edeceğim. Yalnız aynı zamanda trafiğin içeriğini merak ediyorsanız, sisteminize bir sniffer kurmanız gerekecek ve bu sefer da nacizane tavsiyem Wireshark olacak.
Network aktivitelerinin incelenmesi,malware analizinin belki de en kilit noktalarından biridir ki şüpheli bir dosyanın trojan olup olmadığını bu şekilde anlayabilirsiniz.
4.4 Process Analizi
Bu yazıyı yazma sebebim olan konu başlığına geldik.Şüpheli bir dosyanın kullandığı kaynaklar , yukarıda saydığımız tüm aktivitelerini birden izleme, process threadleri hakkında bilgi, performans ve ilgili graphleri görebilme, processlerin priority(öncelik)leriyle oynayabilme, process'i kapatabilme, çalışan process'in tam yolu ve bir dolu daha özellik.
Process Explorer, tüm bu saydıklarımı yapabiliyor.
Haricinde, dinamik analiz için iDefense Labs'in Malcode Analysis Pack'i de kullanabilir. Haricinde malware analizi için sayfalarında detaylı bilgi bulunabilir.
Genel olarak, dinamik analizin temel konseptleri ve ilgili araçlar da bunlar.
Tüm bu araçlar tanıtıktan sonra klasik malware analiz metodolojisi :
- Kontrollü bir ortam sağlanması
- Bilgi Toplama
- Statik ve Dinamik Analiz
- Bilgilerin derlenmesi ve yorum
5.Makale Sonu
Her ne kadar farklı şeyler anlatmak istesem de araç tanıtımının dışına pek çıkamadım bu yazıda, şimdilik bu kadar makalenin alacağı ilgi ve tepkiye göre devamı niteliğinde bir şeyler yazarız. Şiddetle yorum ve yönlendirmelerinizi bekliyorum.
Re: Temel Düzeyde Malware Analizi / Araçları
Process Monitor sayfasi