Bir VirtualBox makinesini tamamen izole edin


17

Ana bilgisayarıma (ve tam tersi) erişimi olmaması gereken bir yazılım parçası yüklemek için VirtualBox kullanmak istiyorum. Bununla birlikte, sıfır gün istismarları yapmaya ve neler yapabileceklerini görmeye çalışmak gibi daha "tehlikeli" şeyler deneme olasılığını da öngörüyorum.

Sanal makine ana bilgisayardan ne kadar izole edilebilir? Konuk ve toplantı sahibi arasında bir güvenlik duvarı oluşturmalı mıyım (veya yapabilir miyim?)? Konuk eklentileri güvenlik riski oluşturuyor mu? Paylaşılan dizinler ne olacak?

Şu anda konuk makine GNU / Linux Debian testi yapıyor.


7
Ayrıntılı güvenlik soruları sormak isterseniz Stack Exchange'in bir Bilgi Güvenliği grubu vardır.
cybernard

@Cybernard burada. Biraz ete geçtikten sonra, bu Güvenlik için son derece uygun bir soru olurdu.SE, bunun bir kopya olmadığını varsayarsak (ki korkarım ki topluluk büyümeleri göz önüne alındığında iyi olabilir).
0xdd

1
VirtualBox'ı kullanmamalısınız, çünkü sisteminizle saf kullanıcı alanı uygulamalarından çok daha yüksek bir risk modülü aracılığıyla etkileşime girer. Ve özellikle sanal kutu çekirdek modülü, çekirdek geliştiricileri tarafından bok olarak kabul edilir . Daha iyi bir seçim, qemu gibi, o kullanıcı için ağ erişimini engelleyen ilginç bir şeye ve güvenlik duvarı kurallarına erişimi olmayan ayrıcalıklı bir kullanıcı olarak çalışan bazı emülatördür. (VirtualBox ile ilgili soruya doğrudan cevap vermediği için yorum olarak gönderme)
allo

Yanıtlar:


36

Bu sorunun çok geniş olduğunu ve çok az orijinal araştırma gösterdiğini söyleyerek başlayacağım ve bu cevabın bu tür bir sorunun teşvik edilmesi olarak görülmemesi gerekir. Bunun yerine, bu cevap kötü amaçlı yazılım analiziyle yeni başlayanlar için son derece temel güvenlik ipuçları sağlamayı umuyor.

Bilinen, daha önce araştırılmış kötü amaçlı yazılımları çalıştırdığınız varsayımı altında çalışmak, ortamınızı nasıl izole ettiğiniz büyük ölçüde kötü amaçlı yazılımın neler yapabileceğine bağlıdır. Çoğu modern kötü amaçlı yazılım için geçerli bazı genel kurallar şunlar olabilir:

  • Sanal makinenizi internetten ayırın. Bu, konuk makineye arabirim iletmeyi ayarlamamak kadar basit olabilir ve kötü amaçlı yazılımın, beklenmedik şekilde hareket etmesini yönlendirebilecek olası komut ve kontrol düğümleriyle iletişim kurmasını önler.

  • Uygun bir hipervizör kullanın. Piyasada VirtualBox, HyperV, QEMU ve macOS'lar da dahil olmak üzere birkaç büyük Hypervisor.frameworkisim var; bunlardan bazıları etkin bir şekilde kötü amaçlı yazılım tarafından hedeflenir ve sürüme bağlı olarak, konuk makineden çıkan kötü amaçlı yazılımlara karşı savunmasız olabilir.

  • Kesinlikle konuk eklemeleri veya başka bir platformun analogu yüklemeyin . Bu tür bir yazılımın gerçek amacı, konuk ve ev sahibi arasında entegrasyonu sağlamak ve aralarındaki ayrımı etkili bir şekilde zayıflatmaktır. Kötü amaçlı yazılım araştırmacısı değilim, ancak özellikle bu tür bir yüzeyi hedefleyen kötü amaçlı yazılım yoksa şaşırırdım.

Puanlarınızdan bazılarına doğrudan hitap etmek için:

Sanal makine ana bilgisayardan ne kadar izole edilebilir?

Bu noktada, bir VM oldukça iyi bir şekilde izole edilebilir, ancak bazı işlevler hala az ya da çok doğrudan hiper yönetici koruması ile ana bilgisayardan az ya da çok doğrudan geçmelidir. En kısa sürede , KVM olmayan sanal makinelerin çoğu (VirtualBox gibi) ana işletim sistemiyle bir çekirdeği paylaşmaz . Bu tek başına çok sayıda istismar sınıfına karşı bir engelleyici görevi görür, en önemlisi ana bilgisayar çekirdeğinize rastgele sistem çağrıları yürütme yeteneğini engeller (kırık bir VM katmanı uygulamasının kötü amaçlı yazılımın daha az belirgin yollarla bu sorunu çözmesine izin verebileceği dikkate değer yıldız işareti ile).

