題:
虛擬機到底有多安全?錯誤的安全感?
T. Webster
2011-04-13 04:48:32 UTC
view on stackexchange narkive permalink

我正在閱讀這本 CompTIA Security + SYO-201書,作者David Prowse聲稱:邊界設置到位。例如,病毒在執行時可能感染計算機,並傳播到OS中的其他文件。但是,在VM中執行的病毒會在VM中傳播,但不會影響底層的實際操作系統。我不必擔心主機系統受到損害,在 all 嗎?

如果虛擬機與主機共享網絡,並且啟用了共享文件夾怎麼辦?

蠕蟲是否仍然可以通過這種方式將自身複製到主機?如果操作系統是Windows並插入USB存儲設備,用戶是否仍然容易受到AutoRun的攻擊?

實際上,虛擬機的安全性如何?他們能在多大程度上保護主機免受惡意軟件和攻擊?

如果我是編輯,則在該引號中的幾個選擇位置插入“希望”和“理論上”。照原樣,這絕對是錯誤的陳述。
從來賓操作系統到主機操作系統的實際攻擊示例。 http://venom.crowdstrike.com
一個非常籠統的說法是主機和網絡的安全性取決於所述主機/網絡和客戶端VM之間的接口的安全性。您應考慮安裝最少的工具,最少的網絡訪問和最少的硬件設備,以最大程度地降低風險。如果僅在內存沙箱中運行VM,則可能會很安全。唯一要攻擊的接口是遮陽板的CPU和內存子系統。您還將擁有一個非常無用的VM。例如。您是否需要[軟盤](http://blog.crowdstrike.com/venom-vulnerability-details/)?
九 答案:
Marcin
2011-04-13 05:38:58 UTC
view on stackexchange narkive permalink

虛擬機肯定可以交叉。通常,您會將它們聯網,因此任何具有網絡組件的惡意軟件(即蠕蟲)都會傳播到其尋址/路由允許的任何位置。普通病毒往往只在用戶模式下運行,因此儘管它們不能公開交流,但它們仍可以建立隱蔽渠道。如果共享CPU,則一台VM上的繁忙進程可以有效地將狀態傳達給另一台VM(這是您的典型時序秘密通道)。存儲隱蔽通道會更難一些,因為虛擬磁盤往往對其具有硬限制,因此,除非您的系統可以過量使用磁盤空間,否則這不是問題。

保護虛擬機最有趣的方法稱為分離內核。這是John Rushby的 1981年論文的結果,該論文基本上指出,為了以等同於物理分離的方式隔離虛擬機,計算機必須以某種方式將其資源導出到特定的虛擬機。 VM之間無法共享任何可以存儲狀態的資源。這產生了深遠的後果,因為它要求以一種不可旁路的方式來設計底層計算機體系結構。

30年後,我們終於有了很少的產品可以聲稱這樣做。 x86並不是最適合的平台,因為許多指令無法虛擬化以完全支持“不共享”的想法。對於常見的系統來說,它也不是很實用,因為要有四個VM,則需要四個硬盤驅動器掛在四個磁盤控制器,四個視頻卡,四個帶有四個鼠標的USB控制器上,等等。

2020更新:所有最近基於硬件的漏洞(Meltdown,Spectre,Foreshadow,ZombieLoad,CacheOut,SPOILER等)漏洞都是VM始終能夠進行通信的簡單示例,僅僅是因為它們共享硬件(緩存,TLB,分支預測,TSX,SGX)從未打算或準備進行分區和隔離。

這種對於病毒作者的秘密交流有什麼好處?聽起來直到兩台計算機都被感染,它才能被使用,但是在那之後為什麼還要使用它呢?
@JackO'Connor:為了在他們之間*溝通*。例如,考慮其中一個VM的網卡連接到Internet,但不連接到內部數據中心,而另一個VM的網卡連接到內部數據中心,而不連接到Internet。使用此隱蔽渠道,攻擊者現在可以從Internet攻擊DC並竊取數據。此外,一個虛擬機可能會使用此方法進行旁通道攻擊另一台虛擬機,例如,一個受損的虛擬機(可能在Azure / EC2上)攻擊另一台虛擬機以獲得另一台虛擬機的SSL私鑰。
如果虛擬機實際上並沒有直接執行機器代碼,而是對其進行解釋,那麼如果虛擬機可以與外部世界進行交互的唯一方式是從外部本身(例如外部)發起的話,那麼使機器100%安全是否存在任何基本困難?將數據複製到虛擬機的“硬盤”的實用程序?)
“ _要擁有四個虛擬機,您需要四個硬盤驅動器掛在四個磁盤控制器上,四個[etc ...] _”,這聽起來好像缺少了*虛擬*機器的意義。
@Marcin-如果出於測試目的未將虛擬機聯網,但是在來賓和主機之間啟用了共享文件夾和剪貼板,那麼從來賓到主機的感染可能性是多少?
@Motivated可能會被偷渡式下載或電子郵件附件感染:VM中的惡意軟件可以將文件放在共享文件夾中,但是用戶必須採取措施才能執行某些操作。
根本沒有完全“不共享”的系統。即使每個VM都有專用的網卡,硬盤驅動器等,您仍將共享主板。而且,如果您的VM實際上有自己的主板,那麼您再也無法真正調用系統VM。
Marcin,距離答案還有8年了。你可以更新嗎?這個話題很重要...謝謝
sysadmin1138
2011-04-13 06:22:58 UTC
view on stackexchange narkive permalink

