Başlık "korumalı alan" dan bahsediyor, ancak VMWare veya QEMU genellikle böyle adlandırılmaz, bu nedenle soru daha çok "bulaşma tehlikesi olmadan onu nasıl analiz ederim?" ile ilgili gibi görünüyor
Üç tane var Burada ele alabileceğiniz geniş araç ve yaklaşım kategorileri.
1. Kullanıcı modu sanal alanları
Kullanıcı modu sanal alanları, temel olarak araştırılan örneği çalıştırır, ancak ana işletim sistemine erişen tüm veya en azından en kritik API'leri durdurur, onları etkisiz hale getirir ve yazılımı düşünmeye ikna etmek için sonuçları değiştirir tek başına çalışıyor. Bu tür araçların en popülerlerinden biri Sandboxie gibi görünüyor, ancak PyBox gibi başka araçlar da var. Genellikle kötü amaçlı yazılım tarafından kolaylıkla tespit edilebilir ve taklit edilmemiş bir API'nin kodun yanlış çalışmasına izin verme tehlikesi her zaman vardır.
2. Sanal makineler ve emülatörler
Bunlar biraz daha derine iner ve yalnızca API'leri değil, aynı zamanda gerçek kodun yürütülmesini de taklit etmeye çalışır. Ayrıca, genellikle öykünücü içinde tam bir işletim sistemi çalıştırmanız gerekir ve ana işletim sistemini olduğu gibi kullanamazsınız (hedeflerinize bağlı olarak bir avantaj veya dezavantaj olabilir). Bunlar, öykünme için kullanılan yaklaşıma göre üç kategoriye ayrılabilir:
a) sanallaştırma
Bunlar arasında VMWare, VirtualBox ve VirtualPC bulunur. Kodun çoğunu yerel olarak çalıştırmak ve yalnızca bellek veya donanım erişimlerini taklit etmek için son işlemcilerin sanallaştırma özelliklerini kullanırlar. Bu onları hızlandırır, ancak teoride uygulama hataları durumunda kodun sanal makineden kaçmasına neden olabilir.
b) dinamik çeviri
Bu yaklaşım QEMU tarafından kullanılır. Her bir temel bloğu bir dizi yerel CPU talimatına çevirir ve bunu yürütür. Bu yaklaşım, birçok farklı mimariyi makul derecede hızlı bir şekilde taklit etmesine izin verir, ancak zamanlama orijinalden oldukça farklı olabilir. Hata kaçan herhangi bir sanal makine duyduğumu sanmıyorum, ancak bunu tespit etmek mümkün.
c) tam öykünme
Bu, Bochs tarafından kullanılmaktadır. Her bir talimatı, yürütülürken birer birer tam olarak taklit eder. Bu, onu diğer çözümlerden biraz daha yavaş hale getirir, ancak en düşük seviyeli ayrıntılarda bile neredeyse mükemmel bir emülasyon elde etmesine izin verir. Ayrıca, VM kaçan hatalarla ilgili olarak muhtemelen en güvenli olanıdır. Bunu tespit etmek için kullanılabilecek bazı uygulama hataları vardı ama bence çoğu düzeltildi.
3. Statik analiz
Patlamayı önlemenin en iyi yolu, kodu hiç çalıştırmamaktır! Ayrıca, statik analiz, ikili kodun tam koduna bakmanıza ve hepsini görmenize, hatta onu çalıştırarak alınmayan kod yollarını bile görmenize olanak tanır ve tüm çalışma zamanı kontrollerinden ve tespitlerinden kaçınırsınız.
Maalesef, Statik analiz, kötü amaçlı yazılımda kullanılan paketleme veya gizleme ile engellenebilir. Bu nedenle, genellikle birkaç yaklaşımı birleştirmek gerekir. Profesyonel bir analist değilim, ancak bazı kötü amaçlı yazılım analizleriyle uğraşıyorum. İş akışım genellikle şu şekildedir:
- Örneği IDA'da açın.
- Paketlenmiş veya şifrelenmiş görünüyorsa, yürütmesini taklit etmek için Bochs hata ayıklayıcısını kullanın ve kendini açmasına izin ver.
- Bittiğinde (genellikle açıktır), bir bellek anlık görüntüsü alırım, hata ayıklamayı durdururum ve statik olarak analize devam ederim.
- Paketlenmemiş kod başka bir gömülü dosya içeriyorsa (oldukça yaygın bir durum) , ayrı bir dosyaya kaydedin ve 1. adıma gidin