Bisakah mesin virtual (VM) "meretas" VM lain yang berjalan di mesin fisik yang sama?

12

Pertanyaan:

  • jika VM rusak (diretas), apa yang saya risikokan pada VM lain yang berjalan pada mesin fisik yang sama?
  • Apa jenis masalah keamanan yang ada antara VM yang berjalan pada host fisik yang sama?
  • Apakah ada (dapatkah Anda membuat) daftar kelemahan dan / atau masalah (potensial) itu?

Peringatan:

Saya tahu ada banyak jenis / solusi virtualisasi, dan mungkin memiliki kelemahan yang berbeda. Namun, saya lebih banyak mencari masalah keamanan umum tentang teknik virtualisasi, daripada bug vendor tertentu.

Harap berikan fakta nyata, studi (serius), masalah yang dialami, atau penjelasan teknis. Lebih spesifik. Jangan (hanya) memberikan pendapat Anda.

  • Contoh:

Dua tahun lalu, saya pernah mendengar bahwa mungkin ada masalah keamanan yang terkait dengan MMU (mengakses memori utama mesin lain, saya pikir), tetapi saya tidak tahu apakah itu ancaman praktis pada hari ini, atau hanya sebuah penelitian teoretis. subyek.

EDIT: Saya juga menemukan ini serangan "Flush + Reload" yang mampu mengambil kunci rahasia GnuPG pada mesin fisik yang sama, dengan mengeksploitasi cache CPU L3, bahkan jika GnuPG berjalan padaVM lain . GnuPG telah ditambal sejak itu.

Totor
sumber
2
@MichaelHampton (dan perwakilan +3000 lainnya) Maaf, saya tidak setuju untuk menutup pertanyaan ini. Saya tidak mengharapkan, atau mencari debat untuk menjawabnya, tetapi hanya fakta nyata , kutipan studi, artikel, atau makalah penelitian, berbagi masalah yang dialami, penjelasan teknis tentang isolasi, dll. Perdebatan seperti apa yang menurut Anda bisa muncul ?? Saya tidak bertanya apakah virtualisasi itu "baik" atau "buruk" untuk keamanan, saya bertanya dengan tepat: "apa yang saya riskan" dan "masalah keamanan apa"! Jangan ragu untuk mengedit pertanyaan saya jika Anda pikir itu bisa lebih spesifik, tapi tolong jangan larangan itu.
Totor
2
Saya pikir ini adalah pertanyaan yang sah. Ada kekhawatiran yang sah di masa lalu, sehingga kekhawatiran tentang keamanan diharapkan. informationweek.com/government/security/…
Stefan Lasiewski
3
Saya tidak benar-benar enggan membuka kembali pertanyaan, tetapi saya pikir Anda mungkin mendapatkan jawaban yang lebih baik di situs saudara kami, Keamanan Informasi (dan pertanyaan itu terlalu tua untuk dimigrasi).
Michael Hampton
@MichaelHampton Anda benar, saya akan mempertimbangkan bertanya di sana jika tidak ada jawaban yang cukup bagus muncul di sini. Terima kasih.
Totor

Jawaban:

9

Tentu saja dimungkinkan untuk mengeksploitasi VM lain yang berjalan pada perangkat keras yang sama, mengingat eksploit yang berfungsi. Selain itu, seseorang dapat eksis. Pertanyaan Anda mengutip beberapa karya terbaru yang menunjukkan satu. Saya tidak akan membagikan exploit atau PoC spesifik apa pun di sini, tapi saya akan dengan senang hati mengatakan bagaimana mereka bisa dibuat.

