Benar-benar mengisolasi mesin VirtualBox

17

Saya ingin menggunakan VirtualBox untuk menginstal beberapa perangkat lunak yang seharusnya tidak memiliki akses ke komputer host saya (dan sebaliknya). Namun, saya juga membayangkan kemungkinan mencoba hal-hal yang lebih "berbahaya", seperti mencoba menjalankan eksploitasi nol hari dan melihat apa yang dapat mereka lakukan.

Seberapa terisolasi mesin virtual yang dapat dibuat dari host? Haruskah saya (atau bisakah saya) mengatur firewall antara tamu dan tuan rumah? Apakah add-on tamu merupakan risiko keamanan? Bagaimana dengan direktori bersama?

Saat ini, mesin tamu sedang menjalankan pengujian GNU / Linux Debian.

giusti
sumber
7
Stack Exchange memiliki grup Keamanan Informasi jika Anda ingin mengajukan pertanyaan keamanan yang terperinci.
cybernard
Seconding @cybernard di sini. Setelah sedikit menyempurnakan, ini akan menjadi pertanyaan yang sangat tepat untuk Keamanan. SE, dengan asumsi itu bukan duplikat (yang saya khawatir mungkin terjadi, mengingat pertumbuhan komunitas mereka).
0xdd
1
Anda tidak boleh menggunakan VirtualBox, karena berinteraksi dengan sistem Anda melalui modul kernel yang merupakan risiko yang jauh lebih tinggi daripada implementasi userspace murni. Dan terutama modul kernel kotak virtual dianggap omong kosong oleh pengembang kernel. Pilihan yang lebih baik adalah beberapa emulator seperti qemu berjalan sebagai pengguna yang tidak memiliki hak pribadi yang tidak memiliki akses ke aturan yang menarik dan firewall yang menghalangi akses jaringan untuk pengguna tersebut. (Posting sebagai komentar karena tidak menjawab pertanyaan mengenai VirtualBox secara langsung)
allo

Jawaban:

36

Saya akan mulai dengan mengatakan bahwa pertanyaan ini sangat luas dan menunjukkan sangat sedikit penelitian asli, dan bahwa jawaban ini tidak boleh dilihat sebagai dorongan dari jenis pertanyaan itu. Alih-alih, jawaban ini berharap memberikan beberapa tip keamanan yang sangat mendasar bagi orang-orang yang baru memulai dengan analisis malware.

Bekerja di bawah asumsi bahwa Anda menjalankan malware yang diketahui dan telah diteliti sebelumnya, cara Anda mengisolasi lingkungan Anda sangat bergantung pada kemampuan malware tersebut. Beberapa aturan umum yang berlaku untuk sebagian besar malware modern mungkin untuk:

  • Pisahkan VM Anda dari internet. Ini bisa sesederhana tidak menyiapkan penerusan antarmuka ke mesin tamu, dan mencegah malware dari berkomunikasi dengan potensi node perintah-dan-kontrol yang mungkin mengarahkannya untuk bertindak tanpa terduga.

  • Gunakan hypervisor yang sesuai. Ada beberapa yang besar di pasaran, termasuk VirtualBox, HyperV, QEMU, dan macOS's Hypervisor.framework, untuk beberapa nama; beberapa di antaranya ditargetkan secara aktif oleh malware, dan tergantung pada versinya, mungkin rentan terhadap malware yang keluar dari mesin tamu.

  • Jelas tidak menginstal tambahan tamu , atau analog platform lain. Tujuan harfiah dari perangkat lunak semacam ini adalah untuk membangun integrasi antara tamu dan tuan rumah, yang secara efektif melemahkan pemisahan di antara mereka. Saya bukan peneliti malware, tetapi saya akan terkejut jika tidak ada malware yang secara khusus menargetkan permukaan seperti ini.

Untuk mengatasi beberapa poin Anda secara langsung:

Seberapa terisolasi mesin virtual yang dapat dibuat dari host?

Pada titik ini, VM bisa sangat terisolasi sepenuhnya, tetapi beberapa fungsi masih harus melalui host lebih atau kurang secara langsung, dengan sedikit perlindungan hypervisor. Langsung saja, sebagian besar mesin virtual non-KVM (seperti VirtualBox) tidak akan berbagi kernel dengan OS host. Ini saja berfungsi sebagai pemblokir terhadap banyak kelas eksploit, terutama memblokir kemampuan untuk menjalankan syscall sewenang-wenang terhadap kernel host Anda (dengan tanda bintang yang terkenal bahwa implementasi layer VM yang rusak dapat memungkinkan malware untuk mengatasi hal ini dengan cara yang kurang jelas).

