專利名稱:用于合并安全策略的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
所描述的技術(shù)一般涉及防止軟件系統(tǒng)的易受攻擊性的惡意利用的安全系統(tǒng)。
背景技術(shù):
盡管因特網(wǎng)在方便計(jì)算機(jī)系統(tǒng)之間的通信和允許電子商務(wù)方面取得了巨大的成功,然而連接到因特網(wǎng)的計(jì)算機(jī)系統(tǒng)幾乎始終受到試圖破壞其操作的黑客的攻擊。許多攻擊試圖惡意利用軟件系統(tǒng),包括在那些計(jì)算機(jī)系統(tǒng)上執(zhí)行的應(yīng)用程序或其它計(jì)算機(jī)程序的易受攻擊性。軟件系統(tǒng)的開發(fā)者以及企業(yè)的計(jì)算機(jī)系統(tǒng)的管理員花了很大的努力和費(fèi)用來識別和移除易受攻擊性。然而,由于軟件系統(tǒng)的復(fù)雜性,實(shí)際上不可能在發(fā)行軟件系統(tǒng)之前識別和移除所有的易受攻擊性。在發(fā)行軟件系統(tǒng)之后,開發(fā)者可能以各種方式知道易受攻擊性。沒有惡意意圖的一方可識別易受攻擊性,并可秘密地通知開發(fā)者,因此該易受攻擊性可在黑客識別且惡意利用它之前被移除。如果黑客首先識別了易受攻擊性,則開發(fā)者在該易受攻擊性被惡意利用之前可能無法獲知它-這有時候會有災(zāi)難性的后果。
無論開發(fā)者如何找出易受攻擊性,開發(fā)者通常開發(fā)移除易受攻擊性的軟件系統(tǒng)“補(bǔ)丁”或更新并將它們分發(fā)到系統(tǒng)管理員。如果易受攻擊性尚未被惡意利用(例如,尚未被黑客所知),則開發(fā)者可以用要求的方式設(shè)計(jì)、實(shí)現(xiàn)、測試和分發(fā)補(bǔ)丁。如果該易受攻擊性已被廣泛地暴露,則開發(fā)者可能匆匆分發(fā)補(bǔ)丁,而不關(guān)心它是否在正常的環(huán)境下使用。當(dāng)補(bǔ)丁被分發(fā)到計(jì)算機(jī)系統(tǒng)的管理員時,他們負(fù)責(zé)調(diào)度和安裝補(bǔ)丁以移除易受攻擊性。
不幸的是,管理員通常為各種理由而延遲用于移除易受攻擊性的補(bǔ)丁的安裝。當(dāng)安裝補(bǔ)丁時,軟件系統(tǒng)和它所執(zhí)行的可能的計(jì)算機(jī)系統(tǒng)可能需要被關(guān)機(jī)或重啟。如果易受攻擊性是在對組織的成功關(guān)鍵的軟件系統(tǒng)內(nèi),則管理員需要分析保持軟件系統(tǒng)運(yùn)行、用被攻擊的相關(guān)聯(lián)風(fēng)險運(yùn)行、以及關(guān)閉企業(yè)的關(guān)鍵資源來安裝補(bǔ)丁之間的權(quán)衡。某些管理員可能延遲補(bǔ)丁的安裝,因?yàn)樗麄兒ε掠捎诖颐Φ姆职l(fā),該補(bǔ)丁可能未被正確地測試且具有非預(yù)期的副作用。如果補(bǔ)丁具有非預(yù)期的副作用,則由該補(bǔ)丁影響的軟件系統(tǒng)、計(jì)算機(jī)系統(tǒng)或某一其它軟件組件可能被補(bǔ)丁本身關(guān)閉。管理員在決定是否安裝補(bǔ)丁時需要將非預(yù)期的副作用的可能性計(jì)算在內(nèi)。這些管理員可能延遲安裝補(bǔ)丁,直到其他人的經(jīng)驗(yàn)指出沒有嚴(yán)重的非預(yù)期副作用。
開發(fā)了可用于識別是否正做出惡意利用尚未打補(bǔ)丁的已知易受攻擊性的入侵檢測系統(tǒng)。這些入侵檢測系統(tǒng)可用于防止尚未對其開發(fā)或安裝補(bǔ)丁的新發(fā)現(xiàn)的易受攻擊性的惡意利用。這些入侵檢測系統(tǒng)可為可惡意利用易受攻擊性的每一方法定義一“簽名”。例如,如果易受攻擊性可通過發(fā)送具有某一屬性的某一類型的消息來惡意利用,則該惡意利用的簽名可指定該類型和屬性。當(dāng)發(fā)生安全實(shí)施事件,諸如消息的接收,則該入侵檢測系統(tǒng)核查其簽名,以確定是否有任一個與安全實(shí)施事件相匹配。如果是,則入侵檢測系統(tǒng)可采取諸如丟棄該消息等行動來防止惡意利用。
新發(fā)現(xiàn)的易受攻擊性的惡意利用的簽名可以用不同的方式來創(chuàng)建。入侵檢測系統(tǒng)的開發(fā)者可在他們知道新惡意利用時創(chuàng)建和分發(fā)新簽名。管理員然后可安裝該新簽名來防止惡意利用。然而,開發(fā)者可能不提供所有已知惡意利用的新簽名。例如,易受攻擊性可以在開發(fā)者不支持的專用應(yīng)用程序內(nèi)。為防止這一易受攻擊性的惡意利用,入侵檢測系統(tǒng)可允許管理員創(chuàng)建其自己的簽名。
一個或多個簽名的集合可被認(rèn)為是安全策略。入侵檢測系統(tǒng)的開發(fā)者可提供各種安全策略。例如,開發(fā)者可提供定義操作系統(tǒng)上的易受攻擊性的簽名的一個安全策略,以及對應(yīng)用程序或一類應(yīng)用程序?qū)S玫脑S多其它安全策略。類似地,管理員可定義對由企業(yè)使用的自定義應(yīng)用程序?qū)S玫陌踩呗浴?br>
入侵檢測系統(tǒng)通常只能實(shí)施一種安全策略。在這一情況下,需要將多個安全策略組合或合并成提供給入侵檢測系統(tǒng)的單個安全策略。為組合安全策略,入侵檢測系統(tǒng)的開發(fā)者或管理員通??蓪忛喐鞣N安全策略,并試圖合并簽名的邏輯,使得可以實(shí)現(xiàn)每一安全策略的凈效果。然而,由于簽名可能非常復(fù)雜,且不同的安全策略之間的交互效果也可能是復(fù)雜且微妙的,因此安全策略的組合可以是耗時且易于出錯的。
期望具有一種可將安全策略的效果自動組合成可被有效地實(shí)施的組合安全策略的機(jī)制。
發(fā)明內(nèi)容
提供了一種用于組合和實(shí)施安全策略的方法和系統(tǒng)。向安全系統(tǒng)提供具有進(jìn)程集準(zhǔn)則和相關(guān)聯(lián)的規(guī)則的安全策略。進(jìn)程集準(zhǔn)則定義了向其應(yīng)用相關(guān)聯(lián)的規(guī)則的進(jìn)程或應(yīng)用程序的屬性。規(guī)則提供了條件以及當(dāng)滿足條件時要執(zhí)行的動作。安全系統(tǒng)在用戶模式中組合安全策略,并在內(nèi)核模式中實(shí)施組合的安全策略。該安全系統(tǒng)通過生成一規(guī)則列表來組合安全策略,該規(guī)則列表是安全策略的規(guī)則的列表。規(guī)則列表的每一規(guī)則具有從該安全策略導(dǎo)出的相關(guān)聯(lián)進(jìn)程集準(zhǔn)則。規(guī)則列表的規(guī)則是基于規(guī)則類型(例如,全局規(guī)則)和規(guī)則的動作來排序的。該安全系統(tǒng)在內(nèi)核模式中使用規(guī)則列表來實(shí)施安全策略。當(dāng)啟動新進(jìn)程來執(zhí)行應(yīng)用程序時,該安全系統(tǒng)確定應(yīng)用程序是否滿足進(jìn)程集準(zhǔn)則。該安全系統(tǒng)然后標(biāo)識規(guī)則列表中與滿足的進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的規(guī)則。該安全系統(tǒng)將這些所標(biāo)識的規(guī)則與進(jìn)程相關(guān)聯(lián)。當(dāng)發(fā)生與進(jìn)程相關(guān)聯(lián)的安全實(shí)施事件時,該安全系統(tǒng)以規(guī)則列表中指定的順序?qū)⑴c該進(jìn)程相關(guān)聯(lián)的每一規(guī)則應(yīng)用于該安全實(shí)施事件。
圖1上示出一個實(shí)施例中安全系統(tǒng)的組件的框圖。
圖2是示出一個實(shí)施例中安全系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)的框圖。
圖3是示出一個實(shí)施例中規(guī)則生成器的準(zhǔn)備規(guī)則組件的處理的流程圖。
圖4是示出一個實(shí)施例中規(guī)則生成器的合并組件的處理的流程圖。
圖5是示出一個實(shí)施例中初始化規(guī)則矢量組件的處理的流程圖。
圖6是示出一個實(shí)施例中檢索規(guī)則矢量組件的處理的流程圖。
圖7是示出一個實(shí)施例中更新進(jìn)程集準(zhǔn)則組件的處理的流程圖。
圖8是一個實(shí)施例中安全引擎組件的實(shí)施規(guī)則子組件的處理的流程圖。
具體實(shí)施例方式
提供了一種用于組合和實(shí)施安全策略的方法和系統(tǒng)。要實(shí)施的安全策略的集合表示組織的總體安全策略。在一個實(shí)施例中,向安全系統(tǒng)提供具有進(jìn)程集準(zhǔn)則和相關(guān)聯(lián)的規(guī)則的安全策略。進(jìn)程集準(zhǔn)則定義了要向其應(yīng)用相關(guān)聯(lián)的規(guī)則的進(jìn)程或應(yīng)用程序的屬性。例如,進(jìn)程集準(zhǔn)則可以是應(yīng)用程序名稱的列表,或定義匹配的應(yīng)用程序名稱的正則表達(dá)式??捎糜谶M(jìn)程集準(zhǔn)則的應(yīng)用程序的其它屬性包括包含可執(zhí)行文件的目錄的名稱、應(yīng)用程序的開發(fā)者(例如,微軟)、與應(yīng)用程序相關(guān)聯(lián)的注冊表?xiàng)l目等等。如果進(jìn)程正在執(zhí)行與進(jìn)程集準(zhǔn)則相匹配的應(yīng)用程序,則相關(guān)聯(lián)的規(guī)則應(yīng)用于該進(jìn)程。每一規(guī)則可具有規(guī)則類型、條件和動作。例如,規(guī)則類型可指定規(guī)則是全局的、應(yīng)用程序?qū)S玫倪€是默認(rèn)的。全局規(guī)則應(yīng)用于滿足與該規(guī)則相關(guān)聯(lián)的進(jìn)程集準(zhǔn)則的所有進(jìn)程。應(yīng)用程序?qū)S靡?guī)則僅應(yīng)用于滿足與該規(guī)則相關(guān)聯(lián)的進(jìn)程集準(zhǔn)則且由該規(guī)則進(jìn)一步具體標(biāo)識的那些進(jìn)程。默認(rèn)規(guī)則在沒有全局規(guī)則或應(yīng)用程序?qū)S靡?guī)則適用時應(yīng)用。在一個實(shí)施例中,規(guī)則類型指以下詳細(xì)描述的“執(zhí)行范圍”。
安全系統(tǒng)在用戶模式中組合安全策略,并在內(nèi)核模式中實(shí)施組合的安全策略。安全系統(tǒng)通過生成規(guī)則列表來組合安全策略,該規(guī)則列表是包括安全策略的規(guī)則的列表。規(guī)則列表的每一規(guī)則具有從該安全策略導(dǎo)出的相關(guān)聯(lián)的進(jìn)程集準(zhǔn)則。此外,規(guī)則列表的規(guī)則是基于規(guī)則類型和規(guī)則的動作來排序的。例如,全局規(guī)則可被排序在應(yīng)用程序?qū)S靡?guī)則之前,而應(yīng)用程序?qū)S靡?guī)則可被排序在默認(rèn)規(guī)則之前。具有相同規(guī)則類型的每一組規(guī)則被稱為“規(guī)則集”。在每一規(guī)則集內(nèi),規(guī)則可基于其動作來排序。例如,具有“拒絕”動作的規(guī)則可被排序在具有“允許”動作的規(guī)則之前。
安全系統(tǒng)在內(nèi)核模式中適用規(guī)則列表來實(shí)施安全策略。當(dāng)啟動新進(jìn)程來執(zhí)行應(yīng)用程序時,安全系統(tǒng)確定該應(yīng)用程序滿足進(jìn)程集準(zhǔn)則。安全系統(tǒng)然后標(biāo)識規(guī)則列表中與所滿足的進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的規(guī)則。安全系統(tǒng)將所標(biāo)識的規(guī)則與進(jìn)程相關(guān)聯(lián)。當(dāng)發(fā)生與該進(jìn)程相關(guān)聯(lián)的安全實(shí)施事件時,安全系統(tǒng)以由規(guī)則列表指定的順序?qū)⑴c該進(jìn)程相關(guān)聯(lián)的每一規(guī)則應(yīng)用于安全實(shí)施事件。如果滿足適用規(guī)則的條件,且相關(guān)聯(lián)的動作是拒絕,則安全系統(tǒng)拒絕與該安全實(shí)施事件相關(guān)聯(lián)的活動,并停止應(yīng)用這些規(guī)則。
該安全系統(tǒng)支持安全策略的動態(tài)更新和實(shí)施??傮w安全策略可通過添加新安全策略或更新現(xiàn)有的安全策略來更新。安全策略可以通過改變進(jìn)程集準(zhǔn)則或規(guī)則來更新。當(dāng)總體安全策略被更新時,該安全系統(tǒng)重新生成規(guī)則列表,并提供改變的指示。內(nèi)核模式中的安全系統(tǒng)識別改變,并動態(tài)地更新與執(zhí)行進(jìn)程相關(guān)聯(lián)的規(guī)則。
通過基于規(guī)則類型選擇性地排序規(guī)則并通過將進(jìn)程集準(zhǔn)則映射到相關(guān)聯(lián)的規(guī)則,安全系統(tǒng)可自動組合和有效地實(shí)施安全策略。
在一個實(shí)施例中,安全策略包括指定條件、動作和可任選例外的規(guī)則。例如,規(guī)則可指示應(yīng)用程序不能在除端口80以外的任何網(wǎng)絡(luò)端口上接收消息。該規(guī)則的條件可檢測消息在除端口80以外的網(wǎng)絡(luò)端口上接收,且拒絕動作可導(dǎo)致消息被丟棄。作為另一實(shí)例,規(guī)則可指示當(dāng)應(yīng)用程序試圖在網(wǎng)絡(luò)端口80上發(fā)送消息時,將從在其上實(shí)施該規(guī)則的計(jì)算系統(tǒng)的用戶請求授權(quán)。規(guī)則可基于其行為被歸類成安全類型。例如,具有網(wǎng)絡(luò)安全類型的規(guī)則可被定向到網(wǎng)絡(luò)話務(wù)的安全實(shí)施。每一安全類型可具有其自己的安全引擎,用于實(shí)施該安全類型的規(guī)則。
規(guī)則的條件、動作和例外可被指定為表達(dá)式。規(guī)則可在語義上被表達(dá)為“IF條件THEN動作EXCEPT例外”。規(guī)則的條件是要在其下執(zhí)行規(guī)則的安全實(shí)施動作的情況的表達(dá)式。動作是當(dāng)滿足條件時要執(zhí)行的活動的表達(dá)式。規(guī)則可以具有多個動作。例外是即使?jié)M足了條件也不會被執(zhí)行的動作的表達(dá)式。條件可以是靜態(tài)或動態(tài)的。靜態(tài)條件是例如被稱為硬編碼文件列表的條件。動態(tài)條件是例如執(zhí)行查詢來確定與提供的準(zhǔn)則相匹配的文件列表的條件。安全實(shí)施動作可包括允許引起安全實(shí)施事件的請求、拒絕請求、向用戶請求輸入、通知用戶等等。其它規(guī)則構(gòu)造也是可能的。作為一個示例,可添加“else”結(jié)構(gòu)以當(dāng)條件為假時執(zhí)行備選的動作。
在一個實(shí)施例中,安全策略可指定默認(rèn)規(guī)則和動作。當(dāng)安全實(shí)施事件不滿足安全政策的規(guī)則的任何條件時,可執(zhí)行默認(rèn)動作。例如,一個安全政策的默認(rèn)動作可以是允許生成安全實(shí)施事件的活動,而另一安全政策的默認(rèn)動作可以是拒絕該活動。
安全政策可組合成多個規(guī)則范圍。范圍可以在各種級別上定義,并且這些級別可具有分層關(guān)系。例如,范圍可在應(yīng)用程序級別、執(zhí)行級別和保護(hù)級別定義。每一應(yīng)用程序級別可具有執(zhí)行級別,而每一執(zhí)行級別可具有保護(hù)級別。應(yīng)用程序級別范圍可標(biāo)識與軟件資源相關(guān)聯(lián)的所有規(guī)則。在一個實(shí)施例中,應(yīng)用程序級別范圍定義了一組規(guī)則的進(jìn)程集準(zhǔn)則,而執(zhí)行級別和保護(hù)級別范圍可以是規(guī)則條件的一部分。例如,應(yīng)用程序級別范圍可以對網(wǎng)絡(luò)保護(hù)棧、web瀏覽器應(yīng)用程序、文字處理應(yīng)用程序以及數(shù)據(jù)庫應(yīng)用程序指示。執(zhí)行級別范圍可以標(biāo)識與應(yīng)用程序的執(zhí)行環(huán)境相關(guān)聯(lián)的規(guī)則。作為一個示例,web瀏覽應(yīng)用程序可具有用于其超文本傳輸協(xié)議、文件傳輸協(xié)議以及“telnet”執(zhí)行環(huán)境的執(zhí)行級別范圍。每一執(zhí)行級別范圍可具有一個或多個保護(hù)級別范圍。保護(hù)級別范圍可標(biāo)識規(guī)則是全局的、資源專用的還是默認(rèn)的。當(dāng)規(guī)則為全局時,規(guī)則應(yīng)用于在應(yīng)用程序級別和執(zhí)行級別范圍內(nèi)的所有進(jìn)程,而不管引起安全實(shí)施事件的資源是什么(例如,文件系統(tǒng))。當(dāng)規(guī)則為資源專用時,規(guī)則僅在所標(biāo)識的資源引起與該規(guī)則有關(guān)的安全實(shí)施事件時才適用。當(dāng)規(guī)則為默認(rèn)時,規(guī)則可應(yīng)用于未在資源專用規(guī)則中具體標(biāo)識的所有資源。
圖1是示出一個實(shí)施例中安全系統(tǒng)的組件的框圖。安全系統(tǒng)100包括用戶模式組件110和內(nèi)核模式組件120。用戶模式組件包括策略管理器組件111、策略存儲112、規(guī)則生成器組件113、進(jìn)程集表114、規(guī)則表115。策略管理器組件從策略存儲檢索安全策略、為安全策略生成保護(hù)對象、以及向規(guī)則生成器組件提供保護(hù)對象。策略管理器組件為安全策略內(nèi)的每一類型的規(guī)則和進(jìn)程集準(zhǔn)則生成保護(hù)對象。由此,保護(hù)對象包括規(guī)則類型、進(jìn)程集策略以及相關(guān)聯(lián)的規(guī)則集。規(guī)則生成器組件輸入保護(hù)對象,并生成儲存在進(jìn)程集表和規(guī)則表中的規(guī)則列表。規(guī)則生成器組件對保護(hù)對象中的每一進(jìn)程集準(zhǔn)則,向進(jìn)程集表添加條目。規(guī)則生成器組件將保護(hù)對象的規(guī)則集分割成多個規(guī)則集,其每一個具有同一動作類型。例如,對具有拒絕動作的那些規(guī)則生成一個規(guī)則集,而對具有允許動作的那些規(guī)則生成一個單獨(dú)的規(guī)則集。規(guī)則集的這一分割方便了基于動作的規(guī)則排序。規(guī)則生成器組件也對與保護(hù)對象相關(guān)聯(lián)的默認(rèn)動作創(chuàng)建規(guī)則集。規(guī)則生成器組件然后將每一規(guī)則集的每一規(guī)則儲存在規(guī)則表中。規(guī)則表中的規(guī)則是依照規(guī)則類型其依照規(guī)則動作在規(guī)則類型內(nèi)排序的。每一分割規(guī)則集表示了規(guī)則集內(nèi)規(guī)則的相鄰排序。規(guī)則生成器組件設(shè)置進(jìn)程集表的條目,以指向與該條目的進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的每一規(guī)則。例如,如果進(jìn)程集準(zhǔn)則與五個不同的規(guī)則相關(guān)聯(lián),則該進(jìn)程集準(zhǔn)則的條目將標(biāo)識五個規(guī)則。在生成規(guī)則列表(即,進(jìn)程集表和規(guī)則表)之后,安全系統(tǒng)的用戶模式組件通知內(nèi)核模式組件。
安全系統(tǒng)的內(nèi)核模式組件包括安全引擎組件121、進(jìn)程/規(guī)則矢量表122以及規(guī)則引擎組件123。只要安全實(shí)施事件發(fā)生,就通知規(guī)則引擎組件。安全引擎組件標(biāo)識向其應(yīng)用事件的進(jìn)程,并從該進(jìn)程的進(jìn)程/規(guī)則矢量表檢索規(guī)則矢量。規(guī)則矢量標(biāo)識了規(guī)則表內(nèi)適用于該進(jìn)程的規(guī)則。安全引擎組件然后以基于規(guī)則表的排序的順序?qū)⒁?guī)則矢量的每一規(guī)則應(yīng)用于安全實(shí)施事件。安全引擎組件調(diào)用規(guī)則引擎組件來提供用于進(jìn)程的規(guī)則矢量。規(guī)則引擎組件標(biāo)識進(jìn)程所滿足的進(jìn)程集準(zhǔn)則,并檢索與進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的每一規(guī)則的指示。規(guī)則引擎組件然后將規(guī)則的標(biāo)識組合成規(guī)則矢量,該規(guī)則矢量然后被提供給安全引擎組件。
在其上實(shí)現(xiàn)安全系統(tǒng)的計(jì)算設(shè)備可包括中央處理單元、存儲器、輸入設(shè)備(例如,鍵盤和定位設(shè)備)、輸出設(shè)備(例如,顯示設(shè)備)以及存儲設(shè)備(例如,盤驅(qū)動器)。存儲器和存儲設(shè)備是可包含實(shí)現(xiàn)安全系統(tǒng)的指令的計(jì)算機(jī)可讀介質(zhì)。另外,數(shù)據(jù)結(jié)構(gòu)和消息結(jié)構(gòu)可被儲存在諸如通信鏈路上的信號等數(shù)據(jù)傳輸介質(zhì)上或通過其來發(fā)送??墒褂酶鞣N通信鏈路,如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)、點(diǎn)對點(diǎn)撥號連接、蜂窩電話網(wǎng)絡(luò)等等。
安全系統(tǒng)可以在各種環(huán)境中實(shí)現(xiàn),包括個人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程消費(fèi)者電子產(chǎn)品、數(shù)碼相機(jī)、網(wǎng)絡(luò)PC、小型機(jī)、大型機(jī)、包括以上系統(tǒng)或設(shè)備的任一個的分布式計(jì)算環(huán)境等等??蛻魴C(jī)計(jì)算機(jī)系統(tǒng)可以是蜂窩電話、個人數(shù)字助理、智能電話、個人計(jì)算機(jī)、可編程消費(fèi)者電子產(chǎn)品、數(shù)碼相機(jī)等等。
該安全系統(tǒng)可以在諸如由一個或多個計(jì)算機(jī)或其它設(shè)備執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文環(huán)境中描述。一般而言,程序模塊包括例程、程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。通常,程序模塊的功能可如各種實(shí)施例中所需要的組合或分布。
圖2是示出一個實(shí)施例中安全系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)的框圖。規(guī)則列表210包括進(jìn)程集表211和規(guī)則表212。進(jìn)程集表包括用于安全策略的每一進(jìn)程集準(zhǔn)則的條目。每一條目將進(jìn)程集準(zhǔn)則映射到規(guī)則表中相關(guān)聯(lián)的規(guī)則。規(guī)則表包含用于安全策略的每一規(guī)則的條目。該條目標(biāo)識了規(guī)則的條件、動作和例外。規(guī)則表的規(guī)則是基于規(guī)則類型和動作來排序的。進(jìn)程/規(guī)則矢量映射220標(biāo)識了適用于每一進(jìn)程的規(guī)則。該映射包括用于每一進(jìn)程的條目,它標(biāo)識了該進(jìn)程和相關(guān)聯(lián)的規(guī)則矢量。本領(lǐng)域的技術(shù)人員可以理解,這些數(shù)據(jù)結(jié)構(gòu)示出了數(shù)據(jù)結(jié)構(gòu)的一種可能的邏輯組織。取決于存儲器使用和計(jì)算速度目標(biāo),數(shù)據(jù)結(jié)構(gòu)的其它組織可以是適當(dāng)?shù)摹?br>
圖3是示出一個實(shí)施例中規(guī)則生成器的準(zhǔn)備規(guī)則組件的處理的流程圖。該組件在用戶特許模式中執(zhí)行。該組件循環(huán)處理由策略管理器組件提供的每一保護(hù)對象。在框301,該組件選擇下一保護(hù)對象。在判別框302,如果所有的保護(hù)對象都已被選擇過,則該組件完成,否則該組件繼續(xù)到框303。在框303,該組件基于規(guī)則的動作將保護(hù)對象的規(guī)則分割成各種規(guī)則集。在框304,該組件為默認(rèn)動作創(chuàng)建規(guī)則集。在框305-307,該組件向規(guī)則列表循環(huán)添加規(guī)則集的規(guī)則。在框305,該組件選擇下一規(guī)則集。在判別框306,如果所有的規(guī)則集都已被選擇過,則該組件循環(huán)到框301以選擇下一保護(hù)對象,否則該組件繼續(xù)到框307。在框307,該組件調(diào)用一合并組件,它傳遞保護(hù)對象的所選中的規(guī)則集以及進(jìn)程集準(zhǔn)則,以將規(guī)則和進(jìn)程集準(zhǔn)則添加到規(guī)則列表。該組件然后循環(huán)到框305以選擇下一規(guī)則集。
圖4是示出一個實(shí)施例中規(guī)則生成器的合并組件的處理的流程圖。該組件在用戶模式中執(zhí)行。向該組件傳遞規(guī)則集和進(jìn)程集準(zhǔn)則。該組件向規(guī)則列表的規(guī)則表添加規(guī)則集的每一規(guī)則,并相應(yīng)地更新進(jìn)程集表。在框401,該組件核查進(jìn)程集表中是否包含所傳遞的進(jìn)程集準(zhǔn)則的條目。在判別框402,如果找到條目,則該組件在框404,繼續(xù),否則該組件在框403繼續(xù)。在框403,該組件在進(jìn)程集表中為所傳遞的進(jìn)程集準(zhǔn)則創(chuàng)建新條目。在框404,該組件搜索規(guī)則表內(nèi)用于所傳遞的規(guī)則集的規(guī)則的適當(dāng)?shù)牟迦朦c(diǎn)。適當(dāng)?shù)牟迦朦c(diǎn)是基于規(guī)則類型和動作排序來標(biāo)識的。在框405,該組件在規(guī)則表內(nèi)的插入點(diǎn)處插入規(guī)則集的規(guī)則。在框406,該組件更新進(jìn)程集表中用于所傳遞的進(jìn)程集準(zhǔn)則的條目。當(dāng)規(guī)則由規(guī)則表內(nèi)的索引標(biāo)識時,該組件可能需要更新進(jìn)程集表中的其它條目以反映規(guī)則表內(nèi)的新位置。或者,可在組合和實(shí)施被優(yōu)化成專用進(jìn)程的進(jìn)程期間使用規(guī)則表的不同數(shù)據(jù)結(jié)構(gòu)。例如,在組合時可使用鏈表數(shù)據(jù)結(jié)構(gòu),而在實(shí)施時可使用簡單列表數(shù)據(jù)結(jié)構(gòu)。該組件然后返回。
圖5是示出一個實(shí)施例中初始化規(guī)則矢量組件的處理的流程圖。該組件在內(nèi)核模式中執(zhí)行,并且可以是規(guī)則引擎組件的子組件。該組件可在安全引擎組件啟動時調(diào)用。該組件訪問規(guī)則列表的信息(例如,通過共享存儲器),并生成進(jìn)程的規(guī)則矢量。在框501,該規(guī)則選擇當(dāng)前正在執(zhí)行的下一進(jìn)程。在判別框502,如果所有的進(jìn)程都已被選擇過,則該組件完成,否則該組件繼續(xù)到框503。在框503,該組件調(diào)用檢索規(guī)則矢量組件以檢索所選中進(jìn)程的規(guī)則矢量。在框504,該組件在進(jìn)程/規(guī)則矢量映射中儲存用于所選中的進(jìn)程和規(guī)則矢量組合的條目。該組件然后循環(huán)到框501以選擇下一進(jìn)程。
圖6是示出一個實(shí)施例中檢索規(guī)則矢量的處理的流程圖。向該組件傳遞一進(jìn)程標(biāo)識符,并且該組件標(biāo)識進(jìn)程所滿足的進(jìn)程集準(zhǔn)則。該組件然后創(chuàng)建標(biāo)識與所滿足的進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的每一規(guī)則的規(guī)則矢量。在框601,該組件選擇下一進(jìn)程集準(zhǔn)則。在判別框602,如果所有的進(jìn)程集準(zhǔn)則都被選擇過,則該組件繼續(xù)到框605,否則該組件繼續(xù)到框603。在判別框603,如果所傳遞的進(jìn)程滿足所選擇的進(jìn)程集準(zhǔn)則,則該組件繼續(xù)到框604,否則該組件循環(huán)到框601以選擇下一進(jìn)程集準(zhǔn)則。在框604,該組件向規(guī)則矢量添加與選中的進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的規(guī)則,并且然后循環(huán)到框601以選擇下一進(jìn)程集準(zhǔn)則。在框605,該組件對規(guī)則矢量內(nèi)的規(guī)則排序、移除任何重復(fù)的規(guī)則,然后返回。
圖7是示出一個實(shí)施例中更新進(jìn)程集準(zhǔn)則組件的處理的流程圖。該組件在修改進(jìn)程集準(zhǔn)則時調(diào)用。在框701,該組件選擇當(dāng)前在計(jì)算機(jī)上執(zhí)行的下一進(jìn)程。在判別框702,如果所有的進(jìn)程都已被選擇過,則該組件完成,否則該組件繼續(xù)到框703。在判別框703,如果存在從更新中所導(dǎo)致的、關(guān)于所選中的進(jìn)程是否滿足進(jìn)程集準(zhǔn)則的變化,則該組件繼續(xù)到框704,否則該組件循環(huán)到框701以選擇下一進(jìn)程。當(dāng)選中的進(jìn)程僅滿足先前的或更新的進(jìn)程集準(zhǔn)則中的一個時,從更新中導(dǎo)致變化。在框704,該組件對所選中的進(jìn)程生成新的規(guī)則矢量。在框705,該組件向安全引擎組件通知對規(guī)則矢量的變化,并且然后循環(huán)到框701以選擇下一進(jìn)程。安全引擎在被通知之后可使用所改變的規(guī)則矢量來啟動,以影響安全策略的動態(tài)更新和實(shí)施。
圖8是示出一個實(shí)施例中安全引擎組件的實(shí)施規(guī)則子組件的處理的流程圖。該組件在內(nèi)核模式執(zhí)行,并且向該組件傳遞進(jìn)程標(biāo)識符和安全實(shí)施事件。該組件向安全實(shí)施事件應(yīng)用由該進(jìn)程的規(guī)則矢量所標(biāo)識的規(guī)則。在框801,該組件檢索所標(biāo)識的進(jìn)程的規(guī)則矢量。在框802,該組件按順序選擇規(guī)則矢量的內(nèi)下一規(guī)則。在判別框803,如果規(guī)則矢量的所有規(guī)則都已被選擇過,則該組件完成,否則該組件繼續(xù)到框804。在判別框804,如果滿足所選中規(guī)則的條件,則該組件繼續(xù)到框805,否則該組件循環(huán)到框802以選擇下一規(guī)則。在判別框805,如果不滿足規(guī)則的例外,則該組件繼續(xù)到框806,否則該組件循環(huán)到框802以選擇下一規(guī)則。在框806,該組件執(zhí)行規(guī)則的動作然后完成。
從以上內(nèi)容,可以理解,此處為說明的目的描述了該安全系統(tǒng)的具體實(shí)施例,但是可在不脫離本發(fā)明的精神和范圍的情況下做出各種修改。因此,本發(fā)明除所附權(quán)利要求書之外不受任何限制。
權(quán)利要求
1.計(jì)算機(jī)系統(tǒng)中一種用于實(shí)施安全策略的方法,所述方法包括提供安全策略,所述安全策略具有一進(jìn)程集準(zhǔn)則,并具有一個或多個規(guī)則,每一規(guī)則具有規(guī)則類型、條件和動作;在第一特許模式中,生成一規(guī)則列表,所述規(guī)則列表包括所述安全策略的規(guī)則的列表,所述規(guī)則列表中的每一規(guī)則與包括所述規(guī)則的安全策略中的進(jìn)程集準(zhǔn)則相關(guān)聯(lián),所述規(guī)則列表是根據(jù)規(guī)則類型和動作來排序的;以及在第二特許模式中,當(dāng)啟動進(jìn)程時,標(biāo)識所述規(guī)則列表中與由所述進(jìn)程滿足的一個或多個進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的規(guī)則;以及當(dāng)發(fā)生與所述進(jìn)程有關(guān)的安全事件時,以所述規(guī)則列表的順序向所述安全事件應(yīng)用所標(biāo)識的規(guī)則。
2.如權(quán)利要求1所述的方法,其特征在于,所述第一特許模式是用戶模式,而所述第二特許模式是內(nèi)核模式。
3.如權(quán)利要求1所述的方法,其特征在于,包括當(dāng)進(jìn)程集準(zhǔn)則改變時,在所述第一特許模式中,更新所述規(guī)則列表的進(jìn)程集準(zhǔn)則;以及向所述第二特許模式提供通知;以及在所述第二特許模式中,重新標(biāo)識所述規(guī)則列表中用于所述進(jìn)程的規(guī)則,使得當(dāng)發(fā)生與所述進(jìn)程有關(guān)的下一安全事件時,所重新標(biāo)識的規(guī)則可被應(yīng)用。
4.如權(quán)利要求1所述的方法,其特征在于,當(dāng)改變安全策略時,為進(jìn)程所標(biāo)識的規(guī)則被動態(tài)地更新。
5.如權(quán)利要求1所述的方法,其特征在于,所述規(guī)則類型包括全局、應(yīng)用程序?qū)S煤湍J(rèn)執(zhí)行范圍。
6.如權(quán)利要求6所述的方法,其特征在于,排序所述規(guī)則,使得全局在應(yīng)用程序?qū)S弥?,而?yīng)用程序?qū)S迷谀J(rèn)之前。
7.如權(quán)利要求1所述的方法,其特征在于,所述動作包括拒絕和允許,且在每一規(guī)則類型內(nèi),具有拒絕動作的規(guī)則被排序在具有允許動作的規(guī)則之前。
8.如權(quán)利要求1所述的方法,其特征在于,所述規(guī)則列表包括每一進(jìn)程集準(zhǔn)則到相關(guān)聯(lián)的規(guī)則的映射。
9.一種包含用于控制計(jì)算機(jī)系統(tǒng)通過一種方法來合并安全策略的指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括提供安全策略,所述安全策略具有一進(jìn)程集準(zhǔn)則,并具有一個或多個規(guī)則,每一規(guī)則具有規(guī)則類型、條件和動作;以及生成一規(guī)則列表,所述規(guī)則列表包括所述安全策略的規(guī)則的列表,所述規(guī)則列表中的每一規(guī)則具有包括所述規(guī)則的安全策略的進(jìn)程集準(zhǔn)則,所述規(guī)則列表按照規(guī)則類型來排序。
10.如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述規(guī)則列表還在規(guī)則類型內(nèi)按照動作來排序。
11.如權(quán)利要求10所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述動作包括拒絕和允許,并且在每一規(guī)則類型內(nèi),具有拒絕動作的規(guī)則被排序在具有允許動作的規(guī)則之前。
12.如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述規(guī)則列表包括一進(jìn)程集表和一規(guī)則表,其中,所述進(jìn)程集表將進(jìn)程集準(zhǔn)則映射到所述規(guī)則表中相關(guān)聯(lián)的規(guī)則。
13.如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,為具有不同安全類型的安全政策生成單獨(dú)的規(guī)則列表。
14.如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,包括向安全組件提供所生成的規(guī)則列表以實(shí)施所述安全政策。
15.如權(quán)利要求14所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述合并是在用戶模式中執(zhí)行的,且所述安全實(shí)施是在內(nèi)核模式中執(zhí)行的。
16.如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,當(dāng)改變安全策略時,所述規(guī)則列表被動態(tài)地更新。
17.如權(quán)利要求9所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述規(guī)則類型包括全局、應(yīng)用程序?qū)S煤湍J(rèn)執(zhí)行范圍。
18.如權(quán)利要求17所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,排序所述規(guī)則,使得全局在應(yīng)用程序?qū)S弥?,而?yīng)用程序?qū)S迷谀J(rèn)之前。
19.一種包含用于控制計(jì)算機(jī)系統(tǒng)通過一種方法來實(shí)施安全策略的指令的計(jì)算機(jī)可讀介質(zhì),所述方法包括接收一規(guī)則列表,所述規(guī)則列表包括所述安全策略的規(guī)則的列表,所述規(guī)則列表中的每一規(guī)則具有一進(jìn)程集準(zhǔn)則,所述規(guī)則列表按照規(guī)則類型來排序;當(dāng)啟動一進(jìn)程時,標(biāo)識所述規(guī)則列表中其進(jìn)程集準(zhǔn)則由所述進(jìn)程滿足的規(guī)則;以及當(dāng)發(fā)生與所述進(jìn)程有關(guān)的安全事件時,以所述規(guī)則列表的順序?qū)⑺鶚?biāo)識的規(guī)則應(yīng)用于所述安全事件。
20.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述安全政策是在內(nèi)核模式中實(shí)施的,而所述規(guī)則列表是在用戶模式中生成的。
21.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,包括當(dāng)進(jìn)程集準(zhǔn)則改變時,標(biāo)識所述規(guī)則列表中用于進(jìn)程的規(guī)則,其中,所述改變影響所述進(jìn)程是否滿足所述進(jìn)程集準(zhǔn)則,使得當(dāng)發(fā)生與所述進(jìn)程有關(guān)的下一安全事件時,所標(biāo)識的規(guī)則可被應(yīng)用。
22.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,當(dāng)安全策略改變時,對進(jìn)程所標(biāo)識的規(guī)則被動態(tài)地更新。
23.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述規(guī)則類型包括全局、應(yīng)用程序?qū)S煤湍J(rèn)執(zhí)行范圍。
24.如權(quán)利要求23所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,排序所述規(guī)則,使得全局在應(yīng)用程序?qū)S弥埃鴳?yīng)用程序?qū)S迷谀J(rèn)之前。
25.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述動作包括拒絕和允許,并且在每一規(guī)則類型中,具有拒絕動作的規(guī)則被排序在具有允許動作的規(guī)則之前。
26.如權(quán)利要求19所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,所述規(guī)則列表包括每一進(jìn)程集準(zhǔn)則到相關(guān)聯(lián)規(guī)則的映射。
27.一種用于實(shí)施安全策略的計(jì)算機(jī)系統(tǒng),包括一在第一特許模式中執(zhí)行的合并組件,它生成一規(guī)則列表,所述規(guī)則列表包括所述安全策略的規(guī)則的列表,所述規(guī)則列表中的每一規(guī)則具有一進(jìn)程集準(zhǔn)則,所述規(guī)則列表按照規(guī)則類型和動作來排序;以及一在第二特許模式中執(zhí)行的實(shí)施組件,它標(biāo)識所述規(guī)則列表中與進(jìn)程所滿足的一個或多個進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的規(guī)則,并以所述規(guī)則列表的順序向所述進(jìn)程的安全事件應(yīng)用所標(biāo)識的規(guī)則。
28.如權(quán)利要求27所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述第一特許模式是用戶模式,而所述第二特許模式是內(nèi)核模式。
29.如權(quán)利要求27所述的計(jì)算機(jī)系統(tǒng),其特征在于,當(dāng)改變安全策略時,對進(jìn)程標(biāo)識的規(guī)則被動態(tài)地更新。
30.如權(quán)利要求27所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述規(guī)則類型包括全局、應(yīng)用程序?qū)S煤湍J(rèn)執(zhí)行范圍。
31.如權(quán)利要求30所述的計(jì)算機(jī)系統(tǒng),其特征在于,排序所述規(guī)則,使得全局在應(yīng)用程序?qū)S弥?,而?yīng)用程序?qū)S迷谀J(rèn)之前。
32.如權(quán)利要求30所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述動作包括拒絕和允許,且在每一規(guī)則類型中,具有拒絕動作的規(guī)則被排序在具有允許動作的規(guī)則之前。
全文摘要
提供了一種用于組合和實(shí)施安全策略的方法和系統(tǒng)。向該安全系統(tǒng)提供具有進(jìn)程集準(zhǔn)則和相關(guān)聯(lián)規(guī)則的安全策略。該安全系統(tǒng)通過生成安全策略的規(guī)則列表和相關(guān)聯(lián)的進(jìn)程集準(zhǔn)則來組合安全策略。規(guī)則列表的規(guī)則基于規(guī)則類型和規(guī)則的動作來排序。當(dāng)啟動新進(jìn)程來執(zhí)行應(yīng)用程序時,該安全系統(tǒng)確定該應(yīng)用程序所滿足的進(jìn)程集準(zhǔn)則。該安全系統(tǒng)然后標(biāo)識規(guī)則列表中與所滿足的進(jìn)程集準(zhǔn)則相關(guān)聯(lián)的規(guī)則。當(dāng)發(fā)生與進(jìn)程相關(guān)聯(lián)的安全實(shí)施事件時,該安全系統(tǒng)以由規(guī)則列表執(zhí)行的順序?qū)⑴c該進(jìn)程相關(guān)聯(lián)的每一規(guī)則應(yīng)用于該安全實(shí)施事件。
文檔編號G06F1/00GK1760791SQ20051010990
公開日2006年4月19日 申請日期2005年9月14日 優(yōu)先權(quán)日2004年10月14日
發(fā)明者A·薩繆爾森, M·A·艾丹諾夫 申請人:微軟公司