Eksploitasi yang digunakan dalam konteks ini secara alami berbeda dari yang berfungsi ketika Anda menjalankan pada mesin yang sama dengan yang Anda coba eksploitasi sebuah layanan, dan mereka cenderung sedikit lebih sulit karena meningkatnya isolasi. Namun, beberapa pendekatan umum yang dapat digunakan untuk mencapai eksploitasi tersebut meliputi:

  • Serang hypervisor . Jika Anda bisa mendapatkan shell dengan hak istimewa yang cukup pada hypervisor yang diberikan VM, Anda bisa mendapatkan kendali atas VM apa pun pada sistem. Cara untuk mendekati ini adalah dengan mencari aliran data yang ada dari VM ke hypervisor, dan sangat tergantung pada hypervisor; hal-hal seperti driver paravirtualized, berbagi clipboard, output display, dan lalu lintas jaringan cenderung membuat jenis saluran ini. Misalnya, panggilan jahat ke perangkat jaringan paravirtualized dapat menyebabkan eksekusi kode arbitrer dalam konteks hypervisor yang bertanggung jawab untuk meneruskan lalu lintas itu ke driver NIC fisik.
  • Serang perangkat keras pada host . Banyak perangkat memungkinkan pembaruan firmware, dan jika dimungkinkan untuk mengakses mekanisme untuk itu dari VM, Anda dapat mengunggah firmware baru yang mendukung niat Anda. Misalnya, jika Anda diizinkan untuk memperbarui firmware pada NIC, Anda dapat membuatnya menggandakan lalu lintas yang terikat untuk satu alamat MAC (milik korban), tetapi dengan alamat MAC tujuan lain (milik Anda). Karena alasan ini banyak hypervisor memfilter perintah semacam itu jika memungkinkan; ESXi memfilter pembaruan mikrokode CPU saat berasal dari VM.
  • Serang arsitektur host. Serangan yang Anda kutip, pada dasarnya adalah serangan pengungkapan kunci berbasis waktu yang lain, melakukan ini: ia mengeksploitasi dampak mekanisme caching pada waktu operasi untuk membedakan data yang digunakan oleh korban VM dalam operasinya. Inti dari virtualisasi adalah pembagian komponen; di mana komponen dibagikan, kemungkinan ada saluran samping. Sejauh VM lain pada host yang sama dapat mempengaruhi perilaku perangkat keras saat berjalan dalam konteks VM korban, VM korban dikendalikan oleh penyerang. Serangan yang dirujuk memanfaatkan kemampuan VM untuk mengontrol perilaku cache CPU (pada dasarnya universal state bersama) sehingga waktu akses memori korban lebih akurat mengungkapkan data yang diakses; dimanapun negara global bersama ada, kemungkinan pengungkapan juga ada. Untuk melangkah ke hipotesis untuk memberikan contoh, bayangkan serangan yang memijat VMFS ESXi dan membuat bagian volume virtual referensi alamat disk fisik yang sama, atau serangan yang membuat sistem balon memori percaya beberapa memori dapat dibagikan padahal sebenarnya harus pribadi (ini sangat mirip dengan bagaimana eksploitasi penggunaan-setelah-bebas atau alokasi ganda). Pertimbangkan CPU MSR hipotetis (register khusus model) yang diabaikan oleh hypervisor tetapi memungkinkan akses ke; ini dapat digunakan untuk mengirimkan data antar VM, memutus isolasi yang seharusnya disediakan hypervisor. Pertimbangkan juga kemungkinan kompresi digunakan sehingga komponen duplikat disk virtual disimpan hanya sekali - saluran sisi (sangat sulit) mungkin ada dalam beberapa konfigurasi di mana penyerang dapat melihat isi disk virtual lain dengan menulis sendiri dan mengamati apa yang hypervisor lakukan. Tentu saja hypervisor seharusnya menjaga ini dan contoh-contoh hipotetis akan menjadi bug keamanan penting, tetapi kadang-kadang hal-hal ini lolos.
  • Serang VM lain secara langsung . Jika Anda memiliki host proksimal untuk korban VM, Anda mungkin dapat mengambil keuntungan dari kontrol akses yang santai atau komunikasi antar-VM yang disengaja tergantung pada bagaimana host dikonfigurasi dan asumsi apa yang dibuat ketika menggunakan kontrol akses. Ini hanya sedikit relevan, tetapi tidak disebutkan.

Serangan spesifik akan muncul dan ditambal seiring berjalannya waktu, sehingga tidak pernah berlaku untuk mengklasifikasikan beberapa mekanisme tertentu sebagai dapat dieksploitasi, dieksploitasi hanya dalam kondisi lab, atau tidak dapat dieksploitasi. Seperti yang Anda lihat, serangannya cenderung terlibat dan sulit, tetapi serangan mana yang layak pada waktu tertentu adalah sesuatu yang berubah dengan cepat, dan Anda harus siap.

