如何預防由vmware驅動和後門程式導致的系統故障
儘管有大量的受訪資訊顯示,執行vmware esx和esxi的作業系統是非常安全的;仍不排除一些由於vmware管理程式(hypervisor)和子作業系統之前的互動機制所帶來的安全隱患。這種互動通常由三種渠道實現:半虛擬化驅動程式、常規驅動程式和vmware工具。這樣,當系統管理員希望構建乙個安全的vmware環境時,有兩個部分需要關注:
第一部分是管理程式(hypervisor)和虛擬機器(vm)之間的互動。虛擬化層通過組成vmware工具的半虛擬化驅動延伸到子作業系統(guest os)之中,對於之前不太關注這部分內容的人,這是乙個全新的命題;第二部分就是子作業系統本身。每個子作業系統都有需要遵循的安全加固指令碼、嚮導和基準。然而這些指令碼、嚮導和基準事實上都無法完全取代虛擬化層和子作業系統之間的互動,所以一般來講第乙個部分會直接影響到第二個部分。總之,您可以參考下面的這些設定,來確保vmware管理程式和建立在它之上的虛擬機器之間的互動更加安全:
加固子作業系統
repository of defense information systems agency (disa) security technical information guides (stigs)
cisecurity benchmarks
bastille-linux
請在您的虛擬機器環境中遵循其中的一項或者所有的基準和嚮導。同時謹記vswitch並不包含內建的防火牆,所以一旦子作業系統接入網路環境,它就需要加強自身的防護工作。
管理程式和虛擬機器之間的互動
管理程式和虛擬機器之間的互動通過三種渠道:
半虛擬化驅動、常規驅動和vmware後門程式。
半虛擬化驅動程式知曉自身執行於虛擬機器中,通過帶外通訊機制和硬體裝置互動(也可能是通過vmware 後門程式),或者利用虛擬主機使用的特殊的指令互動。例如,在vmware子系統中,vmxnet驅動就是半虛擬化驅動程式。因為虛擬機器介面(vmi)可以在linux下幾乎透明地寫入半虛擬化驅動,所有它有很好的效能優勢。如果寫入半虛擬化程式的過程很困難,程式會試圖避開虛擬機器直接跟管理程式互動,這個過程可能會直接導致系統崩潰。因此,為了避免這種情況發生,最好的辦法就是在使用半虛擬化程式之前確保他們它們都是經過驗證的。通常我們只使用那些來自已知**(如:vmware)的半虛擬化驅動。
常規驅動程式並不知道自身執行於虛擬機器管理程式之上,它和底層硬體之間的互動通常需要管理程式的**。這些驅動程式僅僅和子作業系統核心之間互動,然後子作業系統核心通過普通方式和虛擬機器管理程式之間互動。在某些情況下,管理程式可能並不能識別驅動所發出的(或者是發往驅動)指令。這種結果下,程式會返回錯誤值寫入到每個虛擬機器內部的vmware.log中,程式所需的功能將無法實現,這個過程多數時候對虛擬機器的影響並不明顯。有些時候,這種情形會直接導致虛擬機器的崩潰。例如,vmware的管理程式vmkernel,並不能有效執行每個scsi指令,一些特殊的指令將導致在vmware.log中寫入錯誤日誌。或在一些情況下,虛擬機會癱瘓。
vmware後門程式
關於vmware的後門程式是乙個讓人困惑和,並被許多人詬病的問題。一般來說,通過一些虛擬機器內部的簡單設定就可以保護vmware後門程式安全。後門程式是一種旁路通訊方式,提供了管理程式和虛擬機器之間的另外一條互動通路,通常情況下vmware後門程式是供給vmware工具來使用的。
vmware工具可以在所有的使用者許可權下執行,因此每個使用者都可以通過虛擬機器後門程式執行一些vmware工具命令列。通常普通使用者並不需要經常通過vmware工具來執行命令列指令,所以在vmware esx環境中,vmware工具應該被嚴格限制給系統管理員使用。不幸的是,vmware後門程式是對所有使用者開放的,並且不能在子作業系統內通過設定來關閉。
確保vmware後門程式的安全性
通常用來保護vmware後門程式的方式是在vmware 高階設定來配置更改一些選項。現在通用的安全標準都不建議使用最小化配置,而是通過建立一些不同配置的子集來管理。這裡提供了一些設定方式,可以在advanced options下設定虛擬機器配置來保證vmware後門程式更高的安全性(或直接新增到每個虛擬機器的.vmx 檔案中):
disa stig for esx
禁止從虛擬機器的遠端控制端向工作站拷貝:
isolation.tools.copy.enable => false
禁止從工作站向虛擬機器遠端控制端貼上:
isolation.tools.paste.enable => false
禁止改變螢幕解析度和色度:
isolation.tools.setguioptions.enable => false
cisecurity esx benchmark
禁止從虛擬機器的遠端控制端向工作站拷貝:
isolation.tools.copy.enable => false
禁止從工作站向虛擬機器遠端控制端貼上:
isolation.tools.paste.enable => false
禁止改變螢幕解析度和色度:
isolation.tools.setguioptions.enable => false
禁止vmware工具進行配置更改的功能:
isolation.tools.setinfo.disable => true
vmware vi3.5加固指導
禁止某些情況下對vmware.log檔案的訪問登陸。在允許訪問的情況下極大減少了訪問量,可以減輕磁碟的i/o壓力:
isolation.tools.log.disable => true
使vmware.log檔案按照設定的位元組迴圈滾動儲存,避免vmware.log檔案變得非常的龐大:
log.rotatesize => 100000
只儲存設定數量的歷史vmware.log檔案,避免重複儲存的該檔案占用大量磁碟空間。在vmfs系統中,這個檔案可以迅速達到32k的檔案大小上限。
log.keepold => 10
限制可以傳送給vmware後門程式的資料量:
tools.setinfo.sizelimit => 1048576
禁止通過後門程式直接對虛擬機器內部的一些配置資訊做修改:
isolation.tools.setinfo.disable => true
禁止虛擬機器通過vmware後門程式直接設定虛擬機器硬體裝置(軟碟機、光碟機、網絡卡等)的連線狀態(斷開或連線):
isolation.tools.connectable.disable => true
isolation.tools.diskshrink.disable => true
禁止虛擬機器通過vmware後門程式直接呼叫diskwiper功能:
isolation.tools.diskwiper.disable => true
根據安全需求的不同,所有的選項可以被設定用來保證子系統和vmware遠端控制主機之間以及在虛擬機器、管理程式及檔案系統之間互動的安全。這些設定可以防止一些非常有趣的(有時是讓人迷茫的)由於缺少空間導致的管理程式故障。
對vmware後門程式的保護是非常重要的,必須強調的一點是最好適當限制使用vmware工具,而不是對驅動的訪問。或者,執行整合在子作業系統內部的,像window uac(user access control)或selinux這樣的強制訪問控制工具也是一樣的效果。通過這些來限制什麼時候可以訪問vmware的後門程式。
虛擬機器安全最主要的部分是在子作業系統之內,但是虛擬硬體設定也會起到作用。嘗試去掌握和練習那些用於加固虛擬機器的指導方針、基準和檢查清單,幫助您更加合理地保護您的虛擬機器。
如何預防由VMware驅動和後門程式導致的系統故障
如何預防由vmware驅動和後門程式導致的系統故障 儘管有大量的受訪資訊顯示,執行vmware esx和esxi的作業系統是非常安全的 仍不排除一些由於vmware管理程式 hypervisor 和子作業系統之前的互動機制所帶來的安全隱患。這種互動通常由三種渠道實現 半虛擬化驅動程式 常規驅動程式和...
驅動api 如何真正實現由文件驅動的API設計?
如果單從api文件出發,由於資訊量不足,通常很難了解它具體想實現的功能,正因為有這種假設的存在,使得經常在開發之後才會想起對文件進行完善。但這種習慣對於任何開發人員而言,都不是乙個好事情,在乙個專案中他們會被分配完成不同的任務,不管是什麼任務,必須要準確理解每個功能後,才能找到合適的方法完成工作,而...
如何預防和治療兒童鉛中毒
一 兒童和家長如何預防鉛中毒。1 良好的衛生習慣 經常洗手,一次洗手可去除絕大部分附著在手上的鉛,要養成飯前洗手的習慣。不吸吮手指 不亂啃咬東西。家長經常濕法 用水和濕布清洗 打掃室內衛生,保持空氣清新。食物 飲料都要隨時封蓋好,以免塵土落入。2 家庭裝修 用使用正規品牌 的 環保的材料進行裝修,不...