VM'nizin hala ana makinenizin donanımı içinde bir işlem alanı var - ve bu genellikle bir risk olmasa da, modern işletim sistemleri iyi işlem alanı yalıtımı sağladığından, yine de bir çekiç gibi son derece düşük seviyeli saldırılardan yararlanmak için kullanılabilir , burada bir işlem, sahip olmadığı bitişik bellek bloklarını okuyana kadar belleğe belirli bir şekilde sırayla yazar - süreçler arasında bellek sızıntısına etkili bir şekilde izin verir.

Ayrıca, her türlü I / O yapmak istediğinizde izolasyonun bir şekilde ortadan kalkma eğiliminde olduğunu da belirtmek gerekir: giriş ve çıkış mutlaka geçiş eylemi anlamına gelir, bu da ana bilgisayar eylemlerini gerçekleştirmek için kullanılabilecek bir saldırı yüzeyi ortaya koyar. Bu, fare ve klavye gibi HID geçidi ve ağ geçidi gibi şeyleri içerir - ancak bu genellikle I / O geçidinin VM'nize ne kadar iyi uygulandığına bağlıdır.

Konuk ve toplantı sahibi arasında bir güvenlik duvarı oluşturmalı mıyım (veya yapabilir miyim?)?

Bu değişir, ancak genellikle kötü bir fikir değildir . Büyük platformların çoğu hiper yönetici düzeyindeki güvenlik duvarlarını destekler. Bunlar en çok ana makinenizdeki güvenlik duvarı kadar izin vericidir ve bu da en çok LAN veya VLAN'ınızdaki güvenlik duvarı kadar izin vericidir. Sanal ağ arabirimlerini ayırarak ağ erişimini tamamen kesmek yerine bunu kullanmak istiyorsanız, seçili kötü amaçlı yazılım hedeflerinizi hangi bağlantı noktalarına ve barındıracağına ve oradan gidip gelmediğine dair araştırma yapmanızı tavsiye ederim.

Konuk eklentileri güvenlik riski oluşturuyor mu?

Evet . Ana makineniz ve misafir makineniz arasında her türlü entegrasyona izin verir ve her zaman neyin açıldığını görebileceğiniz açık özelliklere sahip değildir; yukarıyı görmek.

Paylaşılan dizinler ne olacak?

Bu nasıl yaptığınıza bağlıdır, ancak genellikle kötü bir fikirdir . Birçok hipervizör bunu kökü bu dizinde bulunan konuk makineye monte edilmiş bir sanal sürücü oluşturarak yapar. Çerçeveler arasında biraz değişiklik gösterebilen bu mekanizmanın uygulanmasına bağlı olarak, test etmeye çalıştığınız kötü amaçlı yazılıma bağlı olarak güvenli olabilirsiniz veya olmayabilirsiniz.


Benim endişem bu konuda çok az araştırma yapmış olmanız ve sonuç olarak makinenize veya verilerinize zarar verebilmenizdir. Devam etmeden önce, ben onlar üst düzey sanallaştırma çerçeveler (ile nasıl entegre ortak işletim sistemleri (KVMs, farklı izolasyon mekanizmaları içine bakmak öneriyorum ), konteynerler ( ) ve chroot(mekanizması ) birkaç), her biri uygun olduğunda ve yapabilecekleri ve yapamayacakları. Bu noktada, uygun bir şekilde yalıtılmış bir ortamda kötü amaçlı yazılımlarla güvenli bir şekilde oynayabilip oynayamayacağınızı daha iyi değerlendirebileceksiniz.

Son olarak, yeni veya az bilinen kötü amaçlı yazılımlarla çalışmaya çalışmamalısınız (deneyimli bir güvenlik araştırmacısı değilseniz, ancak bu cevap deneyimli güvenlik araştırmacılarına yönelik değildir). Kötü niyetli aktörler, sömürdükleri ve nasıl sömürdükleri konusunda son derece yaratıcıdırlar. Bunun hakkında bir fikir edinmek için, sosyal mühendislik veya mekanik yollarla fiziksel erişim elde etmeyen yeni DEFCON görüşmelerine bir göz atın .


3
KVM ve VirtualBox / VMWare / ... arasında yalıtım açısından çok fazla fark olduğunu düşünmüyorum, çünkü hepsi çekirdek modülü desteği gerektiriyor ve donanım destekli sanallaştırma kullanıyor. Belki konteyner / liman işçisi demek istediniz? Tartışmalı olarak saf qemu istismarları sadece kullanıcı alanında olacaktı, ancak günümüzde kvm'den (disket sürücü istismarına göre) muhtemelen çok daha az incelemeye sahip ama ne kvm ne de qemu doğrudan sistem çağrılarına çekirdeğe izin veriyor, ancak her ikisi de dolaylı (sanallaştırma veya para-sanallaştırma yoluyla) izin veriyor .
Maciej Piechotka

@MaciejPiechotka benim hatam, yanlış yorumlandı. Cevabı güncelledim, ancak bunu getirdiğin için teşekkürler!
0xdd
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.