Yang mengatakan, vektor yang saya sebutkan di atas (dengan kemungkinan pengecualian yang terakhir dalam kasus-kasus tertentu) tidak ada di lingkungan bare-metal. Jadi ya, mengingat bahwa keamanan adalah tentang melindungi Anda dari eksploitasi yang tidak Anda ketahui dan yang tidak ada di alam liar serta yang telah diungkapkan kepada publik, Anda dapat memperoleh sedikit keamanan dengan menjalankan di bare metal atau di Setidaknya dalam lingkungan di mana hypervisor tidak meng-host VM untuk semua orang.

Secara umum, strategi yang efektif untuk pemrograman aplikasi yang aman adalah dengan mengasumsikan bahwa komputer memiliki proses lain yang berjalan di atasnya yang mungkin dikendalikan oleh penyerang atau berbahaya dan menggunakan teknik pemrograman yang sadar-eksploitasi, bahkan jika Anda berpikir Anda tidak menjamin tidak ada proses seperti itu. ada di VM Anda. Namun, terutama dengan dua kategori pertama, ingat bahwa dia yang menyentuh perangkat keras akan menang terlebih dahulu.

Falcon Momot
sumber
Jawaban terbaik, terima kasih! Bisakah Anda memberi sedikit lebih banyak detail tentang berbagai jenis kelemahan "arsitektur host"? Juga, saya tidak mencari eksploit tertentu , dan mengedit pertanyaan saya sesuai (hanya ingin menghindari jawaban spekulatif).
Totor
Hei, tentu saja. Tunggu sebentar dan saya akan menguraikan sedikit.
Falcon Momot
Dan selesai. Itu menyimpang ke hipotesis lebih dari yang saya suka, tapi itu harus ilustratif.
Falcon Momot
Secara khusus, serangan pencurian kunci SSL / SSH bekerja di seluruh tamu VM di host yang sama karena merupakan serangan langsung pada penjadwal CPU.
joshudson
13

Secara teori, tidak. Inti dari hypervisor adalah untuk mengisolasi mesin virtual dari satu sama lain.

Dalam praktiknya, telah ada (dan mungkin di masa depan) bug keamanan di berbagai hypervisor yang dapat memungkinkan satu mesin virtual untuk mempengaruhi baik hypervisor atau mesin virtual lainnya di host yang sama. Langkah-langkah keamanan seperti sVirt (untuk KVM / QEMU) dimaksudkan untuk menyelesaikan masalah ini.

Michael Hampton
sumber
@RyanRies (dan kce dan MichaelHampton ) Terima kasih atas jawaban yang bagus itu, tetapi bisakah Anda lebih spesifik dan teknis karena pertanyaannya mungkin akan ditutup lagi jika tidak ada " fakta nyata , studi yang dikutip, makalah penelitian, masalah yang dialami atau penjelasan teknis "Melibatkan tetapi sebagian besar jawaban / saran yang spekulatif atau tidak jelas. Saya telah mengedit pertanyaan saya sesuai dengan itu.
Totor
8

Edit: Saya pikir topik ini sudah selesai berbulan-bulan yang lalu, tetapi baru saja dihidupkan kembali dan sekarang OP meminta lebih banyak 'fakta nyata, studi yang dikutip,' dll., Jadi saya tahu apa masalahnya.

Eksploitasi alam ini adalah:

  1. Langka
  2. Sifatnya sensitif dan karenanya tidak dibagikan secara terbuka, dan ketika ada, eksploitasi akan ditambal oleh vendor sebelum siapa pun di situs ini pernah tahu tentang mereka
  3. Rumit dan akan bervariasi menurut vendor

Kami tidak dapat mengatakan bahwa tidak mungkin untuk meretas hypervisor dan mendapatkan akses ke VM lain. Kami juga tidak dapat mengukur seberapa besar risiko yang ada, kecuali untuk pengalaman itu menunjukkan kepada kami bahwa itu cukup rendah, mengingat Anda tidak akan menemukan banyak kisah serangan yang memanfaatkan eksploit hypervisor.

Ini semacam artikel yang menarik yang bertentangan yang menunjukkan bahwa lebih dari beberapa serangan berbasis hypervisor telah dilakukan.

Namun, dengan teknologi yang bergantung pada hypervisor sekarang lebih dari sebelumnya, eksploitasi seperti itu akan ditambal dan dijaga dengan lebih mendesak daripada hampir semua jenis eksploitasi lainnya.

Berikut adalah kutipan dari Laporan Tren dan Risiko Tengah-Tengah IBM X-Force 2010:

