Zararlı Yazılım Analizi
Dijital dünyanın görünmez tehditlerini anlamak, sadece bir dosyayı incelemekten çok daha fazlasıdır; bu, siber saldırganların zihin haritasına yapılan bir yolculuktur.
Her gün milyonlarca yeni zararlı yazılım örneği (malware) internete yayılıyor. Bu yazılımların bir kısmı basit reklam yazılımlarıyken, bir kısmı devletlerin kritik altyapılarını hedef alan karmaşık dijital silahlardır. Zararlı yazılım analizi, bu karmaşık kod yapılarını parçalarına ayırarak; nasıl çalıştıklarını, kim tarafından yazıldıklarını ve sisteme verdikleri hasarı tespit etmemizi sağlayan kritik bir siber güvenlik disiplinidir.
Zararlı yazılım analizi, bir tehdidi tanımlamak için gereken tüm IOC (Indicator of Compromise) ve TTP (Tactics, Techniques, and Procedures) verilerini üretir. Bu veriler modern savunma sistemlerinin temel taşıdır.
1. Temel Kavramlar ve Taksonomi
Zararlı yazılım dünyası, geniş bir biyolojik ekosistem gibidir. Her türün kendine has bir bulaşma, gizlenme ve yayılma yöntemi vardır. Analiz uzmanı için ilk adım, elindeki örneğin hangi kategoriye girdiğini tahmin etmektir.
Genişletilmiş Tehdit Sınıflandırması
- Ransomware (Fidye Yazılımı): Artık sadece şifreleme yapmıyorlar. Modern fidye yazılımları, "Sextortion" ve veriyi halka sızdırma tehdidini de barındırıyor. LockBit ve Conti gibi gruplar, analiz edilmeyi zorlaştırmak için özel paketleyiciler kullanır.
- RAT (Remote Access Trojan): Uzaktan yönetim araçlarıdır. Kameranızı açabilir, dosyalarınızı çalabilir ve sizi bir mikrofon olarak kullanabilir.
- Stealer (Bilgi Hırsızları): Tarayıcı geçmişi, kaydedilen şifreler ve kripto cüzdan anahtarları üzerine odaklanır. Redline ve Raccoon en bilinen örnekleridir.
- Wiper (Veri Siliciler): Genellikle siber savaşlarda görülür. Amaç fidye değil, sistemi tamamen geri döndürülemez şekilde yok etmektir.
Analizin Amacı: Neden Yapıyoruz?
Bir kurum için analiz süreci, yangın sonrası yapılan bir itfaiye raporu gibidir. Yangının neden çıktığını (Vektör), neyin yandığını (Hasar) ve tekrar nasıl önleneceğini (Savunma) bu analizle belirleriz. Teknik raporlar, kurumsal güvenlik stratejilerinin çekirdeğini oluşturur.
2. Statik Analiz: Kodun Anatomisini Anlamak
Statik analiz aşamasında dosya asla çalıştırılmaz. Dosyanın DNA'sı incelenir. Bu, risk içermez ve çok hızlı bir ön görü sağlar.
2.1. Hash Analizi ve Tehdit İstihbaratı
Dosyanın SHA-256 özeti, siber güvenlik topluluklarının kolektif hafızasıdır. Bir dosyanın hash'ini VirusTotal gibi bir veritabanında arattığınızda, daha önce o dosyayı analiz etmiş 70 farklı güvenlik motorunun raporuna ulaşırsınız. Ancak saldırganlar "FUD" (Fully Undetectable) denilen yöntemle, hash değerini her bulaşmada değiştirebilirler.
2.2. PE (Portable Executable) Header İncelemesi
Windows üzerinde çalışan her `.exe` veya `.dll` dosyası belirli bir yapıya sahiptir.
- Sections: `.text` (kod), `.data` (veriler), `.rsrc` (ikonlar ve kaynaklar). Eğer bu bölümlerden birinin boyutu çok orantısızsa, içinde gizli bir kod saklanıyor olabilir.
- Time Date Stamp: Dosyanın derlenme zamanı. Bazen saldırganlar burayı sahte bir tarihle (örneğin 1970) değiştirerek analisti şaşırtmaya çalışır.
2.3. YARA Kuralları ile Tarama
YARA, zararlı yazılımları karakteristik özelliklerine göre sınıflandırmak için kullanılan bir dildir. "Eğer bir dosya içinde şu 3 kelime geçiyor ve boyutu şu kadarsa bu X virüsüdür" şeklinde kurallar yazılır. Statik analizin en güçlü silahlarından biridir.
3. Dinamik Analiz ve Davranış Takibi
Statik analizin "paketlenmiş" (packed) dosyalar karşısında çaresiz kaldığı noktada, dosyayı kontrollü bir ortamda çalıştırıp ne yaptığını izleriz.
3.1. Sandbox (Kum Havuzu) Teknolojileri
Analiz ortamı, dış dünyadan tamamen koparılmış ama interneti simüle eden bir yapıdadır. **Cuckoo Sandbox** veya **Any.Run** gibi sistemler, zararlıyı bir laboratuvar faresini izler gibi takip eder.
- Ağ Trafiği: Hangi IP'ye bağlanıyor? Veriyi POST mu ediyor GET mi?
- Dosya Hareketleri: Kendini `AppData` altına mı kopyaladı yoksa `System32`'ye mi sızmaya çalışıyor?
3.2. API Hooking ve İzleme
Zararlı yazılımlar her işi Windows'a yaptırır. Bir dosya silmek istiyorsa `DeleteFile` fonksiyonunu çağırır. Analistler bu fonksiyonları "kancalayarak" (hooking), virüsün işletim sistemine verdiği her komutu kayıt altına alır.
4. Tersine Mühendislik (Reverse Engineering)
Yazılımın kalbine, yani Assembly kodlarına indiğimiz bölümdür. Burada kodun mantıksal akışı (Control Flow) çözülür.
4.1. Disassembly vs. Decompilation
Disassembly, makine kodunu Assembly diline (`MOV`, `PUSH`, `XOR`) çevirir. Decompilation ise bunu daha üst seviye bir dile (C gibi) çevirmeye çalışır. **Ghidra** ve **IDA Pro** bu alanda kullanılan en güçlü araçlardır.
4.2. Adım Adım Debugging
Programı satır satır çalıştırarak belleği izleriz. Bir fidye yazılımı analizinde, tam şifreleme anahtarının bellekte oluşturulduğu anı yakalayıp dondurmak, tersine mühendisliğin zirve noktasıdır.
5. Mobil Zararlı Yazılım Analizi (Android/iOS)
Günümüzde kişisel verilerimizin çoğu telefonlarda. Bu yüzden mobil malware analizi artık en az Windows analizi kadar önemlidir.
5.1. APK Analizi
Android uygulamaları (APK) aslında birer ZIP dosyasıdır. Bunları açıp içindeki `classes.dex` dosyasını Java koduna geri döndürebiliriz (JADX-GUI ile). Burada uygulamanın talep ettiği izinler (Kamera, SMS okuma, Kişiler) ve arka planda veri gönderdiği adresler incelenir.
5.2. Dinamik Mobil Analiz
Emülatörler üzerinde uygulama çalıştırılırken `Frida` gibi araçlarla uygulama içi fonksiyonlara müdahale edilir. Örneğin uygulamanın bir sunucuya gitmesini engelleyip, o sunucudan gelmiş gibi sahte bir yanıt vererek uygulamanın nasıl tepki vereceği ölçülür.
6. Kernel Seviyesi Analiz ve Rootkitler
En tehlikeli zararlı yazılımlar, işletim sisteminin "Kernel" (Çekirdek) dediğimiz en yetkili bölgesinde çalışır. Bunlara **Rootkit** diyoruz.
6.1. Görünmezliğin Arkasındaki Sır
Bir rootkit, sizin "Görev Yöneticisi"ni kandırabilir. Siz görev yöneticisine baktığınızda o işlemi görmezsiniz, çünkü virüs işletim sisteminin kendisine "beni kimseye gösterme" demiştir. Bu tür zararlıları bulmak için **Memory Forensics** (Bellek Adli Bilişimi) kullanılır.
6.2. Volatility Framework
Bilgisayarın o anki RAM görüntüsü üzerinden çalışan bu araç, işletim sisteminin size söyleyemediği gerçekleri söyler. Gizli ağ bağlantılarını, silinmiş dosyaları ve çekirdeğe enjekte edilmiş kodları ortaya çıkarır.
7. Anti-Analiz Tekniklerini Aşma
Gelişmiş saldırganlar, yakalanmamak için yazılımlarına "akıl" eklerler.
- Sanal Makine Tespiti: Eğer işlemci tek çekirdekliyse veya ekran kartı ismi "VMware" ise virüs çalışmaz. Analist, bu durumda sanal makinenin tüm donanım isimlerini "Gerçek PC" olarak değiştirmelidir.
- Zaman Bombaları: Bazı virüsler sisteme girdikten 24 saat sonra çalışmaya başlar. Analist, sanal makinenin saatini ileri alarak bu engeli aşar.
- Şifreli Payload: Virüsün asıl amacı şifrelenmiş bir dosya içinde bekler. Analist, bu dosyayı çözecek anahtarı bellekte bulup manuel olarak açmalıdır.
Sık Sorulan Sorular
Zararlı yazılım analisti olmak için hangi dilleri bilmeliyim?
Python (otomasyon için), C (sistem yapısını anlamak için) ve Assembly (tersine mühendislik için) temeldir. Ayrıca Java/Kotlin mobil analiz için gereklidir.
Analiz yaparken kendi bilgisayarımı bozma riskim var mı?
Doğru izole edilmiş bir "Virtual Machine" (Sanal Makine) kullanıyorsanız bu risk yok denecek kadar azdır. Sadece ana makinenizle dosya paylaşımını kapalı tuttuğunuzdan emin olun.
Zararlı yazılım analizi sadece siber suçlarla mı ilgilidir?
Hayır, aynı zamanda devlet destekli siber casusluk faaliyetlerini (APT) tespit etmek ve kritik altyapıları (elektrik şebekeleri, nükleer tesisler) korumak için de hayati önem taşır.




