專利名稱:一種基于最小化特權(quán)原則的軟件行為控制方法
技術(shù)領(lǐng)域:
本發(fā)明提出了一種基于最小化特權(quán)原則的軟件行為控制方案,該方案可運(yùn)用于保護(hù)計算機(jī)操作系統(tǒng)免受惡意行為的破壞,屬于信息安全領(lǐng)域問題。
背景技術(shù):
現(xiàn)代化戰(zhàn)爭對信息的需求越來越強(qiáng)烈,以計算機(jī)為核心的信息設(shè)備在軍事領(lǐng)域大量采用,已成為軍事現(xiàn)代化和武器先進(jìn)程度的重要標(biāo)志,而以計算機(jī)為核心的信息網(wǎng)絡(luò)也已經(jīng)成為現(xiàn)代軍隊(duì)的神經(jīng)中樞,其性能優(yōu)劣和狀況好壞將直接影響軍隊(duì)?wèi)?zhàn)斗力及其發(fā)揮。 以爭奪制信息權(quán)為目標(biāo)的信息對抗,即“信息戰(zhàn)”,已經(jīng)成為決定戰(zhàn)爭勝負(fù)的關(guān)鍵。以計算機(jī)病毒和網(wǎng)絡(luò)蠕蟲等為代表的惡意代碼技術(shù),已經(jīng)確認(rèn)可以毀壞數(shù)據(jù)、中斷操作、影響和破壞系統(tǒng),并且能夠以低廉的方式進(jìn)行攻擊和傳播,因此被認(rèn)為是一種具有強(qiáng)大威力的軟武器, 在各國軍方的網(wǎng)絡(luò)和信息對抗技術(shù)中均受到了廣泛的關(guān)注。例如伊拉克戰(zhàn)爭中,美軍利用信息戰(zhàn)技術(shù)破壞無線電傳輸、電話設(shè)施、雷達(dá)傳輸系統(tǒng)等,以瓦解伊拉克的電信基礎(chǔ)設(shè)施, 成功地攻擊了伊拉克的指揮中心。因此,如何保護(hù)我們的信息網(wǎng)絡(luò)不受到惡意行為的侵害, 成了近年來的研究熱點(diǎn)。信息系統(tǒng)安全設(shè)計中有一條重要的原則,即最小特權(quán)原則。從目前網(wǎng)絡(luò)安全中所遭遇的諸多入侵攻擊手段來分析,都可以找到與最小特權(quán)原則的聯(lián)系。換句話說,如果有一種技術(shù)方案可以保障最小特權(quán)原則有效而又方便地實(shí)施,那么攻擊就可以得到有效的遏制,安全就可以得到有效保障。然而從當(dāng)前對攻擊的防范效果上看,該原則在系統(tǒng)中并未得到較好的遵循。最小特權(quán)原則是1975年由Mltzer J. H等人在研究計算機(jī)的信息保護(hù)時提出白勺(J. H. Saltzer and Μ. D. Schroeder.The protection of information in computer systems. Proceedings of the IEEE, 63 (9) :1278-1308, September 1975·),給出的定義是分配給系統(tǒng)中的每一個程序和每一個用戶的特權(quán)應(yīng)該是它們完成工作所必須享有的特權(quán)的最小集合。它被以后普遍接受為信息安全系統(tǒng)設(shè)計中要考慮的一個重要原則。從原則的定義中可以看出它具有以下實(shí)施特性(1)約束對象是系統(tǒng)中的行為主體。換句話說,原則的具體實(shí)施具有較強(qiáng)的主體針對性。(2)實(shí)施約束機(jī)制的外在性。特權(quán)就是一個進(jìn)程為了完成某些超常規(guī)的與安全相關(guān)的功能而必須具備的特殊權(quán)利。一個具備這種特權(quán)的進(jìn)程的活動可以對系統(tǒng)安全的方方面面產(chǎn)生重要的影響。對特權(quán)的濫用可導(dǎo)致非常嚴(yán)重的安全問題。因此獲得特權(quán)往往是惡意用戶實(shí)施攻擊的第一步。 例如通過web瀏覽器實(shí)施網(wǎng)絡(luò)入侵能夠成功的前提是它們最終以某種形式直接或間接的獲取了部分或全部的系統(tǒng)特權(quán),這樣它們才有能力以它們希望的方式控制系統(tǒng)內(nèi)的各種資源,譬如訪問文件、執(zhí)行代碼等。奪取特權(quán)并加以利用的“某種形式”往往是在特權(quán)下運(yùn)行入侵者設(shè)計的代碼,進(jìn)而利用系統(tǒng)內(nèi)的工具。所以從這個角度看,入侵成功的一個重要原因是系統(tǒng)在最小特權(quán)原則方面做的不夠或不嚴(yán)格。特權(quán)最終體現(xiàn)在對資源的占有和支配上,通過資源的最少化就可達(dá)到特權(quán)的最小化。如果將最小特權(quán)原則拓展為最少資源原則,即分配給系統(tǒng)中的每一個程序和每一個用戶的資源應(yīng)該是它們完成工作所必須享有的資源的最小集合(特權(quán)也可被看作一種資源)。所有利用應(yīng)用軟件漏洞或弱點(diǎn)實(shí)施的網(wǎng)絡(luò)攻擊都將會造成對該原則的違反。也就是說,設(shè)計系統(tǒng)安全保障機(jī)制時如能較好的遵循最少資源原則,將會取得更好的安全防范效^ ο最小特權(quán)原則在信息安全中的作用無疑是重要的,但根據(jù)其第一項(xiàng)實(shí)施特性可以看出,它僅是一個指導(dǎo)性原則。不同的系統(tǒng)、不同的對象最小特權(quán)的具體含義都是不同的, 只有將其與應(yīng)用邏輯捆綁在一起才能很好發(fā)揮其作用。原則中的所謂“最小”,基本上也是軟件設(shè)計人自己根據(jù)情況而定的。另一方面,由于受控對象是程序或用戶,它們之間存在差別且常常在變化之中,有著太多不確定的因素,這就給系統(tǒng)實(shí)施統(tǒng)一、精細(xì)的最小特權(quán)控制帶來了困難。很難實(shí)現(xiàn)單一的具有普遍適用性的最小特權(quán)機(jī)制去面對諸多變化的對象,這或許是最小特權(quán)原則未能在信息安全中發(fā)揮更大作用的重要因素。通常在操作系統(tǒng)中,軟件一旦編譯成二進(jìn)制執(zhí)行碼,那么它的執(zhí)行過程的集合就是確定的了。雖然不同的參數(shù)可能會使程序走過不同的路徑,所訪問的系統(tǒng)資源、使用的系統(tǒng)機(jī)制、運(yùn)行的時間也不盡相同,但對明確的功能要求卻是有明確的執(zhí)行過程(路徑)和系統(tǒng)資源集合與其相對應(yīng),也就是說軟件的執(zhí)行路徑和所需系統(tǒng)資源的集合是明確的、有限的,因此理論上也是完全可以控制的。此外,從用戶的使用邏輯來看,軟件的行為應(yīng)該符合常規(guī)的操作邏輯例如使用瀏覽器時,瀏覽器運(yùn)行時可能啟動下載工具、閱讀器等已知應(yīng)用程序,如果瀏覽器進(jìn)程啟動了某些未知進(jìn)程,則該行為是可疑的;瀏覽器在運(yùn)行過程中將訪問大量文件,包括程序本身運(yùn)行所需的文件支持和網(wǎng)絡(luò)交互過程中下載的大量臨時文件, 但是對系統(tǒng)文件的寫操作是可疑的;注冊表的訪問也是機(jī)器頻繁的,但未在用戶干預(yù)情況下修改自啟動項(xiàng)的行為也是可疑的。可見,軟件正常運(yùn)行期間其行為應(yīng)該包含于某些特定的行為集合。這一結(jié)論使得利用基于最小化特權(quán)原則的軟件安全解決方案成為可能。
發(fā)明內(nèi)容
技術(shù)問題本發(fā)明的目的是提供一種基于最小化特權(quán)原則的軟件行為控制方法, 運(yùn)用最小化特權(quán)原則設(shè)計并實(shí)現(xiàn)了一套能夠有效監(jiān)控軟件行為的系統(tǒng),該系統(tǒng)運(yùn)用了很多先進(jìn)的內(nèi)核技術(shù),能有效的防止軟件對操作系統(tǒng)的破壞。技術(shù)方法本發(fā)明運(yùn)用最小化特權(quán)原則,分析軟件行為集合,使用內(nèi)核層的系統(tǒng)行為監(jiān)控技術(shù),能有效的避免軟件運(yùn)行時的越界行為,從而避免軟件對操作系統(tǒng)的破壞。基于最小化特權(quán)原則的軟件行為控制方法具體實(shí)施步驟如下步驟1)根據(jù)最小化特權(quán)原則設(shè)置監(jiān)控模塊的參數(shù),存儲在注冊表中,由控制模塊接口讀出和存入;步驟2、創(chuàng)建進(jìn)程行為沙盒,軟件的所有進(jìn)程和子孫進(jìn)程以樹的形式組織,同一父進(jìn)程創(chuàng)建同名子進(jìn)程時,進(jìn)程的行為沙盒合并;步驟幻創(chuàng)建文件行為沙盒,進(jìn)程對文件訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上,
4位于臨時文件夾內(nèi)的文件行為受不完全關(guān)注;步驟4)創(chuàng)建注冊表行為沙盒,進(jìn)程對注冊表訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上,對注冊表鍵值的寫操以及創(chuàng)建新鍵的行為將觸發(fā)報警;步驟幻根據(jù)上述構(gòu)建的行為沙盒監(jiān)控進(jìn)程樹這一線索,如果是與用戶的交互或者對文件的操作,則需要對輸入/輸出請求包IRP(I/0 RequestPackage,)進(jìn)程過濾處理, 根據(jù)不同的功能請求控制碼來確定不同的操作;步驟6)如果是進(jìn)程及注冊表監(jiān)控,則不需要進(jìn)行IRP過濾處理;步驟7)監(jiān)控沒有異常情況,轉(zhuǎn)到5),繼續(xù)監(jiān)控;有異常情況則將報警信息主動、實(shí)時地傳遞到位于用戶層的控制模塊;步驟8)系統(tǒng)報警。有益效果本發(fā)明的目的是運(yùn)用最小化特權(quán)原則設(shè)計并實(shí)現(xiàn)了一套能夠全面有效監(jiān)控軟件行為的系統(tǒng),該系統(tǒng)運(yùn)用了很多先進(jìn)的內(nèi)核技術(shù),具有更好的穩(wěn)定性及更高的效率。全面性監(jiān)控模塊中包括進(jìn)程、文件、注冊表等各種信息的監(jiān)控。進(jìn)程監(jiān)控中,可以設(shè)置允許啟動的子進(jìn)程,進(jìn)程創(chuàng)建的最大深度。通過對這些敏感信息的全面監(jiān)控從而提高系統(tǒng)檢測的可靠性??煽啃韵到y(tǒng)在在經(jīng)過參數(shù)配置、規(guī)則設(shè)置之后,通過最小化特權(quán)原則完成行為沙盒的構(gòu)建,分配給系統(tǒng)中的每一個程序和每一個用戶的資源應(yīng)該是它們完成工作所必須享有的資源的最小集合。這樣所有利用應(yīng)用軟件漏洞或弱點(diǎn)實(shí)施的網(wǎng)絡(luò)攻擊都將被檢測為對系統(tǒng)的危害,從而產(chǎn)生報警,進(jìn)而提高系統(tǒng)的可靠性。穩(wěn)定性系統(tǒng)對進(jìn)程、文件、注冊表的監(jiān)控采用新的檢測隱藏Rootkit的設(shè)計方案,增強(qiáng)檢測Rootkit的能力,使得系統(tǒng)具有更高的穩(wěn)定性;報警模塊中,在監(jiān)控引擎生成是自動開辟一塊緩沖區(qū),并使用EVENT作為同步的方式,方便內(nèi)核程序和用戶的通信,從而提高系統(tǒng)穩(wěn)定性。
圖1是本發(fā)明的設(shè)計方案的主要模塊結(jié)構(gòu)圖。圖2是本發(fā)明的設(shè)計方案的主要流程圖。
具體實(shí)施例方式一、系統(tǒng)方法系統(tǒng)主要包括用戶層的控制模塊和內(nèi)核層監(jiān)控模塊兩個部分。用戶層控制模塊完成系統(tǒng)配置以及報警處理等功能,由用戶設(shè)定所監(jiān)控的一種或多種監(jiān)控軟件;監(jiān)控軟件行為沙盒的各項(xiàng)參數(shù)如允許創(chuàng)建的子進(jìn)程的層次數(shù)、是否對文件訪問類型進(jìn)行控制等;以及指定異常行為的響應(yīng)策略,如只報警或者報警并終止程序等。內(nèi)核監(jiān)控模塊以驅(qū)動方式實(shí)現(xiàn),包含用于接收用戶層命令的控制設(shè)備和設(shè)置于內(nèi)核中的多個行為監(jiān)控點(diǎn),系統(tǒng)首先經(jīng)過一個較為長期的訓(xùn)練過程以構(gòu)建行為沙盒,此后各監(jiān)控點(diǎn)根據(jù)用戶配置以及行為沙盒所包含的行為特征對軟件的整個運(yùn)行過程進(jìn)行監(jiān)視和控制。系統(tǒng)結(jié)構(gòu)如圖1所示控制模塊控制模塊負(fù)責(zé)完成監(jiān)控模塊的參數(shù)配置,規(guī)則庫的管理,報警信息的查閱、打印以及備份等工作。控制臺提供圖形化的管理平臺,用戶可以通過控制臺查看軟件進(jìn)程的靜態(tài)和動態(tài)信息,如訪問過的文件以及占用的資源等,可以進(jìn)行監(jiān)控規(guī)則的制定和部署以及相關(guān)報警記錄的查看和查詢。(1)參數(shù)配置監(jiān)控模塊的參數(shù)存儲在注冊表中,由控制模塊接口讀出和存入。這些參數(shù)包括受監(jiān)控軟件的路徑名,是否設(shè)定文件監(jiān)控,是否設(shè)定注冊表監(jiān)控,是否對軟件行為進(jìn)行審計, 設(shè)定異常行為的相應(yīng)方式等。(2)監(jiān)控規(guī)則監(jiān)控規(guī)則包括各種文件訪問、注冊表訪問規(guī)則,允許啟動的子進(jìn)程,進(jìn)程創(chuàng)建的最大深度。(3)報警信息查詢根據(jù)用戶的不同需求,控制模塊提供報警數(shù)據(jù)的各種查詢,如按照時間、報警級別、報警方式等。監(jiān)控模塊監(jiān)控模塊分布于系統(tǒng)內(nèi)核中的各個關(guān)鍵點(diǎn),完成軟件進(jìn)程的行為采集以及監(jiān)控功能。監(jiān)控模塊的功能依賴于行為沙盒的構(gòu)建,而整個行為沙盒中的結(jié)構(gòu)又是以進(jìn)程的創(chuàng)建關(guān)系為線索組織。(1)進(jìn)程監(jiān)控 負(fù)責(zé)軟件進(jìn)程行為的采集和控制。(2)文件監(jiān)控監(jiān)控軟件進(jìn)程的所有文件訪問行為,并根據(jù)用戶策略對行為進(jìn)行約束。(3)注冊表監(jiān)控監(jiān)控軟件的所有注冊表訪問行為,其中尤為重要的是對啟動項(xiàng)的監(jiān)控。二、方法流程系統(tǒng)的基本工作流程如下描述在安全的環(huán)境中,根據(jù)最小化特權(quán)原則可以將軟件程序的“行為”定義為為達(dá)到該軟件設(shè)計的全部或部分功能而向系統(tǒng)軟件操作平臺提出的服務(wù)、資源請求的有序操作的集合。對軟件行為進(jìn)行廣泛而全面的訓(xùn)練,形成準(zhǔn)確合理的行為集合即行為沙盒,作為此后軟件運(yùn)行的約束條件,當(dāng)該軟件進(jìn)程的行為超出了既定規(guī)則時,認(rèn)為異常事件發(fā)生。軟件程序使用該行為沙盒數(shù)據(jù)作為控制數(shù)據(jù),并將其應(yīng)用在系統(tǒng)內(nèi)核建立的一系列監(jiān)控機(jī)制上,程序進(jìn)入運(yùn)行后,其行為將嚴(yán)格受到經(jīng)過安全審計的行為沙盒的約束,一旦該軟件程序出現(xiàn)異常行為,系統(tǒng)會立即發(fā)現(xiàn)并給出報警信息,然后根據(jù)配置信息或者用戶反饋采取應(yīng)對措施。(1)行為沙盒構(gòu)建當(dāng)進(jìn)程開始運(yùn)行時,系統(tǒng)中預(yù)設(shè)的一系列行為監(jiān)控點(diǎn)根據(jù)用戶設(shè)定開始全面采集進(jìn)程行為,然后根據(jù)安全設(shè)定獲取行為特征信息集合,經(jīng)過信息處理和安全審計后構(gòu)建形成軟件程序的行為沙盒。參與行為構(gòu)建的系統(tǒng)監(jiān)控點(diǎn)主要包括三類關(guān)鍵位置進(jìn)程創(chuàng)建行為的發(fā)生點(diǎn),文件訪問的必經(jīng)位置,注冊表訪問的必經(jīng)位置。進(jìn)程創(chuàng)建軟件的所有進(jìn)程和子孫進(jìn)程以樹的形式組織,樹的每一個節(jié)點(diǎn)根據(jù)不同的位置代表一個瀏覽器進(jìn)程或者由瀏覽器進(jìn)程啟動的子進(jìn)程,每一個瀏覽器進(jìn)程或者其子孫進(jìn)程創(chuàng)建時,代表這一進(jìn)程的節(jié)點(diǎn)創(chuàng)建并按照父子關(guān)系插入到樹中。該節(jié)點(diǎn)中包含了記錄該進(jìn)程行為的所有位置,如當(dāng)前用戶的相關(guān)信息、文件行為和注冊表行為的特征規(guī)則等。同一父進(jìn)程創(chuàng)建同名子進(jìn)程時,進(jìn)程的行為沙盒合并。文件行為進(jìn)程對文件訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上,位于臨時文件夾內(nèi)的文件行為受不完全關(guān)注。所謂不完全關(guān)注是指文件可以被創(chuàng)建、打開、讀、寫,但不可以運(yùn)行執(zhí)行以及被拷貝。注冊表行為進(jìn)程對注冊表訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上,對注冊表鍵值的寫操以及創(chuàng)建新鍵的行為將觸發(fā)報警。(2)與用戶層接口控制模塊與監(jiān)控模塊的交互接口通過驅(qū)動程序中創(chuàng)建的控制設(shè)備完成兩大功能, 一是控制臺向監(jiān)控模塊傳遞配置參數(shù)、規(guī)則、命令,如監(jiān)控模塊的開啟和關(guān)閉、文件監(jiān)控功能的開啟和關(guān)閉、注冊表監(jiān)控功能的開啟和關(guān)閉、增加和刪除開放目錄的命令等,二是控制臺由監(jiān)控模塊提取報警信息。驅(qū)動程序中的控制設(shè)備gCtrlDevice在驅(qū)動的初始化例程中創(chuàng)建,控制臺利用 windows平臺中的接口 DeviceIoControl與該控制設(shè)備通信,DeviceIoControl接口可以指定輸入輸出緩沖區(qū),用以在控制臺和驅(qū)動程序之間傳遞數(shù)據(jù);內(nèi)核層調(diào)用IRP_MJ_DEVICE_ CONTROL例程處理該控制請求。DeviceloControl接口的一個重要參數(shù)是IOCTL控制碼,利用該控制碼,目標(biāo)驅(qū)動程序可以區(qū)分本次調(diào)用需要完成哪個功能。IOCTL碼大小為32-bit,遵循一個特定的結(jié)構(gòu)。 DDK包含一個用于生成IOCTL值的機(jī)制的宏CTL_C0DE。利用CTL_C0DE宏可以定義所需要的IOCTL碼。(3)監(jiān)控模塊位于內(nèi)核的監(jiān)控模塊是以內(nèi)核驅(qū)動的方式完成的,而各個監(jiān)控點(diǎn)都依賴于進(jìn)程樹這一線索,為減少各個監(jiān)控點(diǎn)和進(jìn)程監(jiān)控點(diǎn)之間交互的復(fù)雜度,所有的監(jiān)控點(diǎn)都利用同一個驅(qū)動程序完成,即在這一監(jiān)控驅(qū)動中,同時實(shí)現(xiàn)了進(jìn)程監(jiān)控、文件監(jiān)控、注冊表監(jiān)控等模塊。這勢必要求對驅(qū)動程序的框架有所調(diào)整,在關(guān)鍵入口處區(qū)分不同的請求源以完成不同的功能。在監(jiān)控驅(qū)動中,只有與用戶交互的控制功能和文件系統(tǒng)過濾驅(qū)動需要對IRP進(jìn)程過濾處理,而進(jìn)程監(jiān)控和注冊表監(jiān)控是對系統(tǒng)NATIVE API的掛鉤操作完成,不需要處理IRP請求包。如前所述,與用戶層通信的控制設(shè)備擁有全局名gCtrlDevice,當(dāng)監(jiān)控驅(qū)動收到某IRP時,可以根據(jù)IRP的目標(biāo)設(shè)備名判斷其分支路徑,如果deviceObject == gCtrlDevice,則該IRP請求包是用來完成用戶層控制臺的某控制請求,否則,該IRP請求包一定是發(fā)往文件系統(tǒng)的1/0請求,需要交由文件系統(tǒng)過濾驅(qū)動分支進(jìn)行處理。處理源于用戶層控制臺發(fā)送的IRP請求包時,請求包的主功能碼為IRP_Mj_ DEVICE_C0NTR0L,不同的功能請求由控制碼決定,其位置是irpStack- > Parameters. DeviceloControl. IoControlCode,這里使用switch分支處理不同的控制請求。
Switch(IoControlCode) {
case IOCTL_SYSTEM INITrbreak ;
case IOCTL_JOB_ADD:break;
case IOCTL—JOBSTATUS—SET:break;
case IOCTL_COLLECT:break ;
case IOCTL_SUBMIT_FRAME:break;
case IOCTL_SET_OPEN_DIR:break;
case IOCTL—EVENT_INIT:break;
case IOCTL_GET_ALARM_INFO:break;
default:break;
}發(fā)往文件系統(tǒng)的IRP請求包首先進(jìn)行進(jìn)程過濾,文件系統(tǒng)過濾驅(qū)動只處理受控進(jìn)程發(fā)起的文件訪問,未受控進(jìn)程發(fā)起的文件訪問不被文件系統(tǒng)過濾驅(qū)動做任何處理。受控進(jìn)程發(fā)出的文件訪問請求則根據(jù)不同的主功能碼對IRP進(jìn)行處理。(4)報警模塊報警信息的傳遞途徑與控制臺將命令發(fā)送到監(jiān)控引擎模式不同,監(jiān)控模塊產(chǎn)生的報警信息需要主動、實(shí)時地傳遞到位于用戶層的控制模塊,但是在windows平臺下,內(nèi)核中的驅(qū)動程序不能直接操作位于用戶空間的內(nèi)存區(qū)域,而且由內(nèi)核層向用戶層沒有直接的通信機(jī)制可以利用,這就增加了由內(nèi)核層向用戶層通信的復(fù)雜度。在本系統(tǒng)的設(shè)計中采取了一種變通的手段,監(jiān)控引擎加載時初始化一段緩沖區(qū), 當(dāng)內(nèi)核需要主動與用戶程序進(jìn)行數(shù)據(jù)通信時,將所傳遞數(shù)據(jù)寫如緩沖區(qū),然后利用某種同步手段通知用戶進(jìn)程(線程)到該緩沖區(qū)提取數(shù)據(jù),于是內(nèi)核驅(qū)動程序由主動方變化為被動方,用戶程序也即控制臺程序?qū)?nèi)核數(shù)據(jù)提取完成后數(shù)據(jù)緩沖清除并等待下一次通信。Windows平臺中同步機(jī)制有幾種實(shí)現(xiàn)方法,但狀態(tài)可控性的要求決定使用EVENT 作為本系統(tǒng)的實(shí)現(xiàn)手段更為合適??刂婆_程序啟動時,創(chuàng)建一個用戶同步的EVENT,置其狀態(tài)為unsigned,將該EVENT句柄傳遞到內(nèi)核驅(qū)動程序,驅(qū)動程序根據(jù)該句柄查找對應(yīng)的內(nèi)核對象。當(dāng)內(nèi)核監(jiān)控點(diǎn)發(fā)現(xiàn)異常行為時,向存儲報警信息的緩沖區(qū)內(nèi)寫入報警信息并將 EVENT置狀態(tài)為signed。用戶層的守護(hù)線程查詢到事件狀態(tài)改變后,訪問報警信息緩沖區(qū)并提取報警信息,然后重置EVENT的狀態(tài)為unsigned,至此完成一次完整的報警過程。為了方便描述,我們假定有如下應(yīng)用實(shí)例1)根據(jù)最小化特權(quán)原則設(shè)置監(jiān)控模塊的參數(shù),存儲在注冊表中,由控制模塊接口讀出和存入。2)創(chuàng)建進(jìn)程行為沙盒,軟件的所有進(jìn)程和子孫進(jìn)程以樹的形式組織,同一父進(jìn)程創(chuàng)建同名子進(jìn)程時,進(jìn)程的行為沙盒合并。3)創(chuàng)建文件行為沙盒,進(jìn)程對文件訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上,位于臨時文件夾內(nèi)的文件行為受不完全關(guān)注。4)創(chuàng)建注冊表行為沙盒,進(jìn)程對注冊表訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上, 對注冊表鍵值的寫操以及創(chuàng)建新鍵的行為將觸發(fā)報警。5)根據(jù)上述構(gòu)建的行為沙盒監(jiān)控進(jìn)程樹這一線索,如果是與用戶的交互或者對文件的操作,則IRP(I/O Request lockage,輸入/輸出請求包)進(jìn)程過濾處理,根據(jù)不同的功能請求控制碼來確定不同的操作。6)如果是進(jìn)程及注冊表監(jiān)控,則不需要進(jìn)行IRP過濾處理。7)監(jiān)控沒有異常情況,轉(zhuǎn)到幻,繼續(xù)監(jiān)控。8)有異常情況則將報警信息主動、實(shí)時地傳遞到位于用戶層的控制模塊。9)系統(tǒng)報警。
9
權(quán)利要求
1. 一種基于最小化特權(quán)原則的軟件行為控制方法,其特征在于該方法具體實(shí)施步驟如下步驟1)根據(jù)最小化特權(quán)原則設(shè)置監(jiān)控模塊的參數(shù),存儲在注冊表中,由控制模塊接口讀出和存入;步驟2、創(chuàng)建進(jìn)程行為沙盒,軟件的所有進(jìn)程和子孫進(jìn)程以樹的形式組織,同一父進(jìn)程創(chuàng)建同名子進(jìn)程時,進(jìn)程的行為沙盒合并;步驟幻創(chuàng)建文件行為沙盒,進(jìn)程對文件訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上,位于臨時文件夾內(nèi)的文件行為受不完全關(guān)注;步驟4)創(chuàng)建注冊表行為沙盒,進(jìn)程對注冊表訪問的行為被記錄于相應(yīng)的進(jìn)程節(jié)點(diǎn)上, 對注冊表鍵值的寫操以及創(chuàng)建新鍵的行為將觸發(fā)報警;步驟幻根據(jù)上述構(gòu)建的行為沙盒監(jiān)控進(jìn)程樹這一線索,如果是與用戶的交互或者對文件的操作,則需要對輸入/輸出請求包IRP進(jìn)程過濾處理,根據(jù)不同的功能請求控制碼來確定不同的操作;步驟6)如果是進(jìn)程及注冊表監(jiān)控,則不需要進(jìn)行IRP過濾處理; 步驟7)監(jiān)控沒有異常情況,轉(zhuǎn)到幻,繼續(xù)監(jiān)控;有異常情況則將報警信息主動、實(shí)時地傳遞到位于用戶層的控制模塊; 步驟8)系統(tǒng)報警。
全文摘要
一種基于最小化特權(quán)原則的軟件行為控制方法可運(yùn)用于保護(hù)計算機(jī)操作系統(tǒng)免受惡意行為的破壞,該方法具體實(shí)施步驟如下根據(jù)最小化特權(quán)原則設(shè)置監(jiān)控模塊的參數(shù),存儲在注冊表中,由控制模塊接口讀出和存入;創(chuàng)建進(jìn)程行為沙盒,創(chuàng)建文件行為沙盒,創(chuàng)建注冊表行為沙盒,根據(jù)上述構(gòu)建的行為沙盒監(jiān)控進(jìn)程樹這一線索,如果是與用戶的交互或者對文件的操作,則需要對IRP(I/O Request Package,輸入/輸出請求包)進(jìn)程過濾處理,根據(jù)不同的功能請求控制碼來確定不同的操作。如果是進(jìn)程及注冊表監(jiān)控,則不需要進(jìn)行IRP過濾處理;監(jiān)控沒有異常情況,轉(zhuǎn)到5),繼續(xù)監(jiān)控;有異常情況則將報警信息主動、實(shí)時地傳遞到位于用戶層的控制模塊;系統(tǒng)報警。
文檔編號G06F21/22GK102208004SQ20111012652
公開日2011年10月5日 申請日期2011年5月13日 優(yōu)先權(quán)日2011年5月13日
發(fā)明者張偉, 張登銀, 李鵬, 王汝傳, 肖甫, 趙曉強(qiáng) 申請人:南京郵電大學(xué)