專利名稱:訪問授權(quán)api的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機安全,尤其涉及控制對計算機系統(tǒng)上資源的訪問。
背景技術(shù):
隨著對計算機和計算機網(wǎng)絡(luò)的依賴性的增加,以及對計算機和計算機網(wǎng)絡(luò)的攻擊頻率和復(fù)雜度的增加,計算機安全的主題在本行業(yè)中變得越來越突出。當(dāng)前的計算機安全技術(shù)不足以保護應(yīng)用程序和操作系統(tǒng)免遭例如病毒、蠕蟲和特洛伊木馬等惡意軟件(“malware”)的破壞,這些惡意軟件是特別設(shè)計成破壞或擾亂計算機系統(tǒng),以及其它不良動作。
現(xiàn)有的訪問控制安全模型通常都依賴于用戶的證書來授權(quán)對計算機上資源的訪問。在這些模型中,具有相同證書運行或執(zhí)行的每個進程都被給予相同的訪問權(quán)限,而不管該進程是否需要訪問用戶可用的所有資源。此外,需要訪問資源(例如讀、寫等)的進程,在訪問資源時指定所需訪問。
例如,用戶通過用戶帳戶登錄到個人計算機上,并期望能夠訪問存儲在該個人計算機上并使用特定的字處理程序創(chuàng)建的所有字處理文檔。為了滿足該期望,常規(guī)的訪問控制安全系統(tǒng)準(zhǔn)許在用戶的上下文許可中運行的所有程序訪問所有前述字處理文檔。然而,這是過度級別許可的準(zhǔn)許,因為實際上很少有在用戶的上下文許可中運行的程序會需要訪問任一字處理文檔。
通常,惡意軟件利用代碼缺陷來感染進程。一旦惡意軟件在受害進程中運行,它就繼承進程在其中運行的用戶上下文的訪問權(quán)限,并得以訪問用戶可用的所有資源,這可比原始進程所需的多得多。
因此,一種改進并增強計算機上資源的安全性的訪問授權(quán)的集成方法將具有重大的效用。
圖1是示出在其上執(zhí)行實用程序的至少部分計算機系統(tǒng)中所包含的選定組件的框圖。
圖2是示出根據(jù)某些實施例的實用程序的選定組件的框圖。
圖3示出根據(jù)某些實施例適于由實用程序使用的示例策略。
圖4示出根據(jù)某些實施例實用程序執(zhí)行對拒絕訪問請求的審核的方法的流程圖。
圖5示出根據(jù)某些實施例實用程序執(zhí)行對固有危險操作的審核的方法的流程圖。
圖6示出根據(jù)某些實施例實用程序執(zhí)行學(xué)習(xí)以便于策略微調(diào)的方法的流程圖。
圖7示出根據(jù)某些實施例實用程序提供分層的訪問控制檢查的方法的流程圖。
圖8示出根據(jù)某些實施例實用程序確定應(yīng)用程序的安全風(fēng)險級別的方法的流程圖。
圖9示出根據(jù)一實施例實用程序在檢測到異常之后施加更嚴格策略的方法的流程圖。
圖10示出根據(jù)一實施例實用程序在檢測到異常之后施加策略的方法的流程圖。
圖11是示出實用程序在某些實施例中用于對目標(biāo)進程設(shè)置策略的通信流的框圖。
圖12是示出實用程序在某些實施例中用于對目標(biāo)進程設(shè)置可取消策略的通信流的框圖。
圖13是示出實用程序在某些實施例中用于對進程設(shè)置自施加策略的通信流的框圖。
圖14是示出實用程序在某些實施例中用于對進程設(shè)置可取消自施加策略的通信流的框圖。
圖15是示出實用程序在某些實施例中用于執(zhí)行客戶機-服務(wù)器訪問控制檢查的通信流的框圖。
圖16示出根據(jù)某些實施例實用程序提取內(nèi)嵌于應(yīng)用程序的策略的過程。
圖17是根據(jù)某些實施例實用程序?qū)⒉呗暂d入并應(yīng)用于遺留應(yīng)用程序的方法的流程圖。
具體實施例方式
描述了用于防止計算機系統(tǒng)受到有害影響的軟件實用程序(“實用程序”),這些有害影響會從對計算機系統(tǒng)上應(yīng)用程序和操作系統(tǒng)程序的利用中產(chǎn)生。在某些實施例中,實用程序?qū)⑦壿嬺?qū)動的訪問控制層加在操作系統(tǒng)上。該實用程序可提供一授權(quán)模塊,該授權(quán)模塊接收對各種安全敏感資源訪問的授權(quán)查詢,并基于策略返回允許或拒絕資源訪問的決定。策略是確定如何比如通過網(wǎng)絡(luò)、文件系統(tǒng)、應(yīng)用程序等來管理并保護資源的一系列規(guī)則和實踐。
授權(quán)模塊可通過各個操作系統(tǒng)組件直接查詢,這些組件對用戶模式程序,例如在用戶上下文中執(zhí)行的應(yīng)用程序發(fā)出的資源訪問請求提供服務(wù)?;蛘撸跈?quán)模塊可通過位于這些操作系統(tǒng)組件之上的“攔截層”來查詢。該攔截層是攔截由用戶模式程序用于訪問資源的系統(tǒng)調(diào)用函數(shù),并將“包裝”應(yīng)用于所攔截的系統(tǒng)調(diào)用函數(shù)的代碼。該授權(quán)模塊基于當(dāng)事者的身份、應(yīng)用于該當(dāng)事者的策略,以及資源的身份和當(dāng)事者想要執(zhí)行的動作來作出其訪問控制決定(即允許或拒絕),當(dāng)事者的身份可以是嘗試進行資源訪問的應(yīng)用程序-例如應(yīng)用程序進程-的身份、用戶的身份,或應(yīng)用程序身份和應(yīng)用程序代表其來執(zhí)行的用戶身份的組合。
在某些實施例中,實用程序提供應(yīng)用程序接口(API),諸如應(yīng)用程序進程的進程通過它來設(shè)置或取消策略(例如訪問限制)。當(dāng)在此使用時,API包括一個或多個相關(guān)函數(shù)。策略可在進程級或線程級上設(shè)置。一旦使用API設(shè)置了訪問限制,則訪問限制可由實用程序?qū)嵤?。API的類型可包括行為控制器API、自施加的API,以及客戶機-服務(wù)器API。
行為控制器API使進程能對目標(biāo)進程設(shè)置訪問限制,從而影響該目標(biāo)進程中所有的進程線程或僅影響某些指定進程線程。訪問限制是可取消或不可取消的。如果訪問限制是可取消的,則訪問限制可通過隨后對實用程序作請求(諸如通過調(diào)用由實用程序提供的放松限制API)來放松或取消。取消訪問限制的請求可由主控進程來作出,主控進程即為設(shè)置訪問限制的進程。在某些實施例中,取消訪問限制的請求可由不是主控進程的進程來作出,諸如受控進程或不是主控進程或受控進程的進程,只要作出請求的該進程被授權(quán)這樣做。例如,標(biāo)識符可與要取消的請求一起用來指示授權(quán)或以其它方式驗證要取消請求的請求者。如果訪問限制是不可取消的,則不發(fā)送或取消訪問限制。此外,訪問限制可與目標(biāo)進程的任何現(xiàn)存策略累加,或可用目標(biāo)進程的當(dāng)前策略替換。例如,使用行為控制器API,父或主控進程可對子或受控進程設(shè)置策略。隨后,當(dāng)子或受控進程對訪問資源作出請求時,授權(quán)模塊檢查該策略以確定允許或拒絕該請求。
自施加API使進程能對自己設(shè)置影響所有或僅某些指定進程線程的訪問限制,就像用行為控制器API設(shè)置的訪問限制那樣,用自施加API設(shè)置的訪問限制是可取消或不可取消的。如果訪問限制是可取消的,則可通過隨后對實用程序作請求來放松或取消訪問限制。如果訪問限制是不可取消的,則不能放松或取消訪問限制。此外,訪問限制可與目標(biāo)進程的任何現(xiàn)存策略累加,或可用目標(biāo)進程的當(dāng)前策略替換。例如,進程實際上可不加策略或加以較少限制的策略地來啟動,這使得該進程能執(zhí)行更積極的資源訪問。隨后,在啟動之后并在開始更危險的動作(例如在網(wǎng)絡(luò)上偵聽并接收網(wǎng)絡(luò)通信)之前,該進程可使用自施加的不可取消的API來對自己設(shè)置更嚴格的策略。在另一示例中,進程可使用自施加的不可取消的API來在啟動宏之前對自己設(shè)置策略,從而使得執(zhí)行該宏時要應(yīng)用該策略。當(dāng)宏完成執(zhí)行時,進程可以取消執(zhí)行該宏之前設(shè)置的策略。
客戶機-服務(wù)器API使進程能夠請求對非操作系統(tǒng)動作的特別資源訪問檢查。例如,客戶機進程可調(diào)用服務(wù)器進程,從而請求該服務(wù)器進程來執(zhí)行某些動作,例如執(zhí)行某些方法或訪問特定數(shù)據(jù)。在接收該客戶機請求之后,服務(wù)器進程模擬例如當(dāng)事者的客戶機進程,并使用客戶機-服務(wù)器API來檢查客戶機進程是否有足夠的特權(quán)來執(zhí)行所請求動作。然后該服務(wù)器進程可基于訪問控制檢查的結(jié)果來確定是否進行所請求的動作。
參照附圖的圖1-17,實用程序的各個實施例及其優(yōu)點可得到最佳的理解。附圖的元件并不必然成比例,而是著重于清晰地說明本發(fā)明的各個原理。貫穿各個附圖,相似標(biāo)號用于各個附圖的相似和相應(yīng)組件。
圖1是示出通常實用程序在其上執(zhí)行的至少部分計算機系統(tǒng)中所包含的選定組件的框圖。這些計算機系統(tǒng)100可包括用于執(zhí)行計算機程序的一個或多個中央處理單元(“CPU”)102、用于存儲使用中的程序和數(shù)據(jù)(包括數(shù)據(jù)結(jié)構(gòu))的計算機存儲器104、用于持久存儲程序和數(shù)據(jù)的諸如硬盤的持久存儲裝置106、用于讀取存儲在計算機可讀介質(zhì)上的程序和數(shù)據(jù)的諸如CD-ROM驅(qū)動器的計算機可讀介質(zhì)驅(qū)動器108,以及用于諸如通過因特網(wǎng)連接計算機系統(tǒng)和其它計算機系統(tǒng),以交換程序和/或數(shù)據(jù)(包括數(shù)據(jù)結(jié)構(gòu))的網(wǎng)絡(luò)連接110。
實用程序在由計算機系統(tǒng)100或其它裝置執(zhí)行的諸如程序模塊的計算機可讀指令的一般環(huán)境中描述。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等。存儲器104和持久存儲裝置106是可包含實現(xiàn)實用程序的指令的計算機可讀介質(zhì)??梢岳斫?,存儲器104和持久存儲器106可具有除實現(xiàn)實用程序的指令外的各種其它內(nèi)容。
可以理解,計算機系統(tǒng)100可包括用于顯示程序輸出的一個或多個顯示裝置,諸如視頻顯示器或LCD面板,以及用于接收用戶輸入的一個或多個輸入裝置,諸如鍵盤、話筒,或諸如鼠標(biāo)的定位裝置。盡管如上配置的計算機系統(tǒng)100通常用于支持實用程序的操作,可以理解,實用程序可使用各種類型和配置的并具有各種組件的裝置來實現(xiàn)。
圖2是根據(jù)某些實施例示出實用程序的選定組件的框圖。如圖2中所示,實用程序包括授權(quán)模塊202,它被實現(xiàn)為適于在計算機系統(tǒng)100上執(zhí)行的操作系統(tǒng)204的整體組件。授權(quán)模塊202通常用作對高風(fēng)險進程的保護添加層,這些高風(fēng)險進程諸如面向網(wǎng)絡(luò)的應(yīng)用程序、面向網(wǎng)絡(luò)的服務(wù)和操作系統(tǒng)組件、處理不受信任內(nèi)容的應(yīng)用程序,以及例如通常通過因特網(wǎng)傳送的代碼的不受信任代碼。授權(quán)模塊202提供用于執(zhí)行對計算機系統(tǒng)100上可用資源的策略驅(qū)動的訪問控制的邏輯。
實用程序還包括策略206,授權(quán)模塊202可通過各策略作出其訪問控制決定。策略206是確定允許或拒絕對訪問資源的授權(quán)的請求的規(guī)則。在某些實施例中,策略206被編譯成由操作系統(tǒng)204尤其是授權(quán)模塊202實施的運行時(例如二進制)規(guī)則。在某些實施例中,策略206被實現(xiàn)為集中式策略存儲器的一部分,該集中式策略存儲器使得策略206(包括策略206中的規(guī)則)可由例如用戶和/或管理員集中取消并設(shè)置。
授權(quán)模塊202可由各個操作系統(tǒng)內(nèi)核組件208查詢,這些組件對由例如當(dāng)事者212a的當(dāng)事者發(fā)出的資源訪問請求提供服務(wù)。授權(quán)模塊202還可由攔截層210查詢,該攔截層210攔截由例如當(dāng)事者212b的當(dāng)事者發(fā)出的要訪問資源的系統(tǒng)調(diào)用函數(shù)。攔截層210對所攔截的系統(tǒng)調(diào)用函數(shù)應(yīng)用包裝,使得授權(quán)模塊202能夠?qū)蓱?yīng)用的策略206執(zhí)行訪問控制檢查。例如,應(yīng)用包裝可包括確定當(dāng)事者的身份和/或與計算系統(tǒng)100相關(guān)聯(lián)的各個環(huán)境因子,并向授權(quán)模塊202提供該信息作為執(zhí)行系統(tǒng)調(diào)用的授權(quán)請求的一部分,以使授權(quán)模塊202能執(zhí)行訪問控制檢查。此外,授權(quán)模塊202可由例如當(dāng)事者212c的當(dāng)事者直接查詢。
在某些實施例中,由授權(quán)模塊202執(zhí)行的訪問控制檢查是作出資源訪問請求的當(dāng)事者和應(yīng)用于該當(dāng)事者的策略的作用。這樣,授權(quán)模塊202基于當(dāng)事者的身份-調(diào)用應(yīng)用程序的身份,或者調(diào)用應(yīng)用程序的身份和執(zhí)行應(yīng)用程序的用戶的身份-以及可應(yīng)用于當(dāng)事者的策略中的規(guī)則來作出其訪問控制決定(即允許或拒絕)。在某些實施例中,授權(quán)模塊202還可考慮各個參數(shù),諸如,作為示例,請求訪問的類型、環(huán)境因子-例如公司網(wǎng)絡(luò)內(nèi)或與公用網(wǎng)絡(luò)相連并在其上執(zhí)行應(yīng)用程序的計算機-以及當(dāng)事者的身份、可應(yīng)用于作出其訪問控制決定的當(dāng)事者的策略中的規(guī)則。
在某些實施例中,實用程序可包括可任選的異常檢測模塊214,如圖2中虛線或“短劃”線所示。異常檢測模塊214通常用來監(jiān)視計算機系統(tǒng)100和在計算機系統(tǒng)100上執(zhí)行的程序的行為,以便檢測異常狀態(tài)。在某些實施例中,異常檢測模塊214在檢測到異常之后向?qū)嵱贸绦蛱峁┑谝粋€通知,在檢測到先前檢測到的異常停止之后提供第二個通知。這使得實用程序能在檢測到異常后激活策略206的實施直到該異常結(jié)束后才不再實施策略206?;蛘撸瑢嵱贸绦蜷_始時可施加限制較少的策略集,而在檢測到異常時施加更具限制性的策略集,直到異常結(jié)束時再次施加限制較少的策略集。異常檢測模塊214可在計算機系統(tǒng)100上執(zhí)行的單個進程中,或在計算機系統(tǒng)100上執(zhí)行的一組進程中,或整個計算機系統(tǒng)100中檢測異常。
實用程序的前述各方面僅是說明性的,且并非旨在對所示組件和/或?qū)嵱贸绦虻氖褂梅秶蚬δ茏鞒鋈魏蜗拗?。例如,在某些實施例中,授?quán)模塊202無需實現(xiàn)為操作系統(tǒng)204的一部分或集成在其中,但可獨立于操作系統(tǒng)204或在其外實現(xiàn),例如作為非操作系統(tǒng)程序?qū)崿F(xiàn)。此外,在某些實施例中,策略206無需被實現(xiàn)為集中式策略存儲器或作為其部分。因而,策略206無需集中于一個地方,而可使用例如分布式模型來實現(xiàn)。此外,即使策略206如所述作授權(quán)模塊202的一部分或包含在其中,策略206仍然僅需對授權(quán)模塊202可訪問。
在以下討論中,實用程序的各個實施例將結(jié)合各個說明性示例來描述??梢岳斫?,實用程序的各個實施例可用于與各方面中這些示例有很大不同的情形中。
圖3示出根據(jù)某些實施例適用于實用程序的示例策略。該示例策略包括要保護web服務(wù)器應(yīng)用程序的規(guī)則。作為示例,請求資源的應(yīng)用程序進程(如項302所示)被檢查,以確定它是否是WebServerX web服務(wù)器進程,如項304所示。如果授權(quán)模塊202確定請求應(yīng)用程序進程是WebServerX web服務(wù)器進程,則授權(quán)模塊202基于包括在策略中的各項規(guī)則允許或拒絕對請求資源的授權(quán)。
如圖所示,示例策略包含對WebServerX進程批準(zhǔn)的特權(quán)或訪問權(quán)限,且缺省是拒絕對所請求資源的授權(quán),如規(guī)則306所示,除非指定了特權(quán)或訪問權(quán)限。換言之,除在策略中明確準(zhǔn)許了所請求資源之外,對請求資源的授權(quán)會被拒絕。在某些實施例中,該策略可包含指定訪問限制的規(guī)則,例如指定要拒絕的對執(zhí)行特定動作的授權(quán)或拒絕對訪問資源的授權(quán)的規(guī)則,或?qū)е聦彶?例如記錄一事件)的規(guī)則。
示例策略中的第一個規(guī)則是對允許WebServerX進程寫如項308所示的“$html”文件、如項310所示的“$WebDirectories”的指示?!?html”是例如*.html、*.gif等的文件類型集合的表示?!?WebDirectories”是配置成web目錄,并可由不同于諸如安全管理員的策略創(chuàng)建者的諸如web管理員的管理員定義的目錄集合的表示。例如,響應(yīng)于請求將由參數(shù)“$html”定義的文件類型寫到由“$WebDirectories”定義的目錄之一的WebServerX進程,授權(quán)模塊202基于該規(guī)則返回一允許決定(即準(zhǔn)許授權(quán))。因而,策略中的規(guī)則可應(yīng)用于動態(tài)的獨立定義的對象組,諸如“$WebDirectories”,以及動態(tài)地可配置的環(huán)境參數(shù),諸如“$html”。
在示例策略中的第二個規(guī)則是這樣的一個指示,如果WebServerX進程代表用戶A執(zhí)行(如項314所示),則允許WebServerX進程寫入“$FTP上載目錄”(如項312所示)。例如,響應(yīng)于代表用戶A執(zhí)行的請求寫入“$FTP上載目錄”的WebServerX進程,授權(quán)模塊202返回一允許決定(即授權(quán)的許可)。
示例策略中的第三個規(guī)則是對允許輸入http通信的指示,如項316所示。例如,響應(yīng)于請求接收輸入http數(shù)據(jù)(例如接收在網(wǎng)絡(luò)連接上傳送的http數(shù)據(jù)信息包)的WebServerX進程,授權(quán)模塊202基于該規(guī)則返回一允許決定(即授權(quán)的許可)。
示例策略中的第四個規(guī)則是這樣的一個指示,如果啟用變量“$FTP”(如項320所示),則允許“FTP通信”(如項318所示)。在此,“$FTP”是變量,并可由不同于創(chuàng)建該策略的安全管理員的管理員來設(shè)置。例如,授權(quán)模塊202執(zhí)行運行時檢查以確定變量“$FTP”是否啟用,如果啟用了,則響應(yīng)于請求收發(fā)由參數(shù)“FTP通信”定義的數(shù)據(jù)的WebServerX進程,授權(quán)模塊202基于該規(guī)則返回一允許決定(即授權(quán)的許可)?;蛘?,如果“$FTP”未啟用,則授權(quán)模塊202將響應(yīng)于前述訪問請求(如項306所示)而返回拒絕決定(即授權(quán)的拒絕)。
可以理解,策略可包括定義操作系統(tǒng)內(nèi)外對象的特權(quán),諸如以上示例特權(quán)所示的應(yīng)用程序進程。策略中的各個規(guī)則可使用一豐富模式(Schema)指定,該模式類似于使用編譯或解釋編程語言來編寫代碼。例如,該模式可支持包括條件和臨時條件,例如“只有如果Y才允許X”,對可動態(tài)配置的環(huán)境參數(shù)和變量的依賴性,對規(guī)則中的環(huán)境因素等的依賴性。此外,參數(shù)的使用便于創(chuàng)建應(yīng)用于當(dāng)前和將來的對象的規(guī)則。例如,特定類型文檔可由參數(shù)表示,且使用該參數(shù)可創(chuàng)建指定施加于現(xiàn)存或后來創(chuàng)建的該特定類型的所有文檔的限制的規(guī)則。在某些實施例中,策略可例如通過彈出對話框來指定某些決定要提交給終端用戶來作出。
圖4示出根據(jù)某些實施例實用程序執(zhí)行對拒絕訪問請求的審核的方法400的流程圖。作為示例,用戶(例如UserABC)已登錄到計算機上,啟動了字處理應(yīng)用程序(例如WPApp),并請求打開存儲在計算機上目錄(例如YZDir)中的文件(例如FileX)。結(jié)果,WPApp發(fā)出對訪問存儲在目錄YZDir中資源FileX的請求。從啟動步驟開始,在步驟402授權(quán)模塊202接收授權(quán)查詢,例如對授權(quán)訪問存儲在YZDir中的FileX的請求。
在步驟404,授權(quán)模塊202標(biāo)識請求對訪問存儲在YZDir中FileX的授權(quán)的主體。在以上示例中,當(dāng)事者可以是WPApp或WPApp和UserABC的組合。在步驟406,授權(quán)模塊202例如從集中式策略存儲器中標(biāo)識可應(yīng)用于已標(biāo)識當(dāng)事者的策略,諸如策略206,并基于當(dāng)事者的身份和可應(yīng)用策略執(zhí)行訪問控制檢查。在步驟408,授權(quán)模塊202確定在步驟406中執(zhí)行的訪問控制檢查的結(jié)果是否是拒絕訪問。繼續(xù)以上示例,授權(quán)模塊202分析已標(biāo)識的可應(yīng)用策略,以在步驟408確定策略中的規(guī)則或特權(quán)是否授權(quán)當(dāng)事者訪問存儲在YZDir中的FileX。
如果授權(quán)模塊202確定可應(yīng)用策略授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟420授權(quán)模塊202返回一允許決定,它是對當(dāng)事者被授權(quán)執(zhí)行所請求動作的指示,并繼續(xù)到結(jié)束步驟?;蛘撸绻跈?quán)模塊202確定可應(yīng)用策略未授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟410授權(quán)模塊202返回一拒絕決定,它是對當(dāng)事者未被授權(quán)執(zhí)行所請求動作的指示。在步驟412,授權(quán)模塊202可向當(dāng)事者返回一出錯字符串,通知當(dāng)事者缺乏執(zhí)行所請求動作的授權(quán)。
在步驟414,授權(quán)模塊202進行檢查以確定是否啟用了審核。與可應(yīng)用策略或規(guī)則相關(guān)聯(lián)的標(biāo)記或記錄可指示是否要執(zhí)行審核。如果未啟用審核,則授權(quán)模塊202繼續(xù)到結(jié)束步驟。或者,如果啟用了審核,則授權(quán)模塊202在步驟416在審核日志中記入一條目。該條目可標(biāo)識被拒絕的請求、失敗規(guī)則、當(dāng)事者,和/或已請求資源。
在步驟418,授權(quán)模塊202可基于被拒絕請求的審核觸發(fā)一個或多個事件。例如,授權(quán)模塊202可通過例如電子郵件、語音郵件、文本消息等向安全管理員提供當(dāng)事者嘗試執(zhí)行未經(jīng)授權(quán)動作的一指示,在當(dāng)事者嘗試執(zhí)行未經(jīng)授權(quán)動作之后終止應(yīng)用進程,在當(dāng)事者嘗試執(zhí)行未經(jīng)授權(quán)動作之后施加更嚴格的策略集等。在觸發(fā)各事件之后,授權(quán)模塊202繼續(xù)到結(jié)束步驟。
本領(lǐng)域技術(shù)人員會理解,對于在此揭示的這些和其它過程及方法,在過程和方法中執(zhí)行的功能可按不同順序?qū)崿F(xiàn)。此外,所示步驟僅是示例性的,且一些步驟是可任選的,可與較少步驟組合,或可擴展成其它步驟,而不偏離本發(fā)明的本質(zhì)。
圖5示出根據(jù)某些實施例實用程序執(zhí)行固有危險操作的審核的方法500的流程圖。作為示例,用戶(例如UserABC)已登錄到計算機上,啟動了web瀏覽器程序(例如WebBrowser),并請求訪問未受信任的網(wǎng)站上(例如WebSiteY)的網(wǎng)頁(例如PageX)。結(jié)果,WebBrowser發(fā)出對從WebSiteY檢索PageX的請求。步驟502-508基本上與方法400的步驟402-408相似。
如果在步驟508,授權(quán)模塊202確定可應(yīng)用策略未授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟510授權(quán)模塊202返回一拒絕決定,它是對當(dāng)事者未被授權(quán)執(zhí)行所請求動作的指示。在以上示例中,WebBrowser不具有訪問未受信任網(wǎng)站W(wǎng)ebSiteY的授權(quán)。在步驟512,授權(quán)模塊202可向當(dāng)事者返回一出錯字符串,通知當(dāng)事者缺乏執(zhí)行所請求動作的授權(quán)。在返回出錯字符串之后,授權(quán)模塊繼續(xù)到結(jié)束步驟。
或者,如果授權(quán)模塊202確定可應(yīng)用策略授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟514授權(quán)模塊202返回一允許決定,它是對當(dāng)事者被授權(quán)執(zhí)行所請求動作的指示。在步驟516,授權(quán)模塊202進行檢查以確定已授權(quán)動作是否是固有的危險操作。例如,實用程序可維護一個固有危險操作的列表,且授權(quán)模塊202可檢查該列表以確定已授權(quán)動作是否被列為固有危險操作。
如果發(fā)現(xiàn)已授權(quán)動作是固有的危險操作,則在步驟518,授權(quán)模塊202執(zhí)行審核操作。例如,授權(quán)模塊202可在固有危險操作的審核日志中記入指示對執(zhí)行固有危險操作的請求和授權(quán)的一條目。該條目還可包括對請求對執(zhí)行固有危險操作的授權(quán)的當(dāng)事者的指示。授權(quán)模塊202還可執(zhí)行其它動作,這些動作可通過執(zhí)行固有危險操作的授權(quán)來觸發(fā)。在步驟518執(zhí)行審核操作之后,或在步驟516確定已授權(quán)動作不是固有危險操作,授權(quán)模塊202繼續(xù)到結(jié)束步驟。
在某些實施例中,授權(quán)模塊202可在固有危險操作的審核日志中記入指示對執(zhí)行固有危險操作的授權(quán)請求的一條目。繼續(xù)上述示例,假設(shè)訪問未受信任網(wǎng)站W(wǎng)ebSiteY被示為固有的危險操作,且此外可應(yīng)用策略未準(zhǔn)許WebBrowser訪問WebSiteY的授權(quán),則授權(quán)模塊202返回拒絕決定(步驟510),并在例如固有危險操作審核日志中記錄對執(zhí)行固有危險操作的授權(quán)的請求和隨后的授權(quán)否定。授權(quán)模塊202還可記錄請求對執(zhí)行固有危險操作的授權(quán)的當(dāng)事者的指示。
圖6示出根據(jù)某些實施例實用程序執(zhí)行學(xué)習(xí)以便于策略微調(diào)的方法600的流程圖。作為示例,用戶(例如UserABC)已登錄到計算機上,啟動了web瀏覽器程序(例如WebBrowser),并請求訪問網(wǎng)站上(例如WebSiteY)的網(wǎng)頁(例如PageX)。結(jié)果,WebBrowser發(fā)出對從WebSiteY檢索PageX的請求。步驟602-608基本上與方法400的步驟402-408相似。
如果在步驟608,授權(quán)模塊202確定可應(yīng)用策略授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟610授權(quán)模塊202返回一允許決定,它是對當(dāng)事者被授權(quán)執(zhí)行所請求動作的指示,并繼續(xù)到結(jié)束步驟。或者,如果授權(quán)模塊202確定可應(yīng)用策略未授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟612授權(quán)模塊202檢查以確定,是否啟用了對拒絕執(zhí)行所請求動作的授權(quán)的策略中規(guī)則的學(xué)習(xí)。繼續(xù)如上示例,可應(yīng)用于WebBrowser的策略可包含明確拒絕WebBrower訪問因特網(wǎng)的規(guī)則,因而WebSiteY還可提供對應(yīng)用學(xué)習(xí)而不應(yīng)用該規(guī)則的指示。
如果授權(quán)模塊202確定未啟用對拒絕執(zhí)行所請求動作的授權(quán)的規(guī)則的學(xué)習(xí),則在步驟618,授權(quán)模塊202返回一拒絕決定,它是對當(dāng)事者未被授權(quán)執(zhí)行所請求動作的指示。在以上示例中,明確拒絕WebBrowser訪問因特網(wǎng)以及WebSiteY的規(guī)則,可不具有對應(yīng)用學(xué)習(xí)的指示。在此實例中,應(yīng)用規(guī)則而WebBrowser被拒絕訪問WebSiteY的授權(quán)。在步驟620,授權(quán)模塊202可向當(dāng)事者返回一出錯字符串,通知當(dāng)事者缺乏執(zhí)行所請求動作的授權(quán)。在返回出錯字符串之后,授權(quán)模塊繼續(xù)到結(jié)束步驟。
或者,如果在步驟612,授權(quán)模塊202確定啟用了對拒絕執(zhí)行所請求動作的授權(quán)的規(guī)則的學(xué)習(xí),則在步驟614,授權(quán)模塊202在學(xué)習(xí)報告日志中記入指示失敗規(guī)則的一條目。該條目還可包括請求對執(zhí)行導(dǎo)致失敗規(guī)則的動作的授權(quán)的當(dāng)事者的指示。在步驟616,授權(quán)模塊202返回一允許決定,它是對當(dāng)事者被授權(quán)執(zhí)行所請求動作的指示,并繼續(xù)到結(jié)束步驟。因而,授權(quán)模塊202批準(zhǔn)對執(zhí)行所請求動作的授權(quán),并記錄對該事件的指示,而不是應(yīng)用可應(yīng)用規(guī)則。然后安全管理員或其它感興趣用戶可分析學(xué)習(xí)報告日志的內(nèi)容,以確定規(guī)則或策略是否太嚴格或不夠嚴格,并在真正實施或?qū)崿F(xiàn)該規(guī)則或策略之前微調(diào)該規(guī)則或策略。
在某些實施例中,授權(quán)模塊202可在學(xué)習(xí)報告日志中記入指示提供對執(zhí)行請求動作的授權(quán)的規(guī)則的一條目。繼續(xù)以上示例,假設(shè)規(guī)則明確地授權(quán)WebBrowser訪問因特網(wǎng)以及WebSiteY并提供對應(yīng)用學(xué)習(xí)的指示,則授權(quán)模塊202返回一允許決定(步驟610)并記錄提供對執(zhí)行請求動作的授權(quán)的規(guī)則的指示。該信息還可用來微調(diào)規(guī)則或策略。例如,如果從記錄日志中的條目確定訪問資源的授權(quán)太容易得到批準(zhǔn),則可調(diào)整或改變規(guī)則或策略以減少批準(zhǔn)對訪問資源的授權(quán)的實例。
圖7示出根據(jù)某些實施例實用程序提供分層訪問控制檢查的方法700的流程圖。再次參看前面示例之一,用戶(例如UserABC)已登錄到計算機上,啟動了字處理應(yīng)用程序(例如WPApp),并請求打開存儲在計算機上目錄(例如YZDir)中的文件(例如FileX)。結(jié)果,WPApp發(fā)出對訪問存儲在目錄YZDir中資源FileX的請求。從啟動步驟開始,在步驟702授權(quán)模塊202接收授權(quán)查詢,例如對授權(quán)訪問存儲在YZDir中的FileX的請求。
在步驟704,運行在用戶的計算機上的操作系統(tǒng)執(zhí)行一常規(guī)訪問控制檢查。繼續(xù)以上示例,操作系統(tǒng)可檢查以確定用戶是否具有打開(例如讀訪問)YZDir中FileX的特權(quán)。在步驟706,操作系統(tǒng)使用其常規(guī)訪問檢查機制來確定是否要拒絕對FileX的用戶訪問。
如果操作系統(tǒng)的常規(guī)訪問檢查機制確定應(yīng)拒絕用戶訪問FileX,則在步驟708操作系統(tǒng)返回一拒絕決定,并繼續(xù)到結(jié)束步驟。拒絕決定是用戶未獲執(zhí)行所請求動作(例如打開FileX)的授權(quán)的指示?;蛘?,如果操作系統(tǒng)的常規(guī)訪問檢查機制確定不應(yīng)拒絕用戶對FileX的訪問,則在步驟710授權(quán)模塊210標(biāo)識請求對存儲在YZDir中FileX的授權(quán)的當(dāng)事者。
在步驟712,授權(quán)模塊202從例如集中式策略存儲器中標(biāo)識可應(yīng)用于已標(biāo)識當(dāng)事者的策略,諸如策略206,并基于當(dāng)事者的身份和可應(yīng)用策略執(zhí)行訪問控制策略。繼續(xù)以上示例,授權(quán)模塊202分析已標(biāo)識的可應(yīng)用策略以在步驟714確定策略中的規(guī)則或特權(quán)是否授權(quán)當(dāng)事者訪問存儲在YZDir中的FileX。
如果授權(quán)模塊202確定可應(yīng)用策略授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟720授權(quán)模塊202返回一允許決定,它是對當(dāng)事者被授權(quán)執(zhí)行所請求動作的指示,并繼續(xù)到結(jié)束步驟。或者,如果授權(quán)模塊202確定可應(yīng)用策略未授權(quán)當(dāng)事者來執(zhí)行所請求的動作,則在步驟716授權(quán)模塊202返回一拒絕決定,它是對當(dāng)事者未被授權(quán)執(zhí)行所請求動作的指示。在步驟718,授權(quán)模塊202可向當(dāng)事者返回一出錯字符串,并繼續(xù)到結(jié)束步驟。該出錯字符串可通知當(dāng)事者缺乏執(zhí)行所請求動作的授權(quán)。
可以理解,可以按與方法700所示相反的順序來執(zhí)行分層訪問檢查。例如,授權(quán)模塊202首先執(zhí)行其訪問控制檢查。如果授權(quán)模塊202確定授權(quán)應(yīng)給予特定的資源訪問,則操作系統(tǒng)使用其常規(guī)訪問控制機制執(zhí)行其安全檢查。
圖8示出根據(jù)某些實施例實用程序確定應(yīng)用程序的安全風(fēng)險級別的方法800的流程圖。特別地,實用程序基于對應(yīng)用程序指定的策略的分析來估計安全風(fēng)險的級別和/或應(yīng)用程序的意圖。作為示例,用戶可登錄到計算機上,并請求在計算機上載入和/或執(zhí)行應(yīng)用程序。
從啟動步驟開始,運行于用戶計算機上的操作系統(tǒng)在步驟802接收對載入/執(zhí)行應(yīng)用程序的請求。在步驟804,操作系統(tǒng)調(diào)用實用程序來確定應(yīng)用程序是否具有相應(yīng)策略。例如,可應(yīng)用于應(yīng)用程序的策略可保持為策略206的一部分。如果實用程序確定可應(yīng)用于應(yīng)用程序的策略不存在,則實用程序通知操作系統(tǒng)可應(yīng)用策略不存在。在步驟806,操作系統(tǒng)拒絕對載入/執(zhí)行應(yīng)用程序的請求,并返回一出錯情形。在拒絕該請求之后,操作系統(tǒng)繼續(xù)到對該請求的結(jié)束步驟。
或者,如果在步驟804,實用程序確定可應(yīng)用于應(yīng)用程序的策略的確存在,則在步驟808,實用程序分析該可應(yīng)用策略以確定與載入/執(zhí)行應(yīng)用程序相關(guān)聯(lián)或由其導(dǎo)致的可能安全風(fēng)險的級別。實用程序可使風(fēng)險級別基于根據(jù)策略中各規(guī)則而批準(zhǔn)的授權(quán)的級別或范圍。例如,如果各規(guī)則授予應(yīng)用程序?qū)芏噘Y源或眾多固有危險資源的權(quán)利,則實用程序可將危險級別設(shè)置得比如果規(guī)則僅授予應(yīng)用程序一些相對安全資源的權(quán)利的要高。該實用程序通知操作系統(tǒng),可應(yīng)用策略的確存在,并繼續(xù)到結(jié)束步驟。
圖9示出根據(jù)某些實施實用程序在檢測到異常之后施加更嚴格策略的方法900的流程圖。作為示例,運行在計算機上的實用程序可具有兩種策略,都可應(yīng)用于應(yīng)用程序的PolicyA和PolicyB。此外,PolicyA比PolicyB限制較少,因為PolicyA批準(zhǔn)對更多數(shù)量資源的授權(quán)。
從啟動步驟開始,在步驟902實用程序施加限制較少的PolicyA。在步驟904,實用程序可在執(zhí)行于計算機上的應(yīng)用程序?qū)嵗袡z測異常狀態(tài)。繼續(xù)以上示例,應(yīng)用程序的實例可在計算機上執(zhí)行,且實用程序可監(jiān)視執(zhí)行中的應(yīng)用程序進程。在監(jiān)視應(yīng)用程序進程時,實用程序可檢測進程中的異常情形或狀態(tài)。例如,應(yīng)用程序可通過跟蹤先前的運行于計算機上的應(yīng)用程序?qū)嵗齺懋a(chǎn)生有向圖,該有向圖表示通常由應(yīng)用程序發(fā)出的系統(tǒng)調(diào)用,并從與當(dāng)前應(yīng)用程序進程進行的系統(tǒng)調(diào)用的比較和有向圖中確定異常狀態(tài)的顯現(xiàn)。
在步驟906,實用程序響應(yīng)于檢測到異常狀態(tài)來施加更嚴格的PolicyB,并繼續(xù)到結(jié)束步驟。在一實施例中,實用程序在檢測到異常狀態(tài)的應(yīng)用程序進程上施加更嚴格的PolicyB。或者,實用程序可在應(yīng)用程序(例如應(yīng)用程序的所有實例或進程)上施加更嚴格的PolicyB。此外,取決于檢測到的異常、應(yīng)用程序,和/或特定策略,實用程序可在整個計算機上施加更具限制性的策略集,例如將更具限制性的策略應(yīng)用于在計算機上執(zhí)行的所有進程。
圖10示出根據(jù)某些實施例實用程序在檢測到異常后施加一策略的方法1000的流程圖。作為示例,運行在計算機上的實用程序可具有可應(yīng)用于web應(yīng)用程序的策略PolicyA。從開始步驟開始,實用程序在步驟1002不對web應(yīng)用程序施加策略。因而,PolicyA是休眠的,且不應(yīng)用于在計算機上執(zhí)行的web應(yīng)用程序的實例。在步驟1004,實用程序可在計算機上執(zhí)行的web應(yīng)用程序的實例中檢測到異常狀態(tài)。
繼續(xù)以上示例,web應(yīng)用程序的一個實例可在計算機上執(zhí)行,且實用程序可監(jiān)視執(zhí)行中的web應(yīng)用程序進程。在監(jiān)視應(yīng)用程序進程時,實用程序可檢測進程中的異常情形或狀態(tài)。例如,應(yīng)用程序可監(jiān)視web應(yīng)用程序進程所產(chǎn)生或?qū)е碌木W(wǎng)絡(luò)通信量,并從該網(wǎng)絡(luò)通信量確定異常狀態(tài)在web應(yīng)用程序進程中出現(xiàn)。在步驟1006,實用程序可在web應(yīng)用程序上(例如在檢測到異常的web應(yīng)用程序進程上)施加一休眠策略PolicyA,并繼續(xù)到結(jié)束步驟。或者,實用程序可在web應(yīng)用程序的所有實例或進程中施加PolicyA。因而,休眠策略被激活并應(yīng)用于web應(yīng)用程序。
圖11是示出在某些實施例中由實用程序用來在目標(biāo)進程上設(shè)置策略的通信流的框圖。作為示例,在計算機上執(zhí)行的網(wǎng)絡(luò)服務(wù)器進程可能想要設(shè)置偵聽器進程的策略,該策略被配置成代表服務(wù)器進程偵聽并接收網(wǎng)絡(luò)信息包。在該實例中,服務(wù)器進程可被視為主控進程,而偵聽器進程被視為目標(biāo)或受控進程。
如圖11所示,主控進程1102向在計算機上運行的操作系統(tǒng)1104發(fā)送對受控進程1108設(shè)置策略的請求(階段1)。該策略可與請求一起發(fā)送,或可在先發(fā)送,在該情形中請求可包括標(biāo)識策略的標(biāo)識符。請求通過訪問控制API 1106作出。通常訪問控制API 1106的作用是公開各個接口并使其可用,這些接口可由應(yīng)用程序開發(fā)者用來設(shè)置并取消策略。在一實施例中,訪問控制API 1106提供調(diào)用約定,通過這些約定應(yīng)用程序訪問操作系統(tǒng)1104以設(shè)置并取消策略。
響應(yīng)于接收設(shè)置策略的請求,操作系統(tǒng)1104檢查以確定主控進程1102是否有足夠的特權(quán)來對目標(biāo)進程設(shè)置策略(階段2)。例如,操作系統(tǒng)1104可能需要主控進程1102在比受控進程1108所執(zhí)行的更高特權(quán)級別上執(zhí)行?;蛘撸僮飨到y(tǒng)1104可能僅允許進程在子進程上設(shè)置策略。如果操作系統(tǒng)1104確定主控進程1102具有足夠的特權(quán),則操作系統(tǒng)1104對受控進程1108設(shè)置策略。如果請求包括策略,則操作系統(tǒng)1104將接收到的策略存儲在例如策略206中,并設(shè)置應(yīng)用該策略的指示。如果請求包括標(biāo)識該策略的標(biāo)識符,則操作系統(tǒng)1104使用該標(biāo)識符來標(biāo)識(例如定位)例如策略206中的該策略,并設(shè)置應(yīng)用該策略的指示。否則,如果操作系統(tǒng)1104確定主控進程1102不具有足夠特權(quán),則操作系統(tǒng)1104不對受控進程1108設(shè)置策略。操作系統(tǒng)1104向主控進程1102返回對受控進程1108設(shè)置策略的請求的結(jié)果(階段3)。
隨后,當(dāng)受控進程1108向操作系統(tǒng)1104請求訪問資源時(階段4),操作系統(tǒng)1104執(zhí)行訪問控制檢查以確定受控進程1108是否具有訪問該資源的授權(quán)(階段5)。例如,操作系統(tǒng)1104可利用授權(quán)模塊202來確定是否有可應(yīng)用策略并將規(guī)則應(yīng)用于可應(yīng)用策略中,以確定受控進程1108是否有訪問該資源的授權(quán)。
取決于訪問控制檢查的結(jié)果,操作系統(tǒng)1104對訪問資源的請求提供服務(wù)。例如,如果操作系統(tǒng)1104通過應(yīng)用可應(yīng)用策略確定該受控進程1108具有訪問該資源的授權(quán),則操作系統(tǒng)1104繼續(xù)進一步處理訪問資源的請求。否則,操作系統(tǒng)1104不對訪問資源的請求作進一步處理。操作系統(tǒng)1104向受控進程1108返回對訪問資源的請求的結(jié)果(階段6)。
即使主控進程1102和操作系統(tǒng)1104在以上和隨后示例中被視為在同一計算機上運行,這并非想要作出限制,如本領(lǐng)域技術(shù)人員可理解的,主控進程1102無需與操作系統(tǒng)1104在同一計算機上運行。例如,設(shè)置策略的請求可通過通信網(wǎng)絡(luò)來發(fā)送。此外,可以理解,受控進程1108在請求對受控進程1108設(shè)置策略時可存在或不存在。
圖12是示出由實用程序在某些實施例中用來對目標(biāo)進程設(shè)置可取消策略的通信流的框圖。主控進程1202通過訪問控制API 1106向在計算機上運行的操作系統(tǒng)1104發(fā)送對受控進程1204設(shè)置可取消策略的請求(階段1)。響應(yīng)于接收設(shè)置策略的請求,操作系統(tǒng)1104檢查以確定主控進程1202是否有足夠的特權(quán)來對目標(biāo)進程設(shè)置可取消策略(階段2)。如果操作系統(tǒng)1104確定主控進程1202具有足夠的特權(quán),則操作系統(tǒng)1104設(shè)置對受控進程1204應(yīng)用該策略的指示。否則,如果操作系統(tǒng)1104確定主控進程1202不具有足夠特權(quán),則操作系統(tǒng)1104不對受控進程1204設(shè)置策略。
操作系統(tǒng)1104向主控進程1202返回對受控進程1204設(shè)置可取消策略的請求的結(jié)果(階段3)。如果可取消策略被成功設(shè)置,則操作系統(tǒng)1104在例如“cookie”中返回對主控進程1202的標(biāo)識符。在一實施例中,該標(biāo)識符驗證設(shè)置可取消策略的進程,并用來標(biāo)識并取消該可取消策略。換言之,該標(biāo)識符類似于取消該可取消策略的特權(quán)或授權(quán),并隨后向操作系統(tǒng)1104發(fā)送對取消該策略的請求。在其它實施例中,cookie還可包括狀態(tài)信息,諸如標(biāo)識先前有效的策略的標(biāo)識符。
隨后,當(dāng)受控進程1204向操作系統(tǒng)1104請求訪問資源時(階段4),操作系統(tǒng)1104執(zhí)行訪問控制檢查以確定受控進程1204是否具有訪問該資源的授權(quán)(階段5)。取決于訪問控制檢查的結(jié)果,操作系統(tǒng)1104對訪問資源的請求提供服務(wù)。例如,如果操作系統(tǒng)1104通過應(yīng)用可應(yīng)用策略確定該受控進程1204具有訪問該資源的授權(quán),則操作系統(tǒng)1104繼續(xù)進一步處理訪問資源的請求。否則,操作系統(tǒng)1104不對訪問資源的請求作進一步處理。操作系統(tǒng)1104向受控進程1204返回對訪問資源的請求的結(jié)果(階段6)。
然后主控進程1202可通過訪問控制API 1106向操作系統(tǒng)1104發(fā)送對取消先前設(shè)置在受控進程1204上的可取消策略的請求(階段7)?;蛘?,主控進程1202可向受控進程1204發(fā)送包含標(biāo)識符的cookie(階段8),且受控進程1204隨后可通過訪問控制API 1106向操作系統(tǒng)1104發(fā)送對取消先前設(shè)置在受控進程1204上的可取消策略的請求(階段9)。在兩個實例中,cookie都與對取消可取消策略的請求一起發(fā)送。
響應(yīng)于接收對取消可取消策略的請求,操作系統(tǒng)1104使用包含于cookie中的標(biāo)識符來驗證請求者是具有對取消可取消策略的授權(quán)的進程。操作系統(tǒng)1104還可使用該標(biāo)識符來標(biāo)識要取消的策略。在驗證請求者-主控進程1202(階段7)或受控進程1204(階段9)-之后,操作系統(tǒng)1104取消當(dāng)前應(yīng)用于受控進程1202的可取消策略。在另一實施例中,操作系統(tǒng)1104可以在應(yīng)用剛剛?cè)∠目扇∠呗灾皯?yīng)用一個應(yīng)用于受控進程1204的策略。例如,標(biāo)識先前有效的策略的標(biāo)識符可在‘cookie’中傳遞給操作系統(tǒng)1104,該‘cookie’與對取消可取消策略的請求一起發(fā)送?;蛘?,操作系統(tǒng)1104在應(yīng)用該可取消策略之前將狀態(tài)信息保留在例如計算機上的持久存儲裝置中。
圖13是示出由實用程序在某些實施例中用來對進程設(shè)置自施加策略的通信流的框圖。作為示例,計算機上的用戶剛剛才激活web瀏覽器應(yīng)用程序。作為初始化進程的一部分,web瀏覽器應(yīng)用程序進程1302可通過訪問控制API 1106向運行于計算機上的操作系統(tǒng)1104發(fā)送將我的策略設(shè)置為PolicyA的請求(階段1)。作為響應(yīng),操作系統(tǒng)1104將進程1302的策略設(shè)置為PolicyA(階段2)。如果該請求包括PolicyA,則操作系統(tǒng)1104將PolicyA存儲在例如策略206中,并設(shè)置對應(yīng)用PolicyA的指示。如果該請求包括標(biāo)識PolicyA的標(biāo)識符,則操作系統(tǒng)1104使用該標(biāo)識符來標(biāo)識(例如定位)例如策略206中的PolicyA,并設(shè)置應(yīng)用該策略的指示。操作系統(tǒng)1104向進程1302返回將我的策略設(shè)置為PolicyA的請求的結(jié)果(階段3)。
隨后,進程1302繼續(xù)處理激活的PolicyA(階段4)。該處理可涉及與操作系統(tǒng)1104的交互。例如,用戶可使用進程1302來上載一個或多個web應(yīng)用程序。在已經(jīng)上載了一個web應(yīng)用程序之后,用戶可請求通過進程1302來處理上載的web應(yīng)用程序。響應(yīng)于用戶的請求,進程1302通過訪問控制API 1106向操作系統(tǒng)1104發(fā)送將我的策略設(shè)置為PolicyB的請求(階段5)。例如,進程1302不信任上載的和用戶啟動的web應(yīng)用程序的完整性,請求將策略設(shè)置為更嚴格的PolicyB。作為響應(yīng),操作系統(tǒng)1104將進程1302的策略設(shè)置為PolicyB(階段6)。操作系統(tǒng)1104向進程1302返回將我的策略設(shè)置為PolicyB的請求的結(jié)果(階段7)。
取決于對將策略設(shè)置為PolicyB的請求的返回結(jié)果,進程1302繼續(xù)處理(階段8)。例如,如果對將策略設(shè)置為PolicyB的請求成功,則進程1302開始執(zhí)行所請求的web應(yīng)用程序。在此,更嚴格的PolicyB被應(yīng)用于web應(yīng)用程序進程。或者,如果對將策略設(shè)置為PolicyB的請求不成功,則進程1302不開始執(zhí)行web應(yīng)用程序,并向用戶通知錯誤情形,例如不運行該web應(yīng)用程序的原因。
在某些實施例中,PolicyB應(yīng)用于web應(yīng)用程序進程中而PolicyA實際上被取消。在此情形中,PolicyA是可取消策略。在某些實施例中,PolicyA和PolicyB都應(yīng)用于web應(yīng)用程序進程。此時,PolicyA是不可取消的,因而與PolicyB一起有效。
圖14是示出由實用程序在某些實施例中用來對進程設(shè)置可取消的自施加策略的通信流的框圖。作為示例,計算機上的用戶可運行一應(yīng)用程序,且正好要執(zhí)行一個宏。知道了要由該宏執(zhí)行的處理,應(yīng)用程序進程1402可通過訪問控制API 1106向運行于計算機上的操作系統(tǒng)1104發(fā)送將我的可取消策略設(shè)置為PolicyA的請求(階段1)。例如,PolicyA可以是比當(dāng)前應(yīng)用于進程1402的策略更嚴格的策略。
作為響應(yīng),操作系統(tǒng)1104將進程1402的策略設(shè)置為PolicyA(階段2),并向主控進程1402返回將我的可取消策略設(shè)置為PolicyA的請求的結(jié)果(階段3)。如果PolicyA成功設(shè)置,則操作系統(tǒng)1104還可向進程1402返回包含標(biāo)識符和/或狀態(tài)信息的cookie,該狀態(tài)信息與先于PolicyA應(yīng)用的任何先前策略有關(guān)。該標(biāo)識符用于驗證持有者是具有取消該可取消策略的授權(quán)的進程。
取決于對將可取消策略設(shè)置為PolicyA的請求的返回結(jié)果,進程1402繼續(xù)處理(階段4)。例如,如果對將可取消策略設(shè)置為PolicyA的請求成功,則進程1402繼續(xù)執(zhí)行該宏。在此,更嚴格的PolicyA被應(yīng)用于該宏。或者,如果對將可取消策略設(shè)置為PolicyA的請求不成功,則進程1402不繼續(xù)執(zhí)行該宏。
隨后,例如在檢測該宏已完成執(zhí)行之后,進程1402可通過訪問控制API 1106向操作系統(tǒng)1104發(fā)送對取消我的策略(例如PolicyA)的請求(階段5)。進程1402提交先前從操作系統(tǒng)1104與取消我的策略的請求一起接收的‘cookie’。響應(yīng)于接收對取消我的策略的請求,操作系統(tǒng)1104使用包含于cookie中的標(biāo)識符來驗證請求者是具有對取消該策略的授權(quán)的進程。在驗證進程1402之后,操作系統(tǒng)1104取消PolicyA,并將在該cookie中標(biāo)識的策略應(yīng)用于進程1402(階段6)。操作系統(tǒng)1104向進程1402返回請求取消我的策略的結(jié)果(階段7),且進程1402繼續(xù)處理(階段8)。在另一實施例中,取消我的策略的請求可標(biāo)識在取消當(dāng)前可取消策略之后要應(yīng)用的策略。
圖15是示出由實用程序在某些實施例中用來執(zhí)行客戶機-服務(wù)器訪問控制檢查的通信流的框圖。作為示例,電子郵件客戶機進程1502可調(diào)用電子郵件服務(wù)器進程1504來向目的接收者發(fā)送電子郵件消息(階段1)??蛻魴C進程1502發(fā)送其標(biāo)識符(例如ClientID)作為對服務(wù)器進程1504調(diào)用的一部分。作為響應(yīng),在嘗試將電子郵件消息發(fā)送給目的接收者之前,服務(wù)器進程1504執(zhí)行一檢查以確定客戶機進程1504是否有執(zhí)行所請求動作的足夠特權(quán),例如在該情形中,將電子郵件發(fā)送給目的接收者。因而,服務(wù)器進程1504通過取得客戶機進程1502的身份來模擬客戶機進程1502(階段2)。
在已取得了客戶機進程1502的身份之后,服務(wù)器進程1504通過訪問控制API1106向操作系統(tǒng)1104發(fā)送對執(zhí)行訪問控制檢查的請求(階段3)。該請求包括客戶機進程1502的身份(例如ClientID)和所請求的動作(例如向收件人發(fā)送電子郵件消息)。操作系統(tǒng)1104執(zhí)行訪問控制檢查并向服務(wù)器進程1504發(fā)送對客戶機進程1502是否具有執(zhí)行所請求動作的授權(quán)的指示。在某些實施例中,操作系統(tǒng)1104可檢查策略206中的可應(yīng)用策略以確定客戶機進程1502是否具有執(zhí)行所請求動作的授權(quán)。在某些實施例中,操作系統(tǒng)1104可利用授權(quán)模塊202來確定客戶機進程1502是否具有執(zhí)行所請求動作的授權(quán)。取決于訪問控制檢查的結(jié)果,服務(wù)器進程1504繼續(xù)處理電子郵件消息(例如向目的接收者發(fā)送電子郵件消息),或停止處理該電子郵件消息并向客戶機進程1502發(fā)送出錯消息。盡管在以上示例中服務(wù)器進程1504向操作系統(tǒng)1104發(fā)送對執(zhí)行訪問控制檢查的請求,可以理解,服務(wù)器進程1504可直接調(diào)用授權(quán)模塊202以執(zhí)行訪問控制檢查。
圖16示出根據(jù)某些實施例提取嵌入應(yīng)用程序的策略的過程。這使得策略能作為包括應(yīng)用程序的軟件包的一部分來傳送,且策略在組成應(yīng)用程序的任何代碼開始執(zhí)行之前被提取并應(yīng)用。因而,使用該方法,如果代碼包含由惡意代碼利用的缺陷,攻擊危害可被降低和/或遏制。
在步驟1602,策略被嵌入,作為應(yīng)用程序代碼的一部分。該內(nèi)嵌策略被限定于應(yīng)用程序代碼中。在某些實施例中,代碼中的策略例如通過在可執(zhí)行代碼中置入標(biāo)記來劃分,該標(biāo)記向適于在策略出現(xiàn)時提取內(nèi)嵌策略的操作系統(tǒng)或其它進程提供指示。在步驟1604,應(yīng)用程序代碼被簽名以保護最后的映像。代碼簽名提供了對被簽名映像來自數(shù)字簽名的提供者(例如代碼的簽名者)的保證。使用公鑰和私鑰的數(shù)字簽名通常對本領(lǐng)域技術(shù)人員是眾所周知的,在此不再贅述。
隨后,在步驟1606,請求在例如計算機上載入應(yīng)用程序映像。在步驟1608,操作系統(tǒng)或操作系統(tǒng)的載入器組件檢查應(yīng)用程序映像的完整性。如果操作系統(tǒng)確定應(yīng)用程序映像的完整性不可接受(步驟1610),則在步驟1618操作系統(tǒng)不在計算機上載入應(yīng)用程序映像。該操作系統(tǒng)還可生成出錯情形并提供對錯誤的指示。
或者,如果操作系統(tǒng)確定應(yīng)用程序映像的完整性可接受(步驟1610),則在步驟1612操作系統(tǒng)在計算機上載入應(yīng)用程序映像。在步驟1614,操作系統(tǒng)檢查內(nèi)嵌策略的出現(xiàn),且如果檢測到內(nèi)嵌策略,則從應(yīng)用程序映像中提取該策略。在某些實施例中,操作系統(tǒng)可將已提取的策略存儲在由操作系統(tǒng)提供的策略表格或庫中(例如策略206)。在步驟1616,操作系統(tǒng)將已提取的策略應(yīng)用于載入的應(yīng)用程序映像。
圖17是實用程序根據(jù)某些實施例載入策略并將其應(yīng)用于遺留應(yīng)用程序的方法1700的流程圖。作為示例,遺留應(yīng)用程序可存儲在計算機上。等待將策略應(yīng)用于遺留應(yīng)用程序,而不招致與修改遺留應(yīng)用程序代碼相關(guān)的的風(fēng)險或與卸載、重新安裝以及重新配置可能大量的遺留應(yīng)用程序的麻煩和成本,遺留應(yīng)用程序的策略可通過不依賴于遺留應(yīng)用程序的進程來傳遞。
從開始步驟開始,在計算機上執(zhí)行的提供遺留應(yīng)用程序的操作系統(tǒng)在步驟1702接收來自進程的對加載遺留應(yīng)用程序的策略的請求。例如,該進程可以是在計算機上執(zhí)行的更新程序的實例。此外,除了可包括在策略中的規(guī)則之外,策略還可包括基于信息而相關(guān)并可應(yīng)用的規(guī)則,這些信息諸如遺留應(yīng)用程序代碼的版本、結(jié)合在遺留應(yīng)用程序代碼中的補丁級別等。在步驟1704,操作系統(tǒng)接收來自進程的策略,并載入遺留應(yīng)用程序的策略。操作系統(tǒng)可驗證該進程被授權(quán)傳送可應(yīng)用于遺留應(yīng)用程序的策略。操作系統(tǒng)還可在接收并存儲該策略之前驗證進程和策略的完整性。在某些實施例中,操作系統(tǒng)載入策略表格或庫中的策略,并使該策略與遺留應(yīng)用程序相關(guān)聯(lián)。該關(guān)聯(lián)由策略的元數(shù)據(jù)指示。
隨后,在步驟1706,操作系統(tǒng)接收對載入遺留應(yīng)用程序的請求。在步驟1708,操作系統(tǒng)檢查以確定是否有可應(yīng)用于遺留應(yīng)用程序的策略。如果遺留應(yīng)用程序不具有可應(yīng)用策略,則在步驟1704,操作系統(tǒng)不載入遺留應(yīng)用程序。在該實例中,操作系統(tǒng)可被配置成僅載入并執(zhí)行具有有效可應(yīng)用策略的應(yīng)用程序。操作系統(tǒng)可返回指示載入遺留應(yīng)用程序失敗的一錯誤。在提供錯誤指示之后,操作系統(tǒng)繼續(xù)處理。
如果在步驟1708,操作系統(tǒng)確定遺留應(yīng)用程序具有可應(yīng)用策略,則在步驟1710,操作系統(tǒng)載入遺留應(yīng)用程序。在步驟1712,操作系統(tǒng)在其執(zhí)行期間將策略應(yīng)用于遺留應(yīng)用程序,并繼續(xù)處理。
從前述內(nèi)容,可以理解,盡管為進行說明已對本發(fā)明的特定實施例進行了描述,但可作各種更改而不背離本發(fā)明的精神和范圍。因此,本發(fā)明并不受限制,除了根據(jù)在所附權(quán)利要求書中闡明的各個元素。
權(quán)利要求
1.一種計算機可讀存儲介質(zhì),其內(nèi)容導(dǎo)致計算機提交將自施加策略設(shè)置為第一策略的第一個請求;提交訪問第一資源的至少一個請求;提交將自施加策略設(shè)置為第二策略的第二個請求;以及提交訪問第二資源的至少一個請求,從而所述第一策略用于確定是否有訪問所述第一資源的授權(quán),而所述第二策略用于確定是否有訪問所述第二資源的授權(quán)。
2.如權(quán)利要求1所述的計算機可讀存儲介質(zhì),其特征在于,所述第二策略比所述第一策略更具限制性。
3.如權(quán)利要求1所述的計算機可讀存儲介質(zhì),其特征在于,將自施加策略設(shè)置為第二策略的所述第二個請求取消所述第一策略。
4.如權(quán)利要求1所述的計算機可讀存儲介質(zhì),其特征在于,將自施加策略設(shè)置為第二策略的所述第二個請求不取消所述第一策略。
5.如權(quán)利要求1所述的計算機可讀存儲介質(zhì),其特征在于,將自施加策略設(shè)置為第二策略的所述第二個請求不取消所述第一策略,從而所述第一策略和第二策略用來確定是否有對訪問所述第二資源的授權(quán)。
6.一種用于在計算系統(tǒng)上提供客戶機-服務(wù)器訪問控制檢查的方法,所述方法包括在所述計算系統(tǒng)上執(zhí)行的進程的控制下,從第一進程接收對由所述進程提供的資源的請求,所述請求包括一標(biāo)識符;模擬所述第一進程;確定所述第一進程是否具有對請求所述資源的授權(quán);以及在確定所述第一進程具有對請求所述資源的授權(quán)之后,處理對所述資源的請求。
7.如權(quán)利要求6所述的方法,其特征在于,所述進程通過獲得所述第一進程的身份來模擬所述第一進程。
8.如權(quán)利要求6所述的方法,其特征在于,所述進程通過發(fā)送對執(zhí)行訪問控制檢查的請求來確定所述第一進程是否具有對請求所述資源的授權(quán),所述請求包括從所述第一進程接收的標(biāo)識符,以及對所述請求資源的指示。
9.如權(quán)利要求8所述的方法,其特征在于,所述執(zhí)行所述訪問控制檢查的請求對操作系統(tǒng)作出。
10.如權(quán)利要求6所述的方法,其特征在于,對所述第一進程是否具有請求所述資源的授權(quán)的確定包括對可用于所述第一進程的策略的檢查。
11.一種用于對受控進程設(shè)置策略的系統(tǒng),所述受控進程在所述系統(tǒng)上執(zhí)行,所述系統(tǒng)包括從主控進程接收對所述受控進程設(shè)置策略的請求的組件;確定所述主控進程是否具有對所述受控進程設(shè)置策略的特權(quán)的組件;以及響應(yīng)于確定所述主控進程具有對所述受控進程設(shè)置策略的特權(quán),對所述受控進程設(shè)置策略的組件,從而所述策略在執(zhí)行訪問控制檢查時應(yīng)用于所述受控進程,以確定所述受控進程是否具有訪問資源的授權(quán)。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述策略是可取消策略,且在對所述受控進程設(shè)置策略之后,向所述主控進程發(fā)送一標(biāo)識符,用于請求取消所述已設(shè)置的策略。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括在對所述受控進程設(shè)置策略之后,向所述主控進程發(fā)送一標(biāo)識符,用于請求取消所述已設(shè)置的策略的組件。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,還包括接收取消對所述受控進程的策略的請求的組件;驗證取消對所述受控進程的策略的請求的組件;以及響應(yīng)于驗證對取消策略的請求,取消對所述受控進程的策略的組件。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于,驗證所述請求包括檢查以確定所述標(biāo)識符是否作為對取消策略的請求的一部分而接收。
16.如權(quán)利要求14所述的系統(tǒng),其特征在于,取消所述策略的請求從所述主控進程中接收。
17.如權(quán)利要求14所述的系統(tǒng),其特征在于,取消所述策略的請求從所述受控進程接收。
18.如權(quán)利要求14所述的系統(tǒng),其特征在于,取消所述策略的請求從與所述主控進程或所述受控進程不同的進程接收。
19.如權(quán)利要求14所述的系統(tǒng),其特征在于,還包括響應(yīng)于驗證對取消所述策略的請求,對所述受控進程設(shè)置先前的策略,該策略在設(shè)置剛剛?cè)∠牟呗灾坝行А?br>
20.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述受控進程和所述主控進程都是同一進程。
21.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述受控進程是所述主控進程的執(zhí)行線程。
22.一種計算機可讀存儲介質(zhì),其內(nèi)容導(dǎo)致計算機接收對載入可應(yīng)用于應(yīng)用程序的策略的請求,所述請求由在所述計算機上執(zhí)行的進程作出,而不是由該應(yīng)用程序的實例作出;將所述策略存儲在策略庫中;以及使所述策略與對應(yīng)的應(yīng)用程序相關(guān)聯(lián),從而所述存儲的策略隨后應(yīng)用于在所述計算機上執(zhí)行的該應(yīng)用程序的實例。
23.如權(quán)利要求22所述的計算機可讀存儲介質(zhì),其特征在于,還包括的內(nèi)容導(dǎo)致計算機接收對在計算機上載入所述應(yīng)用程序的請求;確定可應(yīng)用于所述應(yīng)用程序的策略是否在所述策略庫中存在,且響應(yīng)于確定可應(yīng)用于所述應(yīng)用程序的策略存在而在所述計算機上載入所述應(yīng)用程序;以及將所述可應(yīng)用策略應(yīng)用于所述應(yīng)用程序。
24.如權(quán)利要求23所述的計算機可讀存儲介質(zhì),其特征在于,還包括的內(nèi)容導(dǎo)致計算機確定可應(yīng)用于所述應(yīng)用程序的策略是否在所述策略庫中存在;以及響應(yīng)于確定可應(yīng)用于所述應(yīng)用程序的策略不存在,不將所述應(yīng)用程序載入所述計算機。
25.一種在計算系統(tǒng)中用于接收內(nèi)嵌策略的方法,所述方法包括接收載入應(yīng)用程序映像的請求;確定策略是否嵌入所述應(yīng)用程序映像;響應(yīng)于確定策略嵌入所述應(yīng)用程序映像從所述應(yīng)用程序映像中提取所述策略;載入所述應(yīng)用程序映像;以及將所述已提取策略應(yīng)用于所述載入的應(yīng)用程序映像。
26.如權(quán)利要求25所述的方法,其特征在于,所述內(nèi)嵌策略使用XML來聲明。
27.如權(quán)利要求25所述的方法,其特征在于,所述內(nèi)嵌策略用編程語言來編碼。
28.如權(quán)利要求25所述的方法,其特征在于,還包括在提取所述內(nèi)嵌策略、載入所述應(yīng)用程序映像,并將所述已提取映像應(yīng)用于所述應(yīng)用程序映像之前,驗證所述應(yīng)用程序的完整性;以及在驗證所述應(yīng)用程序的完整性之后,提取所述內(nèi)嵌策略、載入所述應(yīng)用程序映像,并將所述已提取映像應(yīng)用于所述應(yīng)用程序映像。
29.如權(quán)利要求25所述的方法,其特征在于,還包括將所述已提取策略存儲在策略庫中。
30.一種用于從一個進程接收可應(yīng)用于另一進程的策略的系統(tǒng),所述系統(tǒng)包括更新進程,可操作以傳送可應(yīng)用于遺留應(yīng)用程序的策略,所述更新進程不是所述遺留應(yīng)用程序的進程;以及策略載入器組件,可操作以接收可應(yīng)用于遺留應(yīng)用程序的策略,所述策略載入器組件還可操作以將所述已接收策略存儲到策略庫中,并使得所述策略與所述遺留應(yīng)用程序相關(guān)聯(lián),從而所述已存儲策略應(yīng)用于所述應(yīng)用程序的實例。
31.如權(quán)利要求30所述的系統(tǒng),其特征在于,還包括應(yīng)用程序載入器組件,可操作以接收對載入所述遺留應(yīng)用程序的映像的請求,并可進一步操作以確定可應(yīng)用于所述遺留應(yīng)用程序的映像的策略在所述策略庫中是否存在,并響應(yīng)于確定可應(yīng)用于所述應(yīng)用程序的映像的策略存在而載入所述應(yīng)用程序映像;以及將所述策略應(yīng)用于所述應(yīng)用程序的映像。
32.如權(quán)利要求3 1所述的系統(tǒng),其特征在于,所述載入器組件還可操作以響應(yīng)于確定可應(yīng)用于所述應(yīng)用程序的映像的策略不存在,不載入所述應(yīng)用程序映像。
全文摘要
提供了用于設(shè)置并取消策略的實用程序。該實用程序接收來自主控進程的對受控進程設(shè)置策略的請求,并確定該主控進程是否具有對受控進程設(shè)置策略的特權(quán)。如果實用程序確定該主控進程具有對受控進程設(shè)置策略的特權(quán),則實用程序?qū)κ芸剡M程設(shè)置策略,這導(dǎo)致該策略應(yīng)用于受控進程以確定該受控進程是否具有對訪問一個或多個資源的授權(quán)。
文檔編號G06F9/46GK1808325SQ20051010886
公開日2006年7月26日 申請日期2005年9月30日 優(yōu)先權(quán)日2004年10月1日
發(fā)明者G·戈蘭, M·韋曼, S·A·費爾德 申請人:微軟公司