VM Anda masih memiliki ruang proses di dalam perangkat keras mesin host Anda - dan meskipun ini umumnya tidak berisiko karena OS modern menyediakan isolasi ruang proses yang layak , VM masih dapat digunakan untuk mengeksploitasi serangan tingkat yang sangat rendah seperti pukulan baris , di mana suatu proses secara berurutan menulis ke memori dengan cara tertentu sampai ia dapat membaca blok memori yang berdekatan yang tidak dimilikinya - secara efektif memungkinkan kebocoran memori antara proses.

Juga perlu dicatat bahwa isolasi cenderung hilang ketika Anda ingin melakukan dasarnya jenis I / O: input dan output tentu berarti passthrough, yang memperlihatkan permukaan serangan yang dapat dimanfaatkan untuk melakukan tindakan host. Ini termasuk passthrough HID seperti mouse dan keyboard, serta hal-hal seperti passthrough jaringan - meskipun ini umumnya tergantung pada seberapa baik penerapan I / O passthrough diimplementasikan di VM Anda.

Haruskah saya (atau bisakah saya) mengatur firewall antara tamu dan tuan rumah?

Tergantung, tetapi umumnya itu bukan ide yang buruk . Sebagian besar platform utama mendukung firewall tingkat hypervisor. Ini paling permisif seperti firewall pada mesin host Anda, yang pada gilirannya paling permisif seperti firewall pada LAN atau VLAN Anda. Jika Anda ingin memanfaatkan ini alih-alih memutus akses jaringan sepenuhnya dengan memutus antarmuka jaringan virtual, saya sarankan melakukan penelitian ke port mana dan meng-host target malware yang Anda pilih dan pergi dari sana.

Apakah add-on tamu merupakan risiko keamanan?

Ya . Mereka memungkinkan untuk semua jenis integrasi antara mesin host Anda dan mesin tamu, dan tidak selalu menampilkan spesifikasi terbuka di mana Anda dapat melihat apa yang dibuka; Lihat di atas.

Bagaimana dengan direktori bersama?

Itu tergantung pada bagaimana Anda melakukannya, tetapi itu seringkali merupakan ide yang buruk . Banyak hypervisor melakukan ini dengan membuat drive virtual yang dipasang di mesin tamu yang root di direktori itu. Bergantung pada implementasi mekanisme itu, yang dapat sedikit berbeda antar kerangka kerja, Anda mungkin atau mungkin tidak aman, tergantung pada malware apa yang Anda coba uji.


Kekhawatiran saya adalah bahwa Anda telah melakukan sedikit penelitian tentang ini, dan bahwa Anda mungkin akhirnya merusak mesin atau data Anda. Sebelum Anda melanjutkan, saya akan menyarankan Anda untuk melihat mekanisme isolasi yang berbeda pada OS umum (KVMs, bagaimana mereka berintegrasi dengan kerangka kerja virtualisasi tingkat tinggi ( ), wadah ( ), dan chrootmekanisme ( ) untuk memberi nama beberapa), ketika masing-masing sesuai, dan apa yang bisa dan tidak bisa mereka lakukan. Pada titik itu, Anda akan dapat menilai dengan lebih baik apakah Anda bisa bermain-main dengan malware dengan aman atau tidak di lingkungan yang terisolasi dengan benar.

Terakhir, Anda tidak boleh terlibat dalam mencoba bekerja dengan malware baru atau yang kurang dikenal (kecuali jika Anda adalah peneliti keamanan berpengalaman, tetapi jawaban ini tidak ditujukan untuk peneliti keamanan berpengalaman). Aktor jahat sangat kreatif dalam hal apa yang mereka eksploitasi dan bagaimana mereka mengeksploitasinya. Untuk mengetahui hal ini, lihatlah pembicaraan DEFCON baru-baru ini yang tidak berpusat pada rekayasa sosial atau mendapatkan akses fisik melalui cara mekanis.

0xdd
sumber
3
Saya tidak berpikir ada banyak perbedaan dalam hal isolasi, pada prinsipnya, antara KVM dan VirtualBox / VMWare / ... karena semuanya memerlukan dukungan modul kernel dan menggunakan virtualisasi hardware-assisted. Mungkin maksud Anda kontainer / buruh pelabuhan? Yang mengatakan eksploitasi qemu murni bisa dibilang hanya akan berada di userspace tetapi saat ini mungkin memiliki pengawasan jauh lebih sedikit daripada kvm (lihat juga eksploitasi floppy drive), tetapi baik kvm maupun qemu tidak memungkinkan syscalls langsung ke kernel tetapi keduanya memungkinkan tidak langsung (melalui virtualisasi atau para-virtualisasi) .
Maciej Piechotka
@MaciejPiechotka kesalahan saya, itu salah diartikan. Saya telah memperbarui jawabannya, tetapi terima kasih telah menyampaikannya!
0xdd