Site icon IT Akademi

Malware (Zararlı Yazılım) Analizi

Malware (Zararlı Yazılım) Analizi

Malware sözcüğü MALicious SofWARE kelimelerinden türetilmiş bir sözcüktür. Malware sözcüğünün Türkçe karşılığı ise zararlı yazılımdır. Malware, zararlı yazılımların tamamına verilen genel ad dır. Örnek vermek gerekirse virus, backdoor (arka kapı), worm (solucan virüsü), trojan (truva atı), spyware (casus yazılım), ransomware (fidye virüsü) gibi zararlı yazılımlar malware olarak adlandırılır. Bu zararlı yazılımların ne yaptıklarından kısaca bahsedelim.

Malware Türleri

Sisteme saldıran kişi tarafından daha sonra sisteme tekrardan erişim sağlayabilmesi için bıraktığı zararlı koda backdoor denir.

Kendisini kopyalayarak çoğaltan zararlı yazılımlardır. Solucanlar ağ bağlantısı veya indirdiğiniz dosya yoluyla sisteminize bulaştıktan sonra kendisini kopyalayarak çoğaltır ve ağınızda bulunan diğer bilgisayarlara ve sunucuları etkileyebilir.

İnternetten indirdiğiniz dosyaların içerisine gizlenerek sisteminize sızan zararlı yazılımlardır. İndirdiğiniz dosyaların içerisine yerleştirilerek masum bir şekilde görünüp sisteminize sızar. Solucan virüsleri gibi kendisini çoğaltmaz.

Sizin izniniz ve bilginiz olmadan verilerinizi toplayıp, yazılımı oluşturan kişiye veya üçüncü kişilere verilerinizi gönderen zararlı yazılımlardır. Bu yazılımlar bastığınız tuşları kaydedebilir (keylogger), gizli bilgileri (parolalar, kredi kartı numaraları, PIN numaraları vb.) alabilir, e-posta adreslerini toplayıp karşı tarafa gönderebilir. Bunlara ek olarak sisteminizin performansını etkiler, CPU, GPU, RAM gibi bileşenlerin kullanım oranını arttırır.

Fidye istemek için oluşturulan zararlı yazılımlardır. Kullanıcıların sistemlerini kilitleyerek dosyalara erişimi engeller. Sistemin açılması için fidye talep eder.

Malware Analiz Yöntemleri

Malware Analiz Yöntemleri

Zararlı yazılımları analiz etmenin bir çok farklı yolu vardır. Fakat analiz ederken izlenecek yöntemler temel olarak statik analiz ve dinamik analiz olarak ikiye ayrılmıştır. Bunlarda kendi içerisinde temel ve ileri seviye olamak üzere ikiye ayrılır. Bu farklılıklar analiz esnasında kullanılan tersine mühendislik yöntemleri, kullanılan programlar vb. gibi etkenlerden dolayı ortaya çıkmıştır.

Statik Analiz:

Statik analiz temel olarak analiz edilecek yazılımın canlı ortamda çalıştırılmadan kaynak kodlarına bakarak analiz edilmesidir. Yazılımın kodları incelenerek dışarıdan hangi dosyaların import edildiğini, hangi kütüphaneleri kullandığını, string değerlerini, obfuscate (karmaşıklaştırma) işlemi ve pack işlemi yapılıp yapılmadığı gibi yazılım hakkında bir çok bilgiye sahibi oluruz. Burada sahip olduğumuz bilgiler bir sonraki aşama olan dinamik analizde işimize yarayacaktır.

Dinamik Analiz:

Dinamik analiz temel olarak analiz edilecek yazılımın canlı ortamda çalıştırılıp sistem üzerinde yaptığı işlemlere, davranışlarına bakarak yazılımın analiz edilmesidir. Statik analizde elde ettiğimiz bilgilerin bir çoğu burada kullanılır.

Malware analizinin ilk aşamalarından birisidir. Analiz edilecek yazılımın sistem üzerinde çalıştırılmadan, reverse edilmeden (tersine mühendislik ile derinlemesine kodları incelenmeden) hızlı bir şekilde dosya formatının tespiti, virustotal gibi siteler yardımı ile antivirüslerin verdiği tepki, hash değeri alınarak daha önceden zararlılara ait hash değerleri ile karşılaştırılması yapılması, yazılım üzerinde paketleme veya karmaşıklaştırma (obfuscation) işlemi yapılıp yapılmadığı kontrol edilerek yazılım hakkında bilgi elde edilir. Burada elde edilen bilgiler diğer aşamalarda kullanılacaktır. Davranışsal analiz ve derinlemesine kod analizi yapılmadığı için dosyanın kesin olarak zararlı olup olmadığı tespit edilemez.

Analiz edilecek yazılımın izole edilmiş bir ortamda çalıştırılarak sistem üzerinde yaptığı değişiklikler, davranışsal analizi, sistem kayıt dosyasında yaptığı değişiklikler, oluşturulan processlerin incelendiği kısımdır. Temel statik analizde olduğu gibi programlama bilgisi gerektirmez.

İleri seviye statik analizde, analiz edilecek yazılım reverse engineering (tersine mühendislik) yöntemleri ve disassemble programları kullanılarak kaynak kodlarının derinlemesine incelemesi yapılır. Yazılımın kullandığı fonksiyonlar, kütüphaneler vb. gibi özellikleri inceleyerek yazılımın işleyiş mantığı çözülür.

Analiz edilen yazılımın çalışır durumda incelendiği, bir debugger programı ile debug edilip aşama aşama incelendiği, kayıt defteri (register) hareketlerinin incelendiği aşamadır.

Exit mobile version