多年來,已經發布了一些白皮書,描述研究人員設法從VM感染主機OS的方式。通常,正確地將這些漏洞視為VM供應商的安全漏洞,並將其視為此類漏洞。自從我第一次看到這些論文以來,英特爾在允許分離VM和虛擬機管理程序方面進行了一些重要的處理器指令集改進。

我最近看到的一些漏洞更多地基於“ vmtools”部分。這是您安裝的軟件,以使來賓OS更加有效地運行(對於VMWare,這是即時捕獲光標以及在不通過網絡在來賓和主機之間共享的功能)。這是用於感染的特殊軟件途徑;

某些惡意軟件顯示出能夠檢測在虛擬機中執行並更改其行為的功能。

,這極大地加劇了惡意軟件研究人員試圖使用VM作為測試惡意軟件的方式的麻煩。不過,我不知道這幾天有多流行。

我聽說他們通常在調試器中運行惡意軟件,為導致VM特定行為的分支設置斷點,並在評估後更改該條件的結果。但這在當今並不普遍,因為許多有趣的目標已虛擬化。
“這是一種用於感染的特殊軟件途徑;不要安裝工具,沒有漏洞。”即使未安裝工具,攻擊者也可以安裝它們。要正確地關閉攻擊媒介,您需要關閉工具所使用的API。
harley
2011-04-21 21:55:01 UTC
view on stackexchange narkive permalink

在Cloudburst漏洞中可以找到執行客戶機到主機代碼的示例。在Windows Vista SP1上的VMware Workstation 6.5.0 build118166,在Windows上的VMware Workstation 6.5.1 build126130上有一個視頻演示和Immunity的論文詳細介紹他們的成功。 Vista SP1和(甚至更可怕的)VMware ESX Server 4.0.0 build133495。

這可能提供很少的安慰,但我從未聽說過這種方法在野外使用,並且該漏洞利用始於2009年。該書於2010年出版,因此作者應清除該說法。

Ormis
2011-04-13 23:32:18 UTC
view on stackexchange narkive permalink

虛擬機就是一台邏輯上獨立的虛擬機,因此虛擬機上必須具有與裸機系統相同的安全層。如果使用虛擬機使用正常通道訪問主機,則不會停止虛擬機。

虛擬化的真正好處是能夠將VM回滾到未受影響的狀態,例如以及更好地管理可用資源的能力。

