一種用于增強計算機系統(tǒng)安全性的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及安全領(lǐng)域,尤其涉及一種用于增強計算機系統(tǒng)安全性的方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中,沙箱是安全軟件的動態(tài)防護技術(shù)的一部分。沙箱主要通過提供一個隔離、虛擬的運行平臺,使程序能夠正常運行在該虛擬化環(huán)境中,而不會對該計算機系統(tǒng)的其他部分產(chǎn)生任何影響。運行在沙箱中的程序可以查詢其進程路徑或其所創(chuàng)建的文件的路徑等方式,并通過判斷該等路徑中是否包括與沙箱虛擬環(huán)境相關(guān)路徑來感知其自身是否運行在虛擬化環(huán)境中。對于未知的程序,用戶可在虛擬化環(huán)境中嘗試使用該程序以確定其是否安全,然后在確認該未知程序為安全的程序時,再在真實系統(tǒng)環(huán)境中運行該程序。然而一些惡意軟件可通過上述方法來感知其自身是否運行于虛擬化環(huán)境中,從而當運行于虛擬化環(huán)境中時隱藏其惡意行為,從而逃避安全軟件的檢測。為了克服這一問題,現(xiàn)有技術(shù)中,可以通過盡可能地攔截獲取進程路徑或文件路徑的操作來阻止對于運行環(huán)境的感知。然而,上述方式需要攔截的點過多,無法保證全面和徹底。并且,上述方式還可能影響系統(tǒng)的穩(wěn)定性和效率。因此,如何更有效地阻止程序?qū)τ谔摂M化運行環(huán)境的感知是一個需要解決的問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明的目的是提供一種用于增強計算機系統(tǒng)安全性的方法及裝置。
[0004]根據(jù)本發(fā)明的一個方面,提供一種增強計算機系統(tǒng)安全性的方法,其中,該方法包括以下步驟:
[0005]-對于與運行于虛擬化環(huán)境中的程序相關(guān)聯(lián)的文件對象,獲取所述文件對象的底層數(shù)據(jù)結(jié)構(gòu);
[0006]-在所述文件對象的底層數(shù)據(jù)結(jié)構(gòu)中使用非虛擬化環(huán)境路徑,所述非虛擬化環(huán)境路徑用于指示與所述文件對象相關(guān)聯(lián)的路徑。
[0007]根據(jù)本發(fā)明的另一個方面,提供了一種用于增強計算機系統(tǒng)安全性的裝置,其中,該裝置包括:
[0008]-用于對于與運行于虛擬化環(huán)境中的程序相關(guān)聯(lián)的文件對象,獲取所述文件對象的底層數(shù)據(jù)結(jié)構(gòu)的裝置;
[0009]-用于在所述文件對象的底層數(shù)據(jù)結(jié)構(gòu)中使用非虛擬化環(huán)境路徑的裝置,所述非虛擬化環(huán)境路徑用于指示與所述文件對象相關(guān)聯(lián)的路徑。
[0010]本發(fā)明使得運行于虛擬化環(huán)境中的程序無法根據(jù)進程路徑或文件路徑來判斷其是否運行于虛擬化環(huán)境中,從而有效地避免了惡意軟件當感知到其自身運行于虛擬化環(huán)境中時隱藏其惡意行為,以逃避安全軟件的檢測的問題。與現(xiàn)有技術(shù)相比,本發(fā)明方法徹底解決了上述問題,并對系統(tǒng)穩(wěn)定性和效率影響較小,從而增強了計算機系統(tǒng)的安全性。
【附圖說明】
[0011]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
[0012]圖1示出根據(jù)本發(fā)明一個方面的實施例的用于增強計算機系統(tǒng)安全性的方法的流程圖;
[0013]圖2示出根據(jù)本發(fā)明另一個方面的實施例的用于增強計算機系統(tǒng)安全性的裝置的示意圖。
[0014]附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0015]在更加詳細地討論示例性實施例之前應(yīng)當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。此外,各項操作的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
[0016]在上下文中所稱“計算機設(shè)備”,也稱為“電腦”,是指可以通過運行預(yù)定程序或指令來執(zhí)行數(shù)值計算和/或邏輯計算等預(yù)定處理過程的智能電子設(shè)備,其可以包括處理器與存儲器,由處理器執(zhí)行在存儲器中預(yù)存的存續(xù)指令來執(zhí)行預(yù)定處理過程,或是由ASIC、FPGA、DSP等硬件執(zhí)行預(yù)定處理過程,或是由上述二者組合來實現(xiàn)。計算機設(shè)備包括但不限于服務(wù)器、個人電腦、筆記本電腦、平板電腦、智能手機等。
[0017]所述計算機設(shè)備包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,所述用戶設(shè)備包括但不限于電腦、智能手機、PDA等;所述網(wǎng)絡(luò)設(shè)備包括但不限于單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計算(Cloud Computing)的由大量計算機或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。其中,所述計算機設(shè)備可單獨運行來實現(xiàn)本發(fā)明,也可接入網(wǎng)絡(luò)并通過與網(wǎng)絡(luò)中的其他計算機設(shè)備的交互操作來實現(xiàn)本發(fā)明。其中,所述計算機設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)等。
[0018]需要說明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的計算機設(shè)備或網(wǎng)絡(luò)如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護范圍以內(nèi),并以引用方式包含于此。
[0019]后面所討論的方法(其中一些通過流程圖示出)可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合來實施。當用軟件、固件、中間件或微代碼來實施時,用以實施必要任務(wù)的程序代碼或代碼段可以被存儲在機器或計算機可讀介質(zhì)(比如存儲介質(zhì))中。(一個或多個)處理器可以實施必要的任務(wù)。
[0020]這里所公開的具體結(jié)構(gòu)和功能細節(jié)僅僅是代表性的,并且是用于描述本發(fā)明的示例性實施例的目的。但是本發(fā)明可以通過許多替換形式來具體實現(xiàn),并且不應(yīng)當被解釋成僅僅受限于這里所闡述的實施例。
[0021]應(yīng)當理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個單元,但是這些單元不應(yīng)當受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個單元與另一個單元進行區(qū)分。舉例來說,在不背離示例性實施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個或更多所列出的相關(guān)聯(lián)項目的任意和所有組合。
[0022]應(yīng)當理解的是,當一個單元被稱為“連接”或“耦合”到另一單元時,其可以直接連接或耦合到所述另一單元,或者可以存在中間單元。與此相對,當一個單元被稱為“直接連接”或“直接耦合”到另一單元時,則不存在中間單元。應(yīng)當按照類似的方式來解釋被用于描述單元之間的關(guān)系的其他詞語(例如“處于...之間”相比于“直接處于...之間”,“與...鄰近”相比于“與...直接鄰近”等等)。
[0023]這里所使用的術(shù)語僅僅是為了描述具體實施例而不意圖限制示例性實施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個”、“一項”還意圖包括復(fù)數(shù)。還應(yīng)當理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
[0024]還應(yīng)當提到的是,在一些替換實現(xiàn)方式中,所提到的功能/動作可以按照不同于附圖中標示的順序發(fā)生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實際上可以基本上同時執(zhí)行或者有時可以按照相反的順序來執(zhí)行。
[0025]下面結(jié)合附圖對本發(fā)明作進一步詳細描述。
[0026]當前在計算機系統(tǒng)中,為確定未知的程序是否安全,用戶可首先在虛擬化環(huán)境中嘗試使用該程序,并在確認該未知程序安全時,再在真實計算機系統(tǒng)環(huán)境中運行該程序。一般地,在虛擬化環(huán)境中所運行的程序不應(yīng)對計算機系統(tǒng)的其他部分產(chǎn)生影響。在現(xiàn)有技術(shù)中,通常,對于運行在虛擬化環(huán)境中的程序,其所創(chuàng)建或修改的文件將被置于虛擬化環(huán)境中,并因此該等文件的文件路徑將包括虛擬化環(huán)境相關(guān)路徑。并且,當程序映像文件本身被置于虛擬化環(huán)境中時,該程序進程路徑中也將包括虛擬化環(huán)境相關(guān)路徑。
[0027]例如,在Windows系統(tǒng)中,沙箱技術(shù)可用于提供虛擬化環(huán)境。在現(xiàn)有技術(shù)中,運行于沙箱中的程序所創(chuàng)建或修改的文件將被置于沙箱環(huán)境中,并具有該沙箱環(huán)境的路徑。并且,當程序映像文件本身被置于沙箱環(huán)境中時,該程序進程路徑中也將包括該沙箱環(huán)境的路徑。在Windows系統(tǒng)中,程序可通過用戶態(tài)句柄來獲取文件路徑或進程路徑。該用戶態(tài)句柄在Windows內(nèi)核態(tài)對象管理器中對應(yīng)著一個文件對象。該文件對象在文件系統(tǒng)中具有對應(yīng)的底層數(shù)據(jù)結(jié)構(gòu)。例如,在使用NTFS文件系統(tǒng)時,該文件對象的底層數(shù)據(jù)結(jié)構(gòu)為CCB (Context Control Block,環(huán)境控