Zararlı Yazılım (Malware) Nedir? Statik ve Dinamik Analizi
Zararlı yazılım (Malicious Software aka Malware) siber tehtitler tarafından karşı tarafa zarar verme ya da karşı taraftan faydalanmak için üretilmiş yazılımlardır. Bir zararlı yazılımın bulaştırılması, karşı tarafta çalıştırılması ve saldıran taraf için avantaj elde edilmesini bir operasyon olarak nitelendirirsek, bu operasyonu gerçekleştiren siber tehtit unsurları amaçlarına ulaşmak için farklı yollar izleyebilirler.
Zararlı Yazılım Türleri ve Konsepti Anlama
Zararlı yazılımların, siber tehtit unsurlarının çıkarına olması yönünde türleri vardır:
- Truva atı: Hepimiz eski Greko-Romen hikayelerinden duymuşuzdur “Truva Atı” kavramını. Aynı o hikayelerde olduğu gibi zararlı yazılım kendini gizleyerek, kendisini karşı tarafın fayda göreceği bir dosya gibi göstererek sisteme bulaşır.
- Worm: Genellikle e-posta ile gönderilen ekler, çeşitli web siteleri ve ağ üzerinde paylaşılan dosyaları kullanarak yayılırlar. Solucanlar, bir sistemi ele geçirdiklerinde, kullanıcının başka bir eylemine ihtiyaç duymadan, kullanıcının veri kaynaklarını kullanarak (e-posta adres listesi gibi) kendi kaynak dosyalarını hızlı bir şekilde diğer kullanıcılara da ulaştırmayı denerler ve bu yolla kendilerini çok fazla sayıda çoğaltabilirler.
- Spyware: Bilgisayar kullanıcısının kendi rızası ve/veya bilgisi dışında veri toplayan casus yazılımlardır. Sisteme bulaştıktan sonra kendi çıkarları doğrultusunda işlemler gerçekleştirebilir.
- Keylogger: Hedef sisteme bulaştıktan sonra bilgisayarın aldığı girdileri kaydeden ve saldırgana bu verileri gönderen yazılımlardır. Örneğin bankacılık işlemlerinde, kişisel hesap bilgilerinin çalınmasında rol oynayabilir, çünkü kullanıcının girdiği girdiler kaydedilip daha sonra saldırgan tarafından kullanılmak üzere saldırgana ulaştırılıyor.
- Rootkit: Bulaştıktan sonra bilgisayarınıza format dahi atsanız kurtulamayacağınız zararlı yazılım türüdür.
- Adware: Bulaştıktan sonra bilgisayarınızda rastgele reklamlar çıkartabilen ya da bilgisayarınızdaki çalışan işlemlere reklam enjekte edebilen zararlı yazılım türüdür.
- Ransomware: Bulaştıktan sonra dosyalarınızı şifreleyip sizden fidye ödemenizi isteyerek dosyalarınızı eski haline döndüreceğini söyleyip buna inanan insanlardan fidye toplayan yazılım türüdür.
- Backdoor: Bulaştıktan sonra herhangi bir aktivite göstermeyip daha sonraki zamanlarda yeniden erişilebilmesi için açık bir arka kapı oluşturan zararlı yazılım türüdür.
Zararlı yazılımlar saydıklarımızla bitmiyor, çünkü zararlı yazılımın amacına göre ne yaptığı değişiyor. Bazen saldırgan tamamen karşı taraftaki dosyaları silip hedef bilgisayarı işlevsiz konuma getirmek isteyebilir, bazen de zararlı yazılım ile karşı tarafta backdoor açıp uygun zamanı kollayabilir. Hedef bilgisayarı botnet ağına katıp daha büyük bir saldırıda enfekte olmuş bilgisayar ağları sayesinde önemli bir rol oynayabilir.
Buna örnek verirsek (varsayalım ki) Rusya - Ukrayna savaşında birçok botnet aktif hale getirilip dünya genelinde enfekte olmuş bilgisayarlar ile saldırılar gerçekleştirildi, örneğin Türkiye’deki enfekte olmuş bilgisayar Rusya’daki saldırganın emri ile Ukrayna’daki bir websitesine DDoS saldırı gerçekleştirmeyi denedi. Belki Türkiye’deki kullanıcının bilgisayarı 10 dakika kitlendi, ekranı dondu sonra geri geldi. O 10 dakikada Rusya’daki saldırgan DDoS saldırısını gerçekleştirmiş ve saldırdığı hedefi etkisiz hale getirmiş olabilir.
Zararlı Yazılım Analizi
Belirli bir dosyanın veya örneğin davranışını veya amacını anlama sürecidir. Basit görünebilir fakat göründüğü kadar basit değil, olmaz da. Unutulmaması gereken bir şey var zararlı yazılımı üreten kişi, ürettiği yazılımın kolay anlaşılmasını engellemek, olabildiğince çözümleme sürecini geciktirmek ve daha fazla piyasada tutabilmek için analiz eden kişiye çeşitli eziyetler çektirecektir. Kimse emeğinin heba olmasını istemez, hele ki kötü amaçlı biri ise bu kimse, yazdığı yazılım üzerinde çeşitli karmaşıklaştırma işlemleri gerçekleştirerek ve analiz edecek kişinin analiz programları ile düzgünce açmasını engelleyerek emeğini(!) korumaya çalışacaktır. Zararlı yazılım analizi 3 başlık altında ifade edilebilir:
- Statik Analiz
- Dinamik Analiz
- Hibrit Analiz (Eş zamanlı Statik+Dinamik Analiz)
1. Statik Analiz
Zararlı yazılımı sanal makine üzerinde çalıştırmadan disassembler gibi araçlar kullanarak makine kodundan veya makine kodundan dönüştürülmüş C/C# kodundan anlamaya ve ipucu yakalamaya çalıştığımız analizdir. Zararlı yazılım ile direkt olarak etkileşim kurulmaz, sistemde harekete geçirdiği, kullandığı veya manipüle ettiği dataları tespit etmek; zararlı yazılımın daha detaylı analizi için bir taban oluşturmak için yapılır. Örneğin zararlı yazılımın sanal makine ortamında çalışmasını engelleyen, sanal ortam veya araçların kullanıldığını tespit eden kodlar varsa bunların temizlenmesi veya uygun ortamı yaratmak için makine koduna müdahale etmek gibi işlemler yapılabilir.
- Makine koduna dönüştürülmesi – Zararlı olabileceği düşünülen yazılımın makine kodunun incelenmesi, temel düzeyde bir kod düzleminde incelenmesidir.
- Dosyanın parmak izi – Her dosyanın kendi parmak izi, MD5/SHA256/SHA1, vardır ve bunların internet ortamında aratılması ile zararlının tanımlanması sağlanabilir
- Zararlı taraması - Zararlı olabileceği düşülen dosyanın içinde virüs izleri aramasıdır. Öğrneğin: VirusTotal, Payload Security
- Bellekte bıraktığı izler - Diğer yazılımlar gibi zararlı yazılımlar da bellekte veya bilgisayarın farklı bölümlerinde [RAM dump, pagefile.sys, hiberfile.sys] izler bırakacaktır. Bu izlerin tespiti ve incelenmesidir.
- Paketleyici – Zararlı yazılımların tespitinin zorlaştırılması için paketleyiciler (packer) kullanılabilir, çeşitli araçlarla paketleyicinin tespit edilmesidir.
Statik analiz araçları
- Hybrid-analysis
- Virustotal.com
- BinText
- Dependency Walker
- IDA
- Md5deep
- PEiD
- Exeinfo PE
- RDG Packer
- D4dot
- PEview
- DnsSpy
2. Dinamik Analiz
Dinamik analiz aslında zararlı yazılımın uygun laboratuvar ortamında (sandbox veya izole edilmiş sanal bir makine) çalıştırılıp davranışının izlenilmesidir, yani dinamik analizi olarak kastettiğimiz şey davranışsal analizidir. Sistemde açtığı, okuduğu ve düzenlediği dosyaların takip edilmesi, kayıt defteri üzerindeki değişiklikleri, bilgisayar sisteminde çalışan işlemlere müdahalesi (mesela process hooking, DLL injection, hollowing) gibi unsurların tespit edilip incelenmesidir. Dinamik analizi yapmak için, konsepte hakim olmak gerekir. Bu sebeple analiz sürecinde statik analizin de yer alması gerekir.
Sanal ortamın izole edilmiş olması çok önemli bir husustur, zararlı yazılımın çalışmasını incelerken özel hazırlanmış ortamımızdan kaçmasını veya dışarı sinyal göndermesini, ağda yayılmasını istemeyiz.
Dinamik analiz araçları
- Procmon
- Process Explorer
- Anubis
- Comodo Instant Malware Analysis
- Process MonitorRegshot
- ApateDNS
- OllyDbg
- Regshot
- Netcat
- Wireshark
3. Hibrit Analiz
Genellikle yapılan analiz türüdür, çünkü yukarıda açıkladığım üzere dinamik analizi daha iyi anlayabilmek için statik analiz yapılmış olması gerekir. Dinamik analiz sırasında değişen işaretçileri, bellek adreslerini, bellek verilerini ve belleğin izlenmesi analiz edilmesi süreci hem statik hem de dinamik analiz sürecine dahildir. Günümüz zararlı yazılımları çeşitli yöntemler kullanarak kendilerini gizlemeye ve bu statik/dinamik analiz sürecini zorlaştırmaya çalışmaktadırlar, bu sebeple hibrit analiz zararlı yazılımın anlaşılması ve karşılık verilmesi aşamalarında kilit rol oynamaktadır.
Bu analiz çeşitinde statik ve dinamik analiz araçları birlikte kullanılır. Ayrıyeten debugger dediğimiz çalışma sürecinde koddaki ve bellekteki değişikleri görmemizi sağlayan, istediğimiz yerlere breakpoint koyup çalışma süreci üzerinde söz hakkı olmamızı sağlayan araçlar da vardır.
Başlıca Hibrit analiz kombinasyonları
- IDA + x64dbg/x32dbg
- IDA + x64dbg/x32dbg + ProcessHacker/Procmon
- OllyDbg + IDA
- x64dbg + Wireshark