(Harap buka gambar ini di tab baru untuk melihatnya dalam ukuran penuh.)

Laporan Trend dan Risiko Tengah Tahun IBM X-Force 2010.

Perhatikan persentase kerentanan "Escape to hypervisor" yang terukur, yang kedengarannya menakutkan bagi saya. Tentu Anda ingin membaca sisa laporan karena ada lebih banyak data di dalamnya untuk mendukung klaim.

Berikut ini adalah kisah tentang kemungkinan eksploitasi yang dilakukan pada hypervisor Playstation 3, yang lucu. Mungkin tidak berdampak pada bisnis Anda, kecuali jika bisnis Anda adalah Sony, dalam hal ini sangat berdampak.

Berikut ini adalah artikel yang sangat bagus dari Eric Horschman dari VMware, di mana ia datang kepada saya terdengar seperti seorang remaja yang anti-Micro $ oft, tetapi ini masih merupakan artikel yang bagus. Dalam artikel ini, Anda akan menemukan informasi seperti ini:

Penduduk di rumah kaca Microsoft memiliki beberapa batu lain untuk dilemparkan ke arah kami. Microsoft menunjuk CVE-2009-1244 sebagai contoh kerentanan pelarian tamu di ESX dan ESXi. Eksploitasi pelarian tamu adalah bisnis serius, tetapi, sekali lagi, Microsoft salah menggambarkan fakta. VMware merespons dengan cepat untuk menambal kerentanan itu dalam produk kami, dan ESX jauh lebih sedikit terpengaruh daripada yang akan dituntun oleh Microsoft kepada Anda:

Kebawelan di antara pesaing. Tapi mungkin hal paling jelas yang dia katakan di seluruh artikel adalah ini:

Yang benar adalah, kerentanan dan eksploitasi tidak akan pernah sepenuhnya hilang untuk perangkat lunak perusahaan.

Ryan Ries
sumber
Apa artinya persentase pada gambar?
Totor
Ini adalah histogram yang menunjukkan persentase vuln yang ditemukan berdasarkan jenis di setiap kelas target. Dengan kata lain, 30,8% di baris atas "persentase workstation" berarti bahwa 30,8% dari kata-kata kasar IBM X-Force ditemukan mempengaruhi perangkat lunak virtualisasi workstation menyerang OS host secara langsung (mis. Workstation diserang dan ini memiliki sedikit atau tidak sama sekali harus dilakukan dengan perangkat lunak virtualisasi atau VM di atasnya). Dll.
Falcon Momot
6

The pernah yg boleh disebut Theo de Raddt dari proyek OpenBSD:

Anda benar-benar tertipu, jika tidak bodoh, jika Anda berpikir bahwa kumpulan insinyur perangkat lunak di seluruh dunia yang tidak dapat menulis sistem operasi atau aplikasi tanpa lubang keamanan, kemudian dapat berbalik dan tiba-tiba menulis lapisan virtualisasi tanpa lubang keamanan.


Agak meradang tapi maksudnya bagus. Secara teori, virtualisasi seharusnya menyediakan isolasi lengkap antara mesin virtual dan host mereka. Dalam praktiknya kadang-kadang ada kerentanan keamanan yang memungkinkan penyerang tingkat lanjut untuk melewati perlindungan ini dan mendapatkan akses ke mesin virtual lain atau bahkan lebih buruk dari host mereka (lihat Studi Empiris tentang Paparan Keamanan pada Host dari Lingkungan yang Tervirtualisasi yang Bermusuhan ). Seperti Ryan Ries menyebutkan jenis kerentanan ini sangat jarang (yang tidak berarti mereka tidak ada di sana) dan sering tidak diungkapkan oleh vendor tetapi mereka memang ada.

Jika Anda khawatir tentang potensi serangan semacam ini (dan saya pikir Anda harus sedikit banyak), saya sarankan Anda tidak mencampur zona keamanan pada satu host virtual atau cluster host virtual. Misalnya - Anda akan memiliki dua kluster host virtual host khusus untuk mesin virtual DMZ, cluster khusus untuk middleware dan cluster khusus untuk aset yang dilindungi. Dengan cara ini jika kerentanan dieksploitasi sedemikian rupa sehingga memungkinkan penyerang menumbangkan mesin virtual lain atau lebih buruk dari hypervisor itu sendiri, model keamanan Anda masih utuh.


sumber