如果採取了適當的步驟來保護主機,則虛擬化將非常安全。將ESX / VM服務器管理保持在不同邏輯網絡上,而不使用VM-host接口工具等做法將使攻擊者大部分時間都不會注意到計算機是虛擬的,更不用說如何訪問主機了。

此外,還有一些影響VM主機的漏洞利用程序(我曾在VMWare和Hyper-V中使用過這些漏洞)。目前,我只知道主機DoS在hyper-v方面的利用(請參閱 this),但是我敢肯定還有其他發現。 VMWare也有它的歷史(即 this,它是基於VMWare工具的,但仍然適用)。

根據您在做什麼,有一些在線工具可以也許可以消除您在自己的計算機上進行分析的需要。這裡有一些網站可供查看:
- Threatexpert.com
- anubis.iseclab.org
-病毒總數。 com

附言如果您想測試您的沙盒環境,請訪問惡意軟件域列表.com,但要注意,僅當您想感染一些新的,有趣的惡意軟件時才使用它:-)
+1,但可以在http://theinvisiblethings.blogspot.com/找到這些領域公認的領導者Joanna Rutkowska
x86上的VM並非邏輯上完全獨立的計算機。閱讀http://en.wikipedia.org/wiki/Popek_and_Goldberg_virtualization_requirements和http://www.usenix.org/events/sec2000/robin.html,您會發現有17條指令無法虛擬化。
邏輯上分開並不意味著技術上分開。即使無法虛擬化所有指令,機器的應用程序仍然是不同的邏輯實體。部署它們的人需要保持這種心態,不要因為抽象而承擔安全性。另外,請記住為VMWare做基礎...,嘗試使用與要測試的來賓OS不同的主機OS,查看隔離選項,並確保正確構建網絡。因此,@Marcin我理解您想要說的話,但是我相信我的評論仍然有效(只是虛擬化!=安全)。
K. Brian Kelley
2011-04-13 05:40:36 UTC
view on stackexchange narkive permalink

Security +材料的含義是,到目前為止,惡意軟件還無法通過利用虛擬機這一事實來打擊虛擬機管理程序,從而無法逃脫虛擬機的沙箱。其他機制,例如跨共享網絡的傳播,就像它們是不同的物理盒子一樣。

不幸的是,您的回答實際上是錯誤的。我不確定它是否在2011年為人所知,但現在絕對是。 http://www.vupen.com/blog/20120904.Advanced_Exploitation_of_Xen_Sysret_VM_Escape_CVE-2012-0217.php通過http://www.insinuator.net/2013/05/analysis-of-hypervisor-breakouts/
goodguys_activate
2015-06-06 04:31:13 UTC
view on stackexchange narkive permalink

如此漏洞所示,它們並不完全安全:

VENOM,CVE-2015-3456,是一個安全漏洞,會影響某些常見的計算機虛擬化平台,尤其是Xen,KVM,VirtualBox,和本地QEMU客戶端。

此漏洞可能允許攻擊者擺脫受影響的虛擬機(VM)來賓的限制,並可能獲得對主機的代碼執行訪問權限。 有關漏洞的更多詳細信息,請參見此處。

請注意,假設它不是以root身份運行,則使用QEMU的chroot選項可以緩解CVE-2015-3456。該漏洞所做的只是損害用戶空間QEMU前端,而不損害內核空間Xen / KVM後端。而且,我認為它根本不會影響VirtualBox。它特別是QEMU的fdc驅動程序中的漏洞。VirtualBox不共享該代碼。據說影響KVM和Xen的唯一原因是因為這兩個很少單獨使用,而是充當QEMU的後端。儘管仍使用KVM,但像kvmtool而不是QEMU之類的東西不會受到影響。
JackSparrow
2015-09-11 16:37:48 UTC
view on stackexchange narkive permalink

我認為作者的斷言不完全是正確的。實際上,虛擬化區域中有兩種超級管理程序管理程序是由創建運行 虛擬機的計算機軟件,固件或硬件。這些類型是:

  • Type-1虛擬機管理程序
  • Type-2虛擬機管理程序
>

