Ya Specter dapat melewati batasan host / guest, guest / host dan guest / guest karena ini adalah tingkat level CPU yang berarti bahwa informasi yang berpotensi sensitif dapat bocor di apa pun yang berjalan pada inti CPU.
Sebagian besar berita di internet berbicara tentang penyedia cloud yang paling terpukul oleh ini karena mereka memiliki kelompok besar sistem yang tervirtualisasi dan berpotensi disalahgunakan untuk membocorkan informasi sensitif.
Sebagian besar penyedia besar seharusnya sudah ditambal terhadap kekurangan sekarang, sebaik mungkin, tetapi ini akan menjadi masalah yang tinggal bersama kami untuk beberapa waktu.
Security.SE memiliki T&J kanonik mengenai ini dan menyebutkan VM:
Saya menjalankan Mesin / Kontainer Virtual, sejauh mana saya rentan?
Sesuai jawaban Steffen Ullrich
- Serangan krisis tidak melintasi VM, hanya kebocoran memori kernel ke proses lokal.
- Spectre dapat bekerja lintas VM.
Juga dari Steffen lagi , Meltdown dan Specter bekerja dengan kontainer, karena kontainer bergantung pada kernel host.
VM menggunakan CPU yang sebenarnya di sistem Anda dengan beberapa instruksi istimewa yang terperangkap dan dapat diarahkan. Ia menggunakan cache dan instruksi yang sama seperti tuan rumah. Ini pada dasarnya hanyalah lapisan lain dalam CPU fisik di sistem Anda.
Virtualisasi hanya cepat karena menggunakan CPU fisik dengan abstraksi sesedikit mungkin dan bergantung pada perangkat keras CPU untuk memberikan isolasi. Hal-hal seperti qemu dapat melakukan emulasi yang akan lebih aman karena ini bukan CPU perangkat keras, tetapi jauh lebih lambat dan berbeda dari virtualisasi.
Dari pos kanonik Security.se lagi:
Spectre bekerja pada level yang berbeda dan tidak memungkinkan akses ke data ruang-kernel dari ruang pengguna. Dalam serangan ini, penyerang trik eksekusi spekulatif untuk memprediksi instruksi secara salah. Singkatnya, prediktor dipaksa untuk memprediksi hasil cabang tertentu (jika -> benar), yang menghasilkan meminta akses memori di luar batas yang biasanya diminta oleh proses korban, yang mengakibatkan eksekusi spekulatif yang salah. Kemudian dengan saluran samping, ambil nilai memori ini. Dengan cara ini, memori yang dimiliki oleh proses korban bocor ke proses jahat.
Jadi, karena VM berjalan dalam perangkat keras CPU yang sebenarnya dan yang perlu dilakukan hanyalah menjalankan loop tertentu untuk "melatih" mesin eksekusi spekulatif. Kemudian dapat menggunakan waktu yang tepat untuk menonton cache untuk pola-pola tertentu yang menunjukkan proses host atau guest (atau VM lainnya) yang ingin dieksploitasi.
Dengan cara ini berarti mesin dieksploitasi ke segala arah. Dari host ke VM, dari VM ke host, dan dari VM ke VM.
Ya, ini sama sekali tidak mudah dan merupakan hal yang sulit untuk dilakukan karena inti CPU VM dapat berubah sesuai keinginan tuan rumah dan tuan rumah dapat dengan senang hati menjadwalkan tugas pada core yang berbeda juga, tetapi selama periode waktu yang lama informasi yang cukup dapat dibocorkan untuk memberikan kunci rahasia ke beberapa sistem atau akun penting. Diberi cukup waktu dan beberapa perangkat lunak tersembunyi yang cocok semuanya berpotensi terbuka.
Jika Anda menginginkan VM "aman" maka Anda harus menjamin bahwa core-nya terisolasi. Satu-satunya cara nyata untuk memblokir serangan ini adalah dengan "memaksa" host dan VM hanya menggunakan core tertentu sehingga mereka tidak pernah berjalan pada perangkat keras yang sama tetapi ini akan mengarah pada peningkatan biaya yang efektif karena Anda tidak akan dapat memiliki banyak VM di host yang diberikan. Anda tidak akan pernah bisa melarikan diri dengan menjalankan lebih banyak VM daripada core yang tersedia, yang merupakan sesuatu yang saya harapkan dapat dilakukan pada server "beban rendah" karena banyak sistem diam selama 90% dari hidup mereka.