高效的虛擬機部署方法
【專利說明】
[0001]發明的
技術領域
[0002]本發明總體涉及計算機安全,更具體地說,本發明涉及高效的虛擬機部署方法。
【背景技術】
[0003]計算機和其他電子設備上的惡意軟件感染侵入性強,并且難以檢測和修復。反惡意軟件解決方案可能需要將惡意代碼或文件的簽名與被評價的軟件進行比對,從而確定該軟件對計算系統有害。反惡意軟件解決方案可包括掃描客戶機或端點以找出惡意軟件的指示,或者針對惡意軟件感染來修復客戶機或端點。數據文件、惡意軟件簽名、修復應用或其他反惡意軟件組件可被下載到端點。
[0004]在電子設備上執行的應用在能夠被執行之前需要安裝。一些應用通過簡單地將代碼復制到目標電子設備就可被安裝,但是其他應用可能使用安裝應用程序。安裝應用程序通常可包括安裝源文件和代碼,該代碼用于執行用于運行給定應用的修改和安裝。安裝應用程序可解壓縮文件、在目標電子設備上創建文件夾、在這些文件夾中存儲資料,以及以其他方式使應用可得到以供執行。
【發明內容】
[0005]在一個實施例中,用于共享鏡像的分配的方法包括:確定軟件安裝程序的鏡像的多個元素;確定客戶機的多個內容;對所述鏡像的所述多個元素執行第一散列操作;對所述客戶機的所述多個內容執行所述第一散列操作;將對所述鏡像的所述多個元素執行的所述第一散列操作的多個結果與對所述客戶機的所述多個內容執行的所述第一散列操作的多個結果進行比較;基于對所述鏡像的所述多個元素執行的所述第一散列操作的多個結果與對所述客戶機的所述多個內容執行的所述第一散列操作的多個結果進行的所述比較,確定所述鏡像的所述多個元素中的一個或多個元素在所述客戶機上是不可得到的;以及對所述鏡像的、被確定為在所述客戶機上不可得到的多個元素進行選擇性的傳輸。
[0006]在另一實施例中,制品包括計算機可讀介質和在所述計算機可讀介質上攜帶的計算機可執行指令。所述指令可由處理器讀取。當讀取并執行所述指令時,所述指令使所述處理器用于:確定軟件安裝程序的鏡像的多個元素;確定客戶機的多個內容;對所述鏡像的所述多個元素執行第一散列操作;對所述客戶機的所述多個內容執行所述第一散列操作;將對所述鏡像的所述多個元素執行的所述第一散列操作的多個結果與對所述客戶機的所述多個內容執行的所述第一散列操作的多個結果進行比較;基于對所述鏡像的所述多個元素執行的所述第一散列操作的多個結果與對所述客戶機的所述多個內容執行的所述第一散列操作的多個結果進行的所述比較,確定所述鏡像的所述多個元素中的一個或多個元素在所述客戶機上是不可得到的;以及對所述鏡像的、被確定為在所述客戶機上不可得到的多個元素進行選擇性的傳輸。
[0007]在又一實施例中,用于共享鏡像的分配的系統包括:用于確定軟件安裝程序的鏡像的多個元素的裝置;用于確定客戶機的多個內容的裝置;用于對所述鏡像的所述多個元素執行第一散列操作的裝置;用于對所述客戶機的所述多個內容執行所述第一散列操作的裝置;用于將對所述鏡像的所述多個元素執行的所述第一散列操作的多個結果與對所述客戶機的所述多個內容執行的所述第一散列操作的多個結果進行比較的裝置;用于確定所述鏡像的所述多個元素中的一個或多個元素在所述客戶機上不可得到的裝置;以及用于對所述鏡像的、被確定為在所述客戶機上不可得到的多個元素進行選擇性的傳輸的裝置。所述確定基于對所述鏡像的所述多個元素執行的所述第一散列操作的多個結果與對所述客戶機的所述多個內容執行的所述第一散列操作的多個結果進行的所述比較。
【附圖說明】
[0008]為了獲得對本發明及其特征和優勢更完全的理解,現在參考結合所附附圖進行的下列描述,其中:
[0009]圖1是用于高效的虛擬機部署的示例系統的示意圖;
[0010]圖2示出共享鏡像的示例實施例和可由系統用于確定共享鏡像和客戶機上的內容之間的差異的內容的示例實施例;
[0011]圖3是通過確定多個散列或數字簽名而得到的散列表的示例實施例的示意圖;
[0012]圖4是用于高效的虛擬機部署的系統的示例操作的示意圖;
[0013]圖5是用于確定用于構建共享鏡像的文件是否可得到的系統的示例操作的示意圖;
[0014]圖6是用于確定用于構建共享鏡像的群集是否可得到的系統的示例操作的示意圖;以及
[0015]圖7是用于高效的虛擬機部署的方法的示例實施例。
【具體實施方式】
[0016]圖1是用于高效的虛擬機部署的示例系統100的示意圖。可在主機(如,主機102)和一個或多個客戶機(如,多個客戶機104)之間進行此類部署。雖然示例系統100構想了虛擬機的部署,但是,可由系統100部署任何合適的軟件安裝。系統100可配置成用于確定安裝在給定客戶機104上的多個組件和可從主機102上的主鏡像上得到的多個組件之間的差異。系統100可配置成用于以任何合適的方式來進行此類確定。此外,系統100可配置成用于提供還沒有安裝在給定的客戶機104上的或還不能以其他方式在給定的客戶機104上得到的任何組件。
[0017]可通過任何合適的機制來實現主機102,諸如,模塊、服務器、計算機、其他電子設備或數字和模擬電路的任何合適的組合。在一個實施例中,主機102可包括耦合至存儲器120的處理器118。主機102可包括存儲器120中用于由處理器118來執行的多條指令。在另一實施例中,處理器118和存儲器120可駐留在另一電子設備上,并可將主機102作為模塊來執行。
[0018]在一個實施例中,主機102可包括主機分配應用108,該主機分配應用108配置成用于控制軟件向多個客戶機104的分配。在其他實施例中,該主機分配應用108可駐留在另一合適的電子設備上或可在另一合適的電子設備上操作。主機分配應用108可通過按本文中所描述的方式而配置的任何合適的模塊、腳本、可執行文件、應用或其他數字實體來實現。
[0019]在一個實施例中,主機102可包括主機共享鏡像110,該主機共享鏡像110可包括要安裝在多個客戶機104上的軟件安裝程序的主鏡像。在其他實施例中,主機共享鏡像110可駐留在另一合適的電子設備上,并且可通信地耦合至主機分配應用。主機共享鏡像110可通過文件、指令或其他數字信息的任何合適的集合來實現。主機共享鏡像110可包括文件或其他信息的集合,這些文件或其他信息構成例如諸如操作系統之類的虛擬機安裝程序、虛擬部署環境、沙盒或諸如安全瀏覽器之類的安全應用。主機共享鏡像110可包括要以相同的方式在多個客戶機104之間安裝并配置的此類安裝程序。此外,主機共享鏡像110可以是非常大的,其包括許多兆字節或許多千兆字節的信息。例如,允許可能含有惡意軟件的程序、腳本或其他內容被安全地運行的沙盒應用可包括在客戶機上執行所必需的將近500兆字節的信息。雖然示出了單個主機共享鏡像110,但是,主機102可包括許多此類鏡像,這些鏡像可包括安裝程序或具有各種內容的磁盤鏡像,諸如以特定方式配置的不同的操作系統。此類鏡像可用于例如在各種客戶機104上構建公共虛擬機執行鏡像。
[0020]主機分配應用108可配置成用于通過任何合適的方式或機制向多個客戶機104分配主機共享鏡像110。在一個實施例中,主機分配應用108可通過網絡106通信地耦合至多個客戶機104或與多個客戶機104通信。網絡106可通過任何合適的方式來實現,例如,通過廣域網、局域網、無線網絡、因特網、內聯網或上述各項的任意組合。
[0021]每一個客戶機104可通過任何合適的電子設備來實現,諸如,計算機、膝上型計算機、移動設備或服務器。雖然在客戶機104a中示出客戶機104的示例實施例,但是每一個客戶機104在實現上可以與其他此類的客戶機不同。客戶機104a可包括通信地耦合至客戶機內容114的客戶機分配應用112。客戶機分配應用112可以通過任何合適的方式或通過任何合適的機制來實現,諸如,通過模塊、庫、可執行文件、應用、腳本或其他數字實體。客戶機內容114可包括駐留在客戶機104a上的一個或多個文件、庫或其他數字實體。客戶機104a可包括耦合至存儲器124的處理器122。處理器122可包括由存儲器124執行的多條指令。此類指令可包括用于客戶機分配應用112的操作的多條指令。
[0022]雖然將客戶機104a示出為包括客戶機分配應用112,并且將主機102示出為包括主機分配應用108,但是,客戶機分配應用112和主機分配應用108中的每一個可在執行所描述的操作時駐留在任何合適的電子設備上或在任何合適的電子設備上執行。此外,可在相同或相似的模塊、應用、庫或可執行文件上實現客戶機分配應用112和主機分配應用108。
[0023]客戶機分配應用112可配置成用于與主機分配應用108進行通信。客戶機分配應用112、主機分配應用108或者兩者的組合可配置成用于確定客戶機內容114的哪些部分可用于在客戶機104a上安裝主機共享鏡像110以及哪些部分是需要被下載的。客戶機分配應用112、主機分配應用108或者兩者的組合可配置成用于以任何合適的方式或機制來執行此類確定。
[0024]—旦客戶機內容114的這樣的部分已經駐留在客戶機104a上或者確定了需要被下載的那些部分,則主機分配應用108可配置成用于發送足以供客戶機分配應用112在客戶機104a上安裝共享鏡像116的附加文件或內容。主機分配應用108可利用供客戶機分配應用112執行的這些附加文件或內容來準備安裝包。在一個實施例中,可通過主機分配應用108來僅發送還未駐留在客戶機104a上的文件或內容。在另一實施例中,共享鏡像116可在存儲器中復制主機共享鏡像110的配置和結構。主機分配應用108可配置成用于復制多個客戶機104上的主機共享鏡像110的所創建的共享鏡像的過程。
[0025]可以在需要時執行在客戶機104a上構建共享鏡像116所需的文件的過程,并且該過程可節省許多帶寬。例如,如果需要沙盒應用來執行可疑的文件、腳本或其他內容,則可確定在客戶機104a上還不可得到的沙盒應用的僅必要部分,并將其傳送到客戶機104a。當此類沙盒應用非常大、并且包括數百兆字節、具有特定的執行配置、也許對用戶來說還是未知的時候,向客戶機104a高效地部署所需的內容的能力可以節省可觀的帶寬和時間,并且可以協助保護客戶機104a。
[0026]處理器118、122可包括例如,配置成用于解釋和/或執行程序指令和/或處理數據的