Merhaba Türk Hack Team ailesi, ben Anka Red Team'den C4K1R. Bugün size dijital dünyanın görünmez savaşçıları ve sinsi misafirleri olan Trojanlar ve Virüsler ile alakalı teknik derinlikte bir anlatım yapacağım. Genellikle birbirinin yerine kullanılan ancak mimari ve yayılma stratejisi açısından taban tabana zıt iki kötü amaçlı yazılım (malware) türüdür.
Bir siber güvenlik perspektifiyle, bu yapıları "statik dosyalar" olmaktan çıkarıp, işletim sistemi düzeyindeki davranışları ve bellek manipülasyonu teknikleriyle incelemek gerekir. İşte blogun için hazırladığım teknik derinliği yüksek rehber:
Dijital Savaş Alanının Anatomisi: Virüs ve Trojanların Kod Seviyesinde Analizi
Siber güvenlik ekosisteminde "virüs" kelimesi genellikle tüm kötü amaçlı yazılımlar (malware) için şemsiye bir terim olarak kullanılır. Ancak, bir adli bilişim analisti veya tersine mühendis (reverse engineer) için virüs ve Trojan, işletim sistemi düzeyinde tamamen farklı iki manipülasyon tekniğini temsil eder. Bu yazıda, bu iki tehdit türünü sadece tanımlamakla kalmayacak, C/C++ seviyesindeki davranışlarını, bellek manipülasyonlarını ve gelişmiş AV (Antivirüs) atlatma tekniklerini inceleyeceğiz.
Bilgisayar Virüsleri: Taşıyıcıya Bağımlı Kod Parazitleri
Bir virüsü, biyolojik kuzeninden ayıran en önemli teknik özellik, kendi başına çalışabilir bir PE (Portable Executable) dosyası olmamasıdır. Virüs, meşru bir ana bilgisayar programının (host) kod yapısına enjekte edilmiş bir kod parçasıdır.
PE Dosyası Enfeksiyon Mekanizması
Virüsün temel amacı, meşru programın yürütme akışını (execution flow) ele geçirmektir. Bunu yapmak için Windows PE dosya formatının yapısını manipüle eder.- Enjeksiyon: Virüs, kendi gövdesini hedef PE dosyasının sonuna, genellikle yeni bir bölüm (section, örn: .virus) oluşturarak veya mevcut boşluklara (code cavities) sıkıştırarak yazar.
- Giriş Noktasını Değiştirme (Entry Point Hijacking): Bu en kritik adımdır. Virüs, PE dosyasının başlığındaki (Header) AddressOfEntryPoint değerini, kendi kodunun başladığı adrese yönlendirir.
- Yürütme ve Geri Dönüş: Kullanıcı programı çalıştırdığında, işletim sistemi önce virüs kodunu yürütür. Virüs işini bitirdikten sonra (örneğin kendini başka dosyalara kopyaladıktan sonra), programın kontrolünü orijinal giriş noktasına (OEP - Original Entry Point) geri verir. Kullanıcı programın normal çalıştığını sanır.
Gelişmiş Virüs Teknikleri: Polimorfizm
Basit virüsler statik imza tabanlı tarayıcılar tarafından kolayca yakalanır. Bunu aşmak için Polimorfik Virüsler kullanılır. Bu virüsler, her yeni enfeksiyonda kendi gövdesini farklı bir anahtarla şifreler ve sadece küçük bir "şifre çözücü döngüyü" (decryption loop) açıkta bırakır. AV'ler her seferinde farklı bir dosya imzası (hash) görürler.
Trojanlar (Truva Atları): Meşruiyet Maskesiyle Yetki Elde Etme
Trojanlar, virüslerin aksine bağımsız programlardır. Teknik başarıları, kod enjeksiyonundan ziyade sosyal mühendislik ve gelişmiş işletim sistemi API manipülasyonuna dayanır. Kullanıcıyı, zararlı bir dosyayı (örneğin bir PDF okuyucu veya sistem yaması) kendi eliyle çalıştırmaya ikna ederler.Kalıcılık ve Gizlenme Teknikleri
Kullanıcı Trojanı çalıştırdıktan sonra, Trojanın amacı sistemde kalıcı olmak (persistence) ve kendini gizlemektir. İşte en yaygın iki teknik:DLL Injection (Dinamik Bağlantı Kitaplığı Enjeksiyonu)
Zararlı kod, diske bir .exe olarak değil, bir .dll olarak bırakılır. Trojan, meşru bir Windows sürecine (örneğin explorer.exe) sızarak bu DLL'i yüklemesini sağlar.- Trojan, hedef sürecin işlem kimliğini (PID) bulur.
- VirtualAllocEx API'sini kullanarak hedef sürecin bellek alanında yer ayırır.
- WriteProcessMemory ile DLL'in yolunu bu alana yazar.
- CreateRemoteThread ve LoadLibrary API'lerini kullanarak hedef sürecin içinde yeni bir ipucu (thread) başlatır ve zararlı DLL'i yükletir.
Process Hollowing (Süreç Boşaltma)
Bu daha agresif bir tekniktir. Trojan, meşru bir sistem programını (örneğin svchost.exe) askıya alınmış (suspended) modda başlatır. Daha sonra bu sürecin bellekteki meşru kodunu boşaltır (unmap) ve yerine kendi zararlı kodunu yazar. İşlem başlatıldığında, dışarıdan bakıldığında svchost.exe gibi görünür ancak içten içe bir Trojan gibi çalışır.
Bir siber güvenlik analisti, statik analiz araçları (IDA Pro, Ghidra) kullanarak kodun iç yapısını incelediğinde bu farkları net bir şekilde görebilir.
Teknik Özellik | Bilgisayar Virüsü | Trojan (Örn: RAT) |
Giriş Noktası (Entry Point) | Değiştirilmiş / Hijacked | Meşru başlangıç noktası |
Kullanılan Kritik API'ler | FindFirstFile, FindNextFile (yayılmak için), PE Header manipülasyon kodları | VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, InternetOpen (C2 ile iletişim için) |
Analiz Zorluğu | Kodun şifresini çözmek ve OEP'i (Orijinal Giriş Noktası) bulmak zordur | Kodun ne zaman ve hangi yolla (DLL, Shellcode) enjekte edildiğini bulmak zordur |
Yürütme Akışı | Virüs Kodu -> Orijinal Kod | Meşru Maske -> Zararlı İşlev (arka planda) |
Modern Savunma: EDR ve Davranışsal Analiz
Eski nesil antivirüsler dosya imzalarına (hash) bakar. Gelişmiş polimorfik virüsler veya kod enjeksiyonu yapan Trojanlar bu sistemleri kolayca geçer. Bu nedenle modern savunma stratejileri EDR (Endpoint Detection and Response) çözümlerine ve User and Entity Behavior Analytics (UEBA) yöntemlerine dayanır.
Aşağıdaki grafik, bir EDR'ın dosya imzasına değil, dosyanın yaptığı API çağrılarına dayalı olarak oluşturduğu puanlama sistemini göstermektedir. Şüpheli API çağrıları (örneğin Process Hollowing işaretleri) belirli bir eşiği geçtiğinde sistem alarm verir.
Eski nesil antivirüsler dosya imzalarına (hash) bakar. Gelişmiş polimorfik virüsler veya kod enjeksiyonu yapan Trojanlar bu sistemleri kolayca geçer. Bu nedenle modern savunma stratejileri EDR (Endpoint Detection and Response) çözümlerine ve User and Entity Behavior Analytics (UEBA) yöntemlerine dayanır.
Aşağıdaki grafik, bir EDR'ın dosya imzasına değil, dosyanın yaptığı API çağrılarına dayalı olarak oluşturduğu puanlama sistemini göstermektedir. Şüpheli API çağrıları (örneğin Process Hollowing işaretleri) belirli bir eşiği geçtiğinde sistem alarm verir.
Sonuç: Kodun Ötesini Görmek
Virüsler ve Trojanlar arasındaki fark, sadece bir yayılma yöntemi farkı değildir; bu fark, işletim sisteminin bellek ve süreç yönetimine nasıl müdahale ettikleriyle ilgilidir. Bir siber güvenlik uzmanı olarak, bir malware analizi yaparken sadece dosya ismine veya uzantısına değil, dosyanın API içe aktarma tablosuna (IAT), PE başlıklarına ve bellek üzerindeki davranışlarına odaklanmalısınız. Tehdit aktörleri kodlarını sürekli güncellese de, Windows API'lerinin çalışma mantığı aynı kalır ve en iyi savunma, bu mantığı iyi anlamaktan geçer.
Kod satırları arasında başlayan bu yolculukta, her bir 'exploit' yeni bir öğreti, her bir 'patch' yeni bir meydan okumaydı. Siber uzayın derinliklerinde iz bırakmaya, 'Zero-Day'lerin gizemini çözmeye ve her zaman bir adım önde olmaya devam edeceğiz. Bilgi paylaştıkça çoğalır, dostluklar ise sistem loglarına kazınan kalıcı izler gibi baki kalır. Bir başka 'root' yetkisinde görüşmek üzere...
Safe hacking, Türk Hack Team!
C4K1R"
Kod satırları arasında başlayan bu yolculukta, her bir 'exploit' yeni bir öğreti, her bir 'patch' yeni bir meydan okumaydı. Siber uzayın derinliklerinde iz bırakmaya, 'Zero-Day'lerin gizemini çözmeye ve her zaman bir adım önde olmaya devam edeceğiz. Bilgi paylaştıkça çoğalır, dostluklar ise sistem loglarına kazınan kalıcı izler gibi baki kalır. Bir başka 'root' yetkisinde görüşmek üzere...
Safe hacking, Türk Hack Team!
C4K1R"

