Soru:
Potansiyel olarak zararlı bir ikili dosyayı güvenli bir şekilde nasıl analiz edebilirim?
Archenoth
2013-03-20 02:27:57 UTC
view on stackexchange narkive permalink

Kısa bir süre önce, müşterimin sistemlerinden birine zarar vermeyi başaran birkaç dosyayı izole edip arşivlemeyi başardım. Bu yüzden, hangi yazılım ve tekniklerin, kodu izole etmek ve nasıl çalıştığını anlamak için içine girmek için en iyi korumalı alanı oluşturduğunu merak ediyordum.

Genellikle, bu noktaya kadar yeni bir VMWare çalıştırırdım. veya QEMU örneğini kazın ve kazın, ancak bazı iyi yazılmış kötü amaçlı yazılımların bir sanal makineden nispeten kolay bir şekilde çıkabileceğinin farkındayım. Bu yüzden üzerinde çalıştığım kodun "kırılma" olasılığını azaltmak için teknikler (örneğin farklı bir CPU mimarisine sahip bir VM kullanmak gibi) ve yazılımlar (belki de bu tür bir sanal alan paketi?) Arıyorum.

Hangi teknikleri önerirsiniz? Hangi yazılımı tavsiye edersiniz?

[Bir sanal makineye kötü amaçlı yazılım yüklemek güvenli midir] (http://security.stackexchange.com/questions/12546/is-it-safe-to-install-malware-in-a-vm) biraz arka plan sağlar.
Ayrıca [Bir Sanal Makine kötü amaçlı yazılımların zarar vermesini durdurur mu?] (Http://security.stackexchange.com/questions/9011/does-a-virtual-machine-stop-malware-from-doing-harm)
"Hepiniz hangi X'i kullanıyorsunuz?" Formundaki soruların farkında olun. bir anket sorusu olarak kabul edilebilir, Stack Exchange'de soru-cevap formatımızdan forum formatına daha yakışan bir sorudur.
Not ... Ayrıca birisi bunu düzeltmek için bir düzenleme önerdi, ben de kabul ettim.
Dört yanıtlar:
Igor Skochinsky
2013-03-20 05:41:03 UTC
view on stackexchange narkive permalink

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:

  1. Örneği IDA'da açın.
  2. 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.
  3. 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.
  4. 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
cb88
2013-03-20 03:26:49 UTC
view on stackexchange narkive permalink

Hıza değil, çok fazla esnekliğe ihtiyacınız varsa Bochs. Bochs ile GDB kullanabilirsiniz.

Qemu daha fazla hıza ve daha az esnekliğe ihtiyacınız varsa (dinamik çeviri yapar, böylece biraz hız kazanırsınız ancak kaybedersiniz talimatların keskin sırası) muhtemelen boch'lardan biraz daha az güvenlidir. Vmware ve virtualbox'a benzerliği aslında ondan türemiştir. GDB'yi Qemu ile kullanabilirsiniz.

Xen bir arkadaşım Xen hipervizörüne oldukça güveniyor, bunu doğru ayarladığınız sürece, bu da yapılandırma için bir seri geri döngü kullanmak ve diğer karmaşık kurulum. Bununla birlikte, çok hızlı ama yine de izole olacaktı ve anladığım kadarıyla seri bağlantıyı kontrol ettiğiniz sürece güvenliğinizi garanti altına alacaktı. Yine de Bochs muhtemelen en güvenli olanıdır.

Ayrıca, bir öykünücü / sanallaştırma çözümü hata ayıklayıcıları olmasa da, SoftICE gibi hata ayıklayıcılar artık birçok yazılım bunu tespit edip atlasa da yararlı olabilir.

ekse
2013-03-20 05:59:31 UTC
view on stackexchange narkive permalink

Gilles bazı harika bağlantılar sağladı ve kötü amaçlı yazılım analizi için sanal makinelerin kullanımını biraz daha tartışmak istiyorum. Bir sanal makine kopması kesinlikle bir olasılık olsa da, henüz böyle bir vakaya rastlamadım, hatta birini duymadım ve birinin bir tane bulması durumunda bunun biraz ses getireceğini varsayıyorum. Güvende olmak için, VM yazılımınızı bir hata ayıklayıcı kullanırken yaptığınız gibi izole bir bilgisayar ve ağ üzerinde çalıştırın.

Cuckoo Sandbox 'ı denemenizi tavsiye ederim. Kötü amaçlı yazılımı bir VM'de çalıştırma sürecini otomatikleştirir (VMware, VirtualBox & KVM desteklenir) ve değiştirilmiş dosyalar, bellek dökümleri veya ağ trafiği gibi verileri çıkarır. Hatta oldukça düzgün olan DLL enjeksiyonu aracılığıyla API izlemeyi de destekliyor.

Denis Laskov
2013-04-01 19:37:29 UTC
view on stackexchange narkive permalink

Kelimenin tam anlamıyla, kötü amaçlı yazılımlara ilk bakış için, yerel olarak yüklenmiş özel bir şeye ihtiyacınız olmayacak. Kullanabileceğiniz yeterli sayıda çevrimiçi sanal alan var:

  • virustotal.com Cuckoo Sandbox kullanılarak korumalı alanlarının uygulanmasını sağlayın. Yeni numuneyi uyguladığınızda, analizin bir parçası olarak otomatik olarak yürütülür. Yaklaşık 10-15 dakika sonra sonucu "Davranışsal bilgiler" de görebilirsiniz
  • anubis.iseclab.org yerel olarak çalıştırmadan önce davranışını görmek için ikili program gönderebileceğiniz başka bir yerdir . Burada, varsa ağ etkinliğinin raporunu ve pcap dosyasını bulacaksınız.

Sonuç olarak - bir ikilinin ne yaptığı ve nasıl analiz edileceği hakkında temel fikir edinebilirsiniz. Ancak - lütfen unutmayın, Bu karmaşık kötü amaçlı yazılım, ortamını korumalı alan izleri ve sanal makine varlığı açısından kontrol eder. Dolayısıyla, görünüşte "zararsız ikili" nin gerçek koşullar altında karmaşık bir kötü amaçlı yazılım olduğu ortaya çıkma ihtimali var.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...