Kötü Amaçlı Yazılım Analizi
Kötü amaçlı yazılım analizi, virüsler, solucanlar, truva atları, fidye yazılımları ve rootkit'ler gibi kötü amaçlı yazılımların davranışlarını, yeteneklerini ve kökenlerini anlamak ve bunlara karşı savunma mekanizmaları geliştirmek amacıyla yapılan bir incelemedir.
Tanım
Kötü amaçlı yazılım analizi, kötü amaçlı yazılımları inceleme sürecidir; bu süreç, yazılımların işlevselliğini, yayılma şeklini, kalıcılığını ve etkisini belirlemek amacıyla, onları tespit etmek, kontrol altına almak ve iyileştirmek, ayrıca tehdit istihbaratına bilgi sağlamak için yapılmaktadır.
Kapsam
Bu konu, kötü amaçlı yazılımların taksonomisini, analiz tekniklerini (statik ve dinamik analiz, sanal ortamda çalıştırma (sandboxing), tersine mühendislik, davranışsal izleme), kötü amaçlı yazılımların kullandığı kaçınma yöntemlerini (paketleme (packing), gizleme (obfuscation), analiz karşıtı teknikler (anti-analysis)) ve bunlara karşı savunma sağlayan tespit yöntemlerini kapsamaktadır. Olay müdahalesi ve teknik düzeyde ilişkilendirme konularına değinilmektedir. Genel yazılım güvenlik açığı istismarı ve iyi huylu güvenli yazılım geliştirme uygulamaları bu konunun dışında tutulmakta olup, ilgili diğer konularda ele alınmaktadır.
Temel sorular
- Hangi kötü amaçlı yazılım kategorileri mevcuttur ve yayılma ile hedefler açısından nasıl farklılık gösterirler?
- Kötü amaçlı yazılımlar statik, dinamik ve sanal ortam (sandbox) teknikleriyle güvenli bir şekilde nasıl analiz edilir?
- Kötü amaçlı yazılım yazarları hangi kaçınma tekniklerini (paketleme, gizleme, hata ayıklama karşıtı) kullanır?
- Kötü amaçlı yazılımlar nasıl tespit edilir — imzalarla mı, sezgisel yöntemlerle mi, yoksa davranışsal olarak mı?
- Kötü amaçlı yazılım analizi, olay müdahalesini, ilişkilendirmeyi ve savunmayı nasıl destekler?
Anahtar kavramlar
- virüs, solucan, truva atı, fidye yazılımı, rootkit
- statik analiz ve tersine derleme (disassembly)
- dinamik analiz ve sanal ortamda çalıştırma (sandboxing)
- paketleme (packing) ve gizleme (obfuscation)
- analiz karşıtı (anti-analysis) ve hata ayıklama karşıtı (anti-debugging)
- imza ve sezgisel tespit
- davranışsal tespit
- ihlal göstergeleri (indicators of compromise)
- komuta-kontrol (command-and-control)
Temel kuramlar
- Statik ve dinamik analiz
- Statik analiz, kötü amaçlı yazılımı çalıştırmadan inceler (tersine derleme, dizeler, yapı), dinamik analiz ise davranışını kontrollü bir sanal ortamda gözlemler; birleştirildiklerinde, özellikle gizlenmiş örneklere karşı, tek başına her birinin gözden kaçırabileceği yetenekleri ortaya çıkarırlar.
- Tespit ve kaçınma silahlanma yarışı
- Savunucular kötü amaçlı yazılımları imzalar, sezgisel yöntemler ve davranışsal modellerle tespit ederken, yazarlar polimorfizm, paketleme ve analiz karşıtı hilelerle yanıt verirler; bu durum, tespiti davranışsal ve makine öğrenimi tabanlı yaklaşımlara doğru iten sürekli bir tırmanışa neden olmaktadır.
Mekanizmalar
Analistler statik ön inceleme (triage) ile başlarlar; karma değer hesaplama (hashing), dizeleri (strings), içe aktarımları (imports) ve paketlemeyi (packing) inceleyerek, ardından ikili kodu (binary) mantığını anlamak için tersine derler (disassemble) veya tersine çevirirler (decompile). Dinamik analiz, örneği izole edilmiş, araçlandırılmış bir sanal ortamda (sandbox) çalıştırarak dosya, kayıt defteri ve ağ etkinliğini gözlemler ve komuta-kontrol (command-and-control) davranışını ortaya çıkarır. Kötü amaçlı yazılımlar buna paketleme (sıkıştırılmış/şifrelenmiş yükler), gizleme (obfuscation) ve sanal makineleri veya hata ayıklayıcıları (debuggers) tespit eden kontrollerle direnir. Bu nedenle analistler örnekleri açar ve gerçek koda ulaşmak için analiz karşıtı kontrolleri (anti-analysis checks) aşarlar.
Klinik önem
Kötü amaçlı yazılım analizi, tüm kötü amaçlı yazılımlarla mücadele ve olay müdahalesi endüstrisinin temelini oluşturmaktadır: uç noktaları koruyan imzaları ve göstergeleri üretir, suçlu ve devlet destekli aktörler hakkında tehdit istihbaratını yönlendirir ve fidye yazılımlarına ve büyük ölçekli olaylara müdahalede merkezi bir rol oynamaktadır. Stuxnet, WannaCry ve NotPetya gibi dönüm noktası niteliğindeki analizler, siber operasyonlar ve bunların gerçek dünya sonuçları hakkındaki kamuoyu anlayışını şekillendirmiştir.
Kanıt ve kılavuzlar
Analistler standart araçlara (Ghidra ve IDA gibi tersine derleyiciler (disassemblers), Cuckoo gibi sanal ortamlar (sandboxes)) ve paylaşılan çerçevelere güvenmektedir: MITRE ATT&CK gözlemlenen teknikleri haritalandırır ve ihlal göstergeleri (indicators of compromise) STIX/TAXII gibi formatlar aracılığıyla paylaşılmaktadır. Analiz, kaçışı önlemek için izole edilmiş ortamlarda yapılmalıdır ve raporlama, sorumlu tehdit istihbaratı paylaşım uygulamalarını takip etmektedir.
Tarihçe
Kötü amaçlı kod analizi, 1980'lerin başlarındaki ilk virüslere dayanmaktadır; Spafford'un 1989'daki Morris solucanı analizi, temel bir teknik analiz olmuştur. Antivirüs endüstrisi 1990'larda imza taramasıyla büyüdü ve 2000'ler, kötü amaçlı yazılımların suç amaçlı ve ardından devlet destekli hale gelmesiyle profesyonel sanal ortamda çalıştırma (sandboxing) ve tersine mühendisliği beraberinde getirdi. 2010'daki Stuxnet'in keşfi ve analizi, alanın jeopolitika ile kesişimini işaret etti ve fidye yazılımları, kötü amaçlı yazılım analizini ana akım bir iş endişesi haline getirdi.
Öne çıkan isimler
- Eugene Spafford
- Michael Sikorski
- Mikko Hypponen
- Peter Szor
İlgili konular
Temel eserler
- sikorski2012
- spafford1989
- anderson2020
Sıkça sorulan sorular
- Kötü amaçlı yazılımı kendi bilgisayarımda analiz etmek güvenli midir?
- Hayır. Kötü amaçlı yazılımlar yalnızca hassas verilere veya geniş ağa erişimi olmayan izole, tek kullanımlık ortamlarda (sanal makineler veya özel laboratuvar ağları) analiz edilmelidir, çünkü bir örneği çalıştırmak ana bilgisayarı enfekte edebilir veya yayılabilir. Statik analiz bile yanlışlıkla çalıştırmaya karşı dikkatli olmayı gerektirir.
- Antivirüs neden tüm kötü amaçlı yazılımları yakalayamaz?
- İmza tabanlı tespit yalnızca bilinen örnekleri tanır ve yazarlar, kötü amaçlı yazılımları atlatmak için sürekli olarak değiştirir ve gizler. Modern savunmalar davranışsal ve makine öğrenimi tabanlı tespiti ekler, ancak kaçınma silahlanma yarışı, hiçbir tek yöntemin her şeyi yakalayamayacağı anlamına gelir; bu nedenle katmanlı savunmalar ve analiz gerekli olmaya devam etmektedir.