Type-1虛擬機管理程序直接在主機的硬件上運行,以控制硬件和管理來賓操作系統。因此,有時將它們稱為裸機虛擬機管理程序 類型2虛擬機管理程序在常規操作系統上運行就像其他計算機程序一樣。 VMWare VirtualBox 是Type-2虛擬機管理程序的示例,因為它們作為程序在主機 OS 中運行。

對於Type-2虛擬機管理程序,有一個 RoboLinux 項目,該項目具有一個稱為 Stealth VM 的獨特功能。 Stealth VM軟件安裝程序,可讓您構建在安全Linux分區中運行的Windows 7克隆。該系統受到惡意軟件的保護,您下載的所有文件都將包含在虛擬機中,並且該文件供必須具有特定Windows程序且可以將操作系統還原為只需單擊兩下即可完成。

Qubes OS ,它是在 Linux Xen 上開發的, Type-1虛擬機管理程序的示例。 Qubes OS採用稱為“隔離安全性”的方法,在這種情況下,這意味著將您在計算機上所做的事情安全地隔離在不同的VMs 中,這樣一來,受到威脅的VMs就不會受到損害。不會影響其他人。與Type-2虛擬機管理程序不同,它具有安全的 VM間文件傳輸系統來處理共享文件夾的風險。從理論上講,根據開發人員的說法,該組織比Type-2虛擬化更為安全。

簡而言之,作者應指出哪個虛擬機管理程序或虛擬系統。

參考

您的意思是Qubes是Type-1虛擬機管理程序的一個例子嗎?
是的(我應該有筆誤;現在我編輯了thx),也可以在他們的網站上找到該信息。“相比之下,Qubes使用稱為Xen的“ Type 1”或“裸機”虛擬機管理程序。Type1 Hypervisor不在操作系統內部運行,而是直接在硬件的“裸機”上運行。這意味著攻擊者必須具備能力破壞虛擬機管理程序本身以破壞整個系統,這要困難得多。”來自https://www.qubes-os.org/tour/#what-is-qubes-os
Stilez
2016-03-25 02:47:58 UTC
view on stackexchange narkive permalink

2016年的“ Pwn2Own”安全競賽是其中一項競賽,它從VMWare Workstation虛擬機中逃脫,引起了人們的興趣和相關性。 (其他方法包括轉義瀏覽器沙箱或接管物理計算機)。那應該給出一個想法:1)至少是合理的,2)如果簡單,那麼我們有一種方法可以聽到它-只需檢查結果即可:)

更廣泛地講,在理論上可以逃脫VM安全性很多種方法。例如-

  • 來託管命令和API(例如VMware工具)的來賓

  • 主機OS本身的可利用弱點是不能通過在VM進程中運行來緩解(如果某些來賓OS調用被錯誤地判斷為“安全”,並且被來賓驅動程序直接傳遞給主機OS或設備驅動程序以提高速度,但存在漏洞利用)

  • 供應商驅動程序或供應商代碼錯誤(例如,主機驅動程序允許來賓OS橋接網絡;也許其中的錯誤可能允許在內核級別在主機上進行調用或代碼)。

  • 主機上其他軟件引起的漏洞(偽造的示例-如果本地防病毒軟件攔截了來自主機的所有網絡流量以進行掃描,並且來賓流量也作為該漏洞的一部分被掃描(相對(由於虛擬NIC設備而被忽略),那麼a / v引擎對惡意製作的流量或數據包的漏洞可能能夠允許源自VM的流量逃逸到主機)

  • 用戶的配置錯誤(主機文件已映射或沒有足夠安全/隔離,因此來賓無法訪問主機文件)

該範圍存在,並且已經確定其流行性積極爭取利益。如果沒有漏洞利用,肯定會定期發現漏洞並需要修補。

ddyer
2014-02-18 14:15:11 UTC
view on stackexchange narkive permalink

為在vms中運行而專門設計的利用漏洞以及針對目標主機內核中的bug的攻擊是不可避免的。首先在流行的雲平台中查找它們。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...