專利名稱:使用多處理單元架構(gòu)的系統(tǒng)安全防護(hù)方法與相關(guān)裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于系統(tǒng)安全防護(hù)技術(shù),尤指利用預(yù)防性手段(preventivemeasure)來響應(yīng)針對網(wǎng)絡(luò)中的裝置所進(jìn)行的攻擊行為的方法與相關(guān)系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)網(wǎng)絡(luò)愈來愈普及,任何與網(wǎng)絡(luò)相連接的裝置都有可能會受到各式各樣的攻擊,例如計(jì)算機(jī)病毒(virus)、電子蠕蟲(worm)、或是網(wǎng)絡(luò)黑客(cracker)的攻擊等等。常用來對付這類網(wǎng)絡(luò)攻擊的解決方案,包含有防火墻(firewall)與防毒程序(anti-virus program)等。一般而言,防火墻可用來防止某些特定類型的文件或封包傳入特定網(wǎng)絡(luò)中,至于防毒程序則通常是用來防止單一裝置或一群裝置執(zhí)行包含有病毒的文件。
現(xiàn)今業(yè)界已開發(fā)出幾種防火墻技術(shù),例如封包過濾器(packet filter)、應(yīng)用層網(wǎng)關(guān)(application gateway)、以及代理服務(wù)器(proxy server)。封包過濾器會檢視每一個(gè)封包中的控制消息,并依據(jù)使用者所定義的規(guī)則,來決定要接受或是拒絕該封包。應(yīng)用層網(wǎng)關(guān)則是會針對特定的應(yīng)用(例如文件傳輸協(xié)議(FTP)與遠(yuǎn)程登錄服務(wù)器(Telnet server)等)使用特殊的安全機(jī)制。至于代理服務(wù)器則是利用一種中介的服務(wù)器來攔截及檢查于客戶應(yīng)用端與該客戶應(yīng)用端所請求的服務(wù)器間進(jìn)行傳輸?shù)姆獍?。然而,前述的各種技術(shù)都不會對每一個(gè)封包中的承載數(shù)據(jù)(payload data)部分進(jìn)行檢查,也無法處理分散在不同封包邊界的惡意程序代碼片段。
在已知裝置上所執(zhí)行的防毒程序通常是將該裝置所收到的封包組合成文件,再判斷組合后的文件中是否包含有預(yù)知的病毒型樣。在這種作法中,檢測病毒是否存在的動作唯有在文件或一個(gè)數(shù)據(jù)區(qū)塊組合完成之后才會開始進(jìn)行。對于針對實(shí)時(shí)通訊協(xié)議(real-time protocol)所進(jìn)行的攻擊而言,由于這類通訊協(xié)議對于時(shí)序的要求較為嚴(yán)格,使得前述「先組合后掃瞄」(assembling-before-scanning)的解決方案變得較不可行。
發(fā)明內(nèi)容
因此本發(fā)明的目的之一在于可確保系統(tǒng)安全性的方法與相關(guān)裝置,以解決現(xiàn)有技術(shù)所面臨的問題。
本發(fā)明所提出的方法與系統(tǒng)是利用第一處理單元來將對應(yīng)于多個(gè)型樣的正規(guī)表示式分割成多個(gè)子表示式,并維持該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系。此外,本發(fā)明提出的方法與系統(tǒng)還會利用第二處理單元依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒍鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出可疑數(shù)據(jù)單元,其中,該可疑數(shù)據(jù)單元是指所包含的內(nèi)容集合后符合于前述型樣中的一種或多種型樣的數(shù)據(jù)單元,而界定可疑數(shù)據(jù)單元的方式,則是依據(jù)該等有限自動機(jī)的輸出合并后的結(jié)果來進(jìn)行。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的方法,其包含有在第二處理器自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,利用第一處理器執(zhí)行一組任務(wù),其中該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系得以維持;以及依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的系統(tǒng),其包含有第一處理手段,用來于第二處理手段自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,執(zhí)行一組任務(wù),其中該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系得以維持;以及該第二處理手段,用來依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的系統(tǒng),其包含有分派引擎;處理單元,耦接于該分派引擎;內(nèi)容檢查引擎,耦接于該分派引擎與該處理單元;存儲器控制器,耦接于該分派引擎、該處理單元與該內(nèi)容檢查引擎;其中該處理單元會于該內(nèi)容檢查引擎自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,執(zhí)行一組任務(wù),該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該存儲器控制器維持該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系;以及該內(nèi)容檢查引擎依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的系統(tǒng),其包含有通用處理器;內(nèi)容檢查協(xié)同處理器,直接或間接耦接于該通用處理器,其中該內(nèi)容檢查協(xié)同處理器包含有分派引擎;內(nèi)容檢查引擎,耦接于該分派引擎;以及存儲器控制器,耦接于該分派引擎與該內(nèi)容檢查引擎;其中該通用處理器會于該內(nèi)容檢查引擎自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,執(zhí)行一組任務(wù),該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該存儲器控制器維持該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系;以及該內(nèi)容檢查引擎是依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
圖1為本發(fā)明的系統(tǒng)安全防護(hù)架構(gòu)的一實(shí)施例的數(shù)據(jù)流示意圖。
圖2為本發(fā)明的數(shù)據(jù)單元中的數(shù)據(jù)單元區(qū)段的一實(shí)施例的示意圖。
圖3為本發(fā)明用來建立與使用表達(dá)有害型樣的自動機(jī)與狀態(tài)表的方法的一實(shí)施例流程圖。
圖4為本發(fā)明用來解壓縮數(shù)據(jù)單元中的數(shù)據(jù)的方法的一實(shí)施例流程圖。
圖5為本發(fā)明用來界定數(shù)據(jù)單元中的異常情形的方法的一實(shí)施例流程圖。
圖6為實(shí)現(xiàn)本發(fā)明的安全防護(hù)機(jī)制的系統(tǒng)的一實(shí)施例的示意圖。
圖7為圖6中的內(nèi)容檢查協(xié)同處理器的一實(shí)施例的方塊圖。
圖8為圖6中的內(nèi)容檢查協(xié)同處理器的另一實(shí)施例的方塊圖。
具體實(shí)施方式
將下來將說明本發(fā)明所提出的系統(tǒng)安全防護(hù)機(jī)制。為了幫助了解,以下將會利用許多特定的實(shí)施例來闡釋本發(fā)明的概念。在閱讀完以下說明之后,所屬技術(shù)領(lǐng)域中具有通常知識者將可對本發(fā)明的概念有較為透徹的了解。當(dāng)然,本發(fā)明的實(shí)際實(shí)施方式并不局限于以下的說明中所提供的實(shí)施例。
由于「正規(guī)表示式」(regular expression)、「狀態(tài)機(jī)」(state machine)、「自動機(jī)」(automaton)的相關(guān)理論以及相關(guān)知識為所屬技術(shù)領(lǐng)域中具有通常知識者所熟知,故在此將不多作贅述。唯需注意,在后續(xù)的說明當(dāng)中所使用的「狀態(tài)機(jī)」與「狀態(tài)自動機(jī)」(state automaton)這兩個(gè)名詞可相互替換。「萬用字符」(Wild card)通常是指特殊的符號,例如英文中的句號(.)與星號(*)的組合,即可用來表示0個(gè)、1個(gè)、或多個(gè)字符(例如,″.*abc″即表示所有以″abc″作為結(jié)尾的型樣)。每一個(gè)「數(shù)據(jù)單元」(data unit)通常系指儲存于一特殊存儲器位置中的數(shù)據(jù)或是一個(gè)具有目的地地址的封包?!笐?yīng)用程序」(application)則泛指為使用者、終端機(jī)或計(jì)算機(jī)系統(tǒng)的使用所設(shè)計(jì)的單一程序或程序群組。
1.0一般概要以下所介紹的系統(tǒng)安全防護(hù)技術(shù),包含利用第一處理單元來將對應(yīng)于多個(gè)型樣(pattern)的正規(guī)表示式分割成多個(gè)子表示式(sub-expression),并維持該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)(finite automata)間的相依關(guān)系(dependency relationships)的方法與系統(tǒng)。本發(fā)明所提出的安全防護(hù)方法與系統(tǒng),還會利用第二處理單元依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒍鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出可疑數(shù)據(jù)單元。此處所指稱的「可疑數(shù)據(jù)單元」一詞系指所包含的內(nèi)容集合后符合于(collectively match)前述型樣中的一種或多種型樣的數(shù)據(jù)單元。至于可疑數(shù)據(jù)單元的界定方式,則是依據(jù)該等有限自動機(jī)的輸出合并后的結(jié)果(merged results)來進(jìn)行。
2.0系統(tǒng)安全防護(hù)方式2.1概要以下說明本發(fā)明提出的系統(tǒng)安全防護(hù)方式的概要。想要確保系統(tǒng)的安全性,作法之一是通過檢視進(jìn)入與離開該系統(tǒng)的數(shù)據(jù)單元,以確保該系統(tǒng)不受惡意程序代碼或未獲授權(quán)的存取所影響。此種作法是部分根基于正規(guī)表示式的使用。正規(guī)表示式一般是指用來表示特定型樣的符號(symbol)集合與語法單元(syntactic element)的集合。舉例來說,(a|b)t即是一個(gè)簡單的正規(guī)表示式,用來表示″at″以及″bt″這兩個(gè)型樣。雖然一個(gè)精煉的(well-crafted)正規(guī)表示式看起來可能顯得較為簡潔,特別是在使用萬用字符的情形下,但該正規(guī)表示式在一個(gè)具有許多狀態(tài)的狀態(tài)機(jī)中,仍可以表示多種不同的型樣與結(jié)果。
另一種系統(tǒng)安全防護(hù)方式亦是部分根基于管理(managing)與操控(manipulating)從正規(guī)表示式所推導(dǎo)出的許多狀態(tài)自動機(jī)(state automata)的狀態(tài),以有效地搜尋與匹配(match)特定的型樣。隨著越來越多的型樣被界定為有害的型樣,將需要利用額外的步驟來加快搜尋與匹配特定型樣的速度,并同時(shí)減低對于儲存空間的需求。
本發(fā)明所提出的系統(tǒng)安全防護(hù)方法的一實(shí)施例,具有至少一個(gè)專門用來從正規(guī)表示式中推導(dǎo)出狀態(tài)自動機(jī)的處理程序,以及至少另一個(gè)專門使用狀態(tài)自動機(jī)來搜尋有害型樣的處理程序。此外,前述的處理程序當(dāng)中至少有一處理程序可以用來監(jiān)測數(shù)據(jù)單元中無法利用正規(guī)表示式來表達(dá)的異常情形(anomaly)。
圖1所繪示為本發(fā)明的系統(tǒng)安全防護(hù)架構(gòu)的一實(shí)施例的數(shù)據(jù)流示意圖。本實(shí)施例包含有兩個(gè)主要的處理程序處理程序102與處理程序110。處理程序102主要是由分派引擎(dispatch engine)104、內(nèi)容檢查引擎(contentinspection engine)106、以及存儲器控制器108來執(zhí)行,而處理程序110則主要是由處理單元112來進(jìn)行。處理程序110會產(chǎn)生多個(gè)狀態(tài)自動機(jī),而處理程序102則會搜尋包含有該等狀態(tài)自動機(jī)所表示的有害型樣(如已知病毒、電子蠕蟲、濫發(fā)(spam)、非法存取或任何惡意程序代碼等)的可疑數(shù)據(jù)單元(suspected data unit)。這些有害型樣亦可以是任何一種可轉(zhuǎn)譯為正規(guī)表示式的聲音型樣、圖像型樣、或者非文字型樣等等。處理程序110還會解壓縮數(shù)據(jù)單元中的數(shù)據(jù),并監(jiān)控?cái)?shù)據(jù)單元中任何無法用正規(guī)表示式描述的不規(guī)則情形,但其實(shí)際功能并不局限于此。
圖2所示為本發(fā)明一實(shí)施例的數(shù)據(jù)單元中的數(shù)據(jù)單元區(qū)段(data unitsegment)200的示意圖。數(shù)據(jù)單元區(qū)段200主要包含有標(biāo)頭字段202與承載字段(payload field)210。標(biāo)頭字段202包含有額外的字段,例如(但不局限于)類型字段(type field)204、長度字段(length field)206以及命令字段(command field)208。承載字段210則包含文字?jǐn)?shù)據(jù)、多媒體數(shù)據(jù)以及/或控制信息。
在本實(shí)施例中,類型字段204包含用來指示數(shù)據(jù)單元的各種類型的數(shù)據(jù)。例如,第一類型的數(shù)據(jù)單元中的承載字段210可能包含有用來表示有害型樣的一部或全部的正規(guī)表示式,或是設(shè)定處理程序102或110所需的信息。另一方面,第二類型的數(shù)據(jù)單元中的承載字段210則可能會包含有需接受處理程序102檢查有害型樣及異常情形的數(shù)據(jù)。在某些實(shí)施例中,第二類型的數(shù)據(jù)單元中的數(shù)據(jù)亦會被處理程序110加以處理。因此,接收到數(shù)據(jù)單元的處理程序可利用類型字段204中的信息來判斷該數(shù)據(jù)單元為第一類型或第二類型,并據(jù)以采取相對應(yīng)的行動。在以下說明中,前述第一類型與第二類型的數(shù)據(jù)單元將分別稱之為系統(tǒng)類型數(shù)據(jù)單元與使用者類型數(shù)據(jù)單元。
長度字段206包含有承載字段210中的數(shù)據(jù)的長度信息,而命令字段208則包含有指示處理單元112、存儲器控制器108與內(nèi)容檢查引擎106執(zhí)行特定任務(wù)的指令。例如,前述的指令可能會致使處理單元112對承載字段210中的數(shù)據(jù)進(jìn)行解壓縮,或是檢查數(shù)據(jù)是否異常。每一個(gè)命令字段208可包含有一個(gè)或多個(gè)指令,且該等指令可以是對應(yīng)于一個(gè)或多個(gè)元件。換言之,命令字段208可包含給單一元件(如處理單元112)的單一指令、給單一元件的多個(gè)指令、或是分別給不同元件的多個(gè)指令。例如,命令字段208可能同時(shí)包含有某些給處理單元112的指令、某些給存儲器控制器108的指令、以及某些給內(nèi)容檢查引擎106的指令。
在一實(shí)施例中,分派引擎104的功能是作為與應(yīng)用程序100溝通的網(wǎng)關(guān)。進(jìn)一步而言,分派引擎104會依據(jù)所收到的數(shù)據(jù)單元的標(biāo)頭字段與承載字段中的信息,將收到的數(shù)據(jù)單元分派到內(nèi)容檢查引擎106、存儲器控制器108以及處理單元112,以進(jìn)行后續(xù)的處理。一般而言,內(nèi)容檢查引擎106系專供用來界定出具有集合后符合于(collectively match)有害型樣的數(shù)據(jù)的可疑數(shù)據(jù)單元。另一方面,處理單元112則會進(jìn)行解壓縮數(shù)據(jù)單元的承載字段中的數(shù)據(jù)、監(jiān)控?cái)?shù)據(jù)單元中有無不規(guī)則情形或異常情形等等的任務(wù),但其實(shí)際運(yùn)用并不局限于此。此外,分派引擎104也會將內(nèi)容檢查引擎106與處理單元112輸出結(jié)果作有系統(tǒng)的整理,并將整理后的結(jié)果傳送給應(yīng)用程序100。以下,將進(jìn)一步說明前述不同元件間的互動運(yùn)作。
2.2利用多處理單元架構(gòu)建立與使用自動機(jī)與狀態(tài)表圖3所繪示為本發(fā)明建立與使用表達(dá)有害型樣的自動機(jī)與狀態(tài)表的方法的一實(shí)施例流程圖。在步驟300中,倘若分派引擎104依據(jù)圖2所示的類型字段204中的信息,識別出所接收到的數(shù)據(jù)單元為系統(tǒng)類型數(shù)據(jù)單元,則分派引擎104接著會檢查該數(shù)據(jù)單元的命令字段208,以判斷該數(shù)據(jù)單元是否包含待轉(zhuǎn)換的正規(guī)表示式或與已轉(zhuǎn)換的自動機(jī)及狀態(tài)表相關(guān)的信息。此一將正規(guī)表示式轉(zhuǎn)換為自動機(jī)或狀態(tài)表的處理程序又稱之為編譯(compiling)處理。
若該數(shù)據(jù)單元的命令字段208包含有指示處理單元112產(chǎn)生自動機(jī)與狀態(tài)表的指令,則分派引擎104接著會進(jìn)行步驟304將該數(shù)據(jù)單元傳送至處理單元112,以使處理單元112對該數(shù)據(jù)單元的承載字段210中的數(shù)據(jù)進(jìn)行編譯。在某些情形下,處理單元112在步驟306中會檢測到編譯錯(cuò)誤的發(fā)生。舉例而言,倘若該正規(guī)表示式的語法不精確,便無法據(jù)以產(chǎn)生自動機(jī)與狀態(tài)表。倘若所產(chǎn)生的自動機(jī)及狀態(tài)表所需占據(jù)的存儲器位置比處理程序102、110或兩者所分配到的存儲器空間還多,則會導(dǎo)致另一種編譯錯(cuò)誤的情形發(fā)生。實(shí)作上,處理單元112會在步驟310中通過分派引擎104向應(yīng)用程序100回報(bào)編譯錯(cuò)誤的情形。
另一方面,倘若該數(shù)據(jù)單元的命令字段208包含有指示存儲器控制器108儲存并管理已轉(zhuǎn)換的自動機(jī)與狀態(tài)表相關(guān)的信息,則分派引擎104會進(jìn)行步驟308,將該數(shù)據(jù)單元傳送至存儲器控制器108,以使該數(shù)據(jù)單元的承載字段210中的數(shù)據(jù)被儲存起來。在一實(shí)施例中,存儲器控制器108會將已轉(zhuǎn)換的自動機(jī)與狀態(tài)表加載內(nèi)容檢查引擎106所對應(yīng)的存儲器位置,以供內(nèi)容檢查引擎106預(yù)先或于初始運(yùn)作時(shí)進(jìn)行存取。在某些應(yīng)用例中,存儲器控制器108會檢測到加載錯(cuò)誤的發(fā)生。例如,當(dāng)所儲存的數(shù)據(jù)已毀壞時(shí),便會發(fā)生某一類型的加載錯(cuò)誤。
倘若分派引擎104在步驟300中依據(jù)類型字段204中的信息,將所接收到的數(shù)據(jù)單元識別為使用者類型數(shù)據(jù)單元,且命令字段208包含有指示內(nèi)容檢查引擎106搜尋并界定可疑數(shù)據(jù)單元的指令,則分派引擎104會進(jìn)行步驟312,將該數(shù)據(jù)單元傳送至內(nèi)容檢查引擎106,以檢查該數(shù)據(jù)單元的承載字段210中的數(shù)據(jù)。接著,內(nèi)容檢查引擎106會于步驟310中將其檢查結(jié)果傳送給應(yīng)用程序100。
2.3解壓縮數(shù)據(jù)當(dāng)所接收到的數(shù)據(jù)單元為使用者類型數(shù)據(jù)單元時(shí),該數(shù)據(jù)單元中可能會包含有壓縮數(shù)據(jù)。例如,倘若應(yīng)用程序100為電子郵件應(yīng)用程序,則該數(shù)據(jù)單元可能會包含通過該電子郵件應(yīng)用程序傳送的壓縮后的附加文件。圖4所繪示為本發(fā)明解壓縮數(shù)據(jù)單元中的數(shù)據(jù)的方法的一實(shí)施例流程圖。
特別是在進(jìn)行步驟410將該數(shù)據(jù)單元于傳送至內(nèi)容檢查引擎106之前,分派引擎104會進(jìn)行步驟400以檢查該數(shù)據(jù)單元的命令字段208與承載字段210。在一實(shí)施例中,倘若命令字段208包含有指示處理單元112對承載字段210中的數(shù)據(jù)進(jìn)行解壓縮的指令,則分派引擎104會進(jìn)行步驟404,將該數(shù)據(jù)單元傳送至處理單元112,以使處理單元112依據(jù)該指令進(jìn)行數(shù)據(jù)解壓縮的動作。在某些例子中,處理單元112會于步驟406中檢測到解壓縮錯(cuò)誤。例如,若處理單元112進(jìn)行數(shù)值運(yùn)算所需的存儲器空間不足時(shí),便會有解壓縮錯(cuò)誤發(fā)生。倘若處理單元112進(jìn)行解壓縮所需的信息不足,例如缺少密碼等,也會造成解壓縮錯(cuò)誤的發(fā)生。在一實(shí)施例中,處理單元112會于步驟408中通過分派引擎104向應(yīng)用程序100回報(bào)解壓縮錯(cuò)誤的情形,且不會檢查該數(shù)據(jù)單元中是否存在有害型樣。
2.4異常情形檢測此外,當(dāng)所接收到的數(shù)據(jù)單元為使用者類型數(shù)據(jù)單元時(shí),該數(shù)據(jù)單元中可能包含有會導(dǎo)致接收系統(tǒng)發(fā)生不良后果但無法用正規(guī)表示式來描述的數(shù)據(jù)。舉例而言,在阻絕服務(wù)(denial-of-service,DoS)攻擊中,接收系統(tǒng)的資源會耗盡在處理所接收到的大量數(shù)據(jù)單元上,而非藏在數(shù)據(jù)單元中的有害型樣。圖5所繪示為本發(fā)明界定數(shù)據(jù)單元中的異常情形的方法的一實(shí)施例流程圖。
在進(jìn)行步驟510將數(shù)據(jù)單元于傳送至內(nèi)容檢查引擎106之前,分派引擎104會進(jìn)行步驟500以檢查該數(shù)據(jù)單元的命令字段208與承載字段210。在一實(shí)施例中,倘若命令字段208包含有指示處理單元112尋找異常情形的指令,則分派引擎104會進(jìn)行步驟504,將該數(shù)據(jù)單元傳送至處理單元112,以使處理單元112依據(jù)該指令與特定的異常策略(anomaly policy)來分析所接收到的數(shù)據(jù)單元中的特定特征。舉例而言,異常策略可限制接收與處理承載字段中的數(shù)據(jù)完全相同的數(shù)據(jù)單元的臨界量。因此,處理單元112可依據(jù)該指令追蹤符合該異常策略所設(shè)定的規(guī)則的數(shù)據(jù)單元數(shù)量,當(dāng)該數(shù)量于步驟506中超過該臨界量時(shí),處理單元112便會對所檢測到異常情形加以響應(yīng)(例如拒絕后續(xù)所接收到具有相同數(shù)據(jù)的數(shù)據(jù)單元),以及/或?qū)⑺鶛z測到的異常情形回報(bào)予應(yīng)用程序100。
雖然圖5中并未明白繪示,但前述的步驟506與508亦可于檢查完該數(shù)據(jù)單元的內(nèi)容后才進(jìn)行。換言之,在一實(shí)施例中,步驟510可于異常情形檢測處理或步驟500之前來進(jìn)行。在步驟510執(zhí)行完畢后,處理單元112的一實(shí)施例還會通過在數(shù)據(jù)單元中墊入連續(xù)零值或預(yù)定數(shù)據(jù)型樣的方式,來矯正于該數(shù)據(jù)單元中所檢測出的有害型樣或異常情形。例如,倘若數(shù)據(jù)單元中包含有可造成接收系統(tǒng)不穩(wěn)的有害型樣或命令,或是會破壞任何通訊與運(yùn)作協(xié)議的程序代碼,處理單元112不僅會檢測出這些型樣與異常部分,還可利用不會對接收系統(tǒng)造成不良影響的無害(harmless)型樣(例如連續(xù)的零值),來替換掉這些檢測到的型樣或異常部分。
請注意,前述的異常策略可通過系統(tǒng)類型數(shù)據(jù)單元來加以設(shè)定,其設(shè)定的方式與前揭圖3的編譯程序相類似。具體而言,處理單元112可依據(jù)數(shù)據(jù)單元的命令字段與承載字段中的數(shù)據(jù)來變更該異常策略的設(shè)定。
3.0系統(tǒng)架構(gòu)實(shí)施例圖6所繪示為系統(tǒng)600的示意圖,其為本發(fā)明用來實(shí)現(xiàn)前述安全防護(hù)機(jī)制的一實(shí)施例。進(jìn)一步而言,系統(tǒng)600包含有處理器604,以及專門用來執(zhí)行內(nèi)容檢查任務(wù)的內(nèi)容檢查協(xié)同處理器(content inspection co-processor,CICP)602。處理器604是對應(yīng)于圖1所示的處理單元112,而內(nèi)容檢查協(xié)同處理器602則對應(yīng)于圖1中的分派引擎104、存儲器控制器108以及內(nèi)容檢查引擎106。圖7所示為內(nèi)容檢查協(xié)同處理器602的一實(shí)施例的方塊圖。
圖8為內(nèi)容檢查協(xié)同處理器602的另一實(shí)施例的方塊圖。在本實(shí)施例中,處理單元112為內(nèi)容檢查協(xié)同處理器602的一部分。換言之,本實(shí)施例的內(nèi)容檢查協(xié)同處理器602包含有兩個(gè)處理單元,亦即圖中的處理單元與內(nèi)容檢查引擎。
內(nèi)容檢查協(xié)同處理器可用特定應(yīng)用集成電路(application-specificintegrated circuit,ASIC)來實(shí)現(xiàn),亦可程序化于可程序化邏輯裝置(programmable logic device)中,也可以是單芯片系統(tǒng)(system-on-chip,SOC)中的功能單元(functional unit)。在一實(shí)施例中,內(nèi)容檢查協(xié)同處理器602是通過橋接器608及存儲器總線606來與處理器604進(jìn)行聯(lián)系。在另一實(shí)施例中,若處理器604可提供適當(dāng)?shù)耐ㄓ嵔涌?未繪示于圖6中),則內(nèi)容檢查協(xié)同處理器602便可通過該通訊接口直接與處理器604進(jìn)行聯(lián)系。
處理器604可以是通用處理器(general purpose processor)或是特定用途處理器(specific purpose processor)。特定用途處理器的實(shí)施例包含有(但不限定于)設(shè)計(jì)用來進(jìn)行信號處理、移動運(yùn)算、及多媒體相關(guān)應(yīng)用的處理器。特定用途處理器通常會包含有可供其它外部單元直接與其連接的相關(guān)接口。舉例來說,這樣的特定用途處理器可能會包含一個(gè)或多個(gè)存儲器接口,用來與各種的存儲器相互連接,或用來與協(xié)同處理單元(例如前述的內(nèi)容檢查協(xié)同處理器602)相互連接。
各種類型的存儲器模塊可直接設(shè)置在內(nèi)容檢查協(xié)同處理器602之內(nèi),或是通過耦接于存儲器總線606或內(nèi)容檢查協(xié)同處理器602的方式,來提供內(nèi)容檢查協(xié)同處理器602所需的暫存空間。前述的存儲器模塊亦可同時(shí)提供處理器604所需的暫存空間。實(shí)作上,可利用各式的隨機(jī)存取存儲器(RAM)與閃存(flash memory)來實(shí)現(xiàn)前述的存儲器模塊。此外,在不變更本發(fā)明的系統(tǒng)安全防護(hù)機(jī)制的情形下,在圖6中所示的各個(gè)組成元件之外還可再加入其它的組成元件(例如顯示裝置),圖6中所示的各個(gè)組成元件亦可彼此組合(例如可將內(nèi)容檢查協(xié)同處理器602與處理器604設(shè)置于單芯片系統(tǒng)中)、或更進(jìn)一步地分割為更多元件(例如可將橋接器608分割成處理器橋接器、總線控制器、以及存儲器控制器)。
4.0延伸以及變化以上所述僅為本發(fā)明的較佳實(shí)施例,凡依本發(fā)明權(quán)利要求范圍所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的方法,其包含有在第二處理器自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,利用第一處理器執(zhí)行一組任務(wù),其中該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系得以維持;以及依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
2.根據(jù)權(quán)利要求1所述的方法,其還包含有依據(jù)該多個(gè)數(shù)據(jù)單元的類型及其所包含的數(shù)據(jù),將該多個(gè)數(shù)據(jù)單元分派到該第一處理器與該第二處理器。
3.根據(jù)權(quán)利要求2所述的方法,其還包含有在界定該組可疑數(shù)據(jù)單元前,依據(jù)該多個(gè)數(shù)據(jù)單元中所包含的指令,對該多個(gè)數(shù)據(jù)單元中所包含的壓縮數(shù)據(jù)進(jìn)行解壓縮。
4.根據(jù)權(quán)利要求2所述的方法,其還包含有依據(jù)異常策略來響應(yīng)與該多個(gè)數(shù)據(jù)單元相關(guān)的異常情形,其中該異常策略會追蹤該多個(gè)數(shù)據(jù)單元除了該多個(gè)型樣以外的特征。
5.根據(jù)權(quán)利要求4所述的方法,其中該異常策略是可以變更設(shè)定的。
6.根據(jù)權(quán)利要求4所述的方法,其還包含有矯正該組可疑數(shù)據(jù)單元或該異常情形。
7.一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的系統(tǒng),其包含有第一處理手段,用來于第二處理手段自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,執(zhí)行一組任務(wù),其中該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系得以維持;以及該第二處理手段,用來依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其還包含有一種技術(shù)手段,用來依據(jù)該多個(gè)數(shù)據(jù)單元的類型及其所包含的數(shù)據(jù),將該多個(gè)數(shù)據(jù)單元分派到該第一處理手段與該第二處理手段。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中該第一處理手段還會在界定該組可疑數(shù)據(jù)單元前,依據(jù)該多個(gè)數(shù)據(jù)單元中所包含的指令,對該多個(gè)數(shù)據(jù)單元中所包含的壓縮數(shù)據(jù)進(jìn)行解壓縮。
10.根據(jù)權(quán)利要求8所述的系統(tǒng),其中該第一處理手段還會依據(jù)異常策略來響應(yīng)與該多個(gè)數(shù)據(jù)單元相關(guān)的異常情形,其中該異常策略會追蹤該多個(gè)數(shù)據(jù)單元除了該多個(gè)型樣以外的特征。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中該異常策略是可以變更設(shè)定的。
12.根據(jù)權(quán)利要求10所述的系統(tǒng),其中該第一處理手段還會矯正該組可疑數(shù)據(jù)單元或該異常情形。
13.一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的系統(tǒng),其包含有分派引擎;處理單元,耦接于該分派引擎;內(nèi)容檢查引擎,耦接于該分派引擎與該處理單元;存儲器控制器,耦接于該分派引擎、該處理單元與該內(nèi)容檢查引擎;其中該處理單元會于該內(nèi)容檢查引擎自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,執(zhí)行一組任務(wù),該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該存儲器控制器維持該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系;以及該內(nèi)容檢查引擎依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中該分派引擎會依據(jù)該多個(gè)數(shù)據(jù)單元的類型及其所包含的數(shù)據(jù),將該多個(gè)數(shù)據(jù)單元分派到該處理單元、該內(nèi)容檢查引擎與該存儲器控制器。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中該處理單元還會在界定該組可疑數(shù)據(jù)單元前,依據(jù)該多個(gè)數(shù)據(jù)單元中所包含的指令,對該多個(gè)數(shù)據(jù)單元中所包含的壓縮數(shù)據(jù)進(jìn)行解壓縮。
16.根據(jù)權(quán)利要求14所述的系統(tǒng),其中該處理單元還會依據(jù)異常策略來響應(yīng)與該多個(gè)數(shù)據(jù)單元相關(guān)的異常情形,其中該異常策略會追蹤該多個(gè)數(shù)據(jù)單元除了該多個(gè)型樣以外的特征。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中該異常策略是可以變更設(shè)定的。
18.根據(jù)權(quán)利要求16所述的系統(tǒng),其中該處理單元還會矯正該組可疑數(shù)據(jù)單元或該異常情形。
19.一種用來監(jiān)測多個(gè)數(shù)據(jù)單元的系統(tǒng),其包含有通用處理器;內(nèi)容檢查協(xié)同處理器,直接或間接耦接于該通用處理器,其中該內(nèi)容檢查協(xié)同處理器包含有分派引擎;內(nèi)容檢查引擎,耦接于該分派引擎;以及存儲器控制器,耦接于該分派引擎與該內(nèi)容檢查引擎;其中該通用處理器會于該內(nèi)容檢查引擎自該多個(gè)數(shù)據(jù)單元中界定出一組可疑數(shù)據(jù)單元前,執(zhí)行一組任務(wù),該組任務(wù)包含有自該多個(gè)數(shù)據(jù)單元的內(nèi)容中界定出多個(gè)型樣;將對應(yīng)于該多個(gè)型樣的正規(guī)表示式劃分為多個(gè)子表示式;以及致使該存儲器控制器維持該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系;以及該內(nèi)容檢查引擎是依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒃摱鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出該組可疑數(shù)據(jù)單元,其中該組可疑數(shù)據(jù)單元的內(nèi)容,是會集合后符合于合并該等有限自動機(jī)的輸出所產(chǎn)生的該多個(gè)型樣中的任何型樣。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中該分派引擎會依據(jù)該多個(gè)數(shù)據(jù)單元的類型及其所包含的數(shù)據(jù),將該多個(gè)數(shù)據(jù)單元分派到該通用處理器、該內(nèi)容檢查引擎與該存儲器控制器。
21.根據(jù)權(quán)利要求20所述的系統(tǒng),其中該通用處理器還會在界定該組可疑數(shù)據(jù)單元前,依據(jù)該多個(gè)數(shù)據(jù)單元中所包含的指令,對該多個(gè)數(shù)據(jù)單元中所包含的壓縮數(shù)據(jù)進(jìn)行解壓縮。
22.根據(jù)權(quán)利要求20所述的系統(tǒng),其中該通用處理器還會依據(jù)異常策略來響應(yīng)與該多個(gè)數(shù)據(jù)單元相關(guān)的異常情形,其中該異常策略會追蹤該多個(gè)數(shù)據(jù)單元除了該多個(gè)型樣以外的特征。
23.根據(jù)權(quán)利要求22所述的系統(tǒng),其中該異常策略是可以變更設(shè)定的。
24.根據(jù)權(quán)利要求22所述的系統(tǒng),其中該通用處理器還會矯正該組可疑數(shù)據(jù)單元或該異常情形。
全文摘要
本發(fā)明提供了用以確保系統(tǒng)安全的方法與相關(guān)系統(tǒng)。本發(fā)明提出的方法與系統(tǒng)是利用第一處理單元來將對應(yīng)于多個(gè)型樣的正規(guī)表示式分割成多個(gè)子表示式,并維持該等子表示式所對應(yīng)的多個(gè)有限自動機(jī)間的相依關(guān)系。本發(fā)明提出的方法與系統(tǒng)還會利用第二處理單元依據(jù)該等相依關(guān)系所決定的順序,依序?qū)⒍鄠€(gè)數(shù)據(jù)單元通過該等有限自動機(jī),以界定出可疑數(shù)據(jù)單元,其中,該可疑數(shù)據(jù)單元是指所包含的內(nèi)容集合后符合于前述型樣中的一種或多種型樣的數(shù)據(jù)單元,而可疑數(shù)據(jù)單元的界定方式,則是依據(jù)該等有限自動機(jī)的輸出合并后的結(jié)果來進(jìn)行。
文檔編號H04L9/00GK1838670SQ200610059629
公開日2006年9月27日 申請日期2006年3月13日 優(yōu)先權(quán)日2005年3月11日
發(fā)明者簡士偉, 趙士銘 申請人:鴻璟科技股份有限公司