專利名稱:事件關(guān)聯(lián)分析方法、系統(tǒng)、電腦程序產(chǎn)品與記錄媒體的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于事件關(guān)聯(lián)分析(event correlation analysis)技術(shù),且特別是有關(guān)于在平行架構(gòu)上進行事件關(guān)聯(lián)分析的方法、系統(tǒng)、電腦程序產(chǎn)品、以及電腦可讀取的記錄媒體。
背景技術(shù):
在一個網(wǎng)絡(luò)環(huán)境下,各種網(wǎng)絡(luò)裝置、主機等,都會產(chǎn)生大量的事件來反應目前網(wǎng)絡(luò)或自身的狀況。這些事件可以做為信息安全分析的依據(jù),以期更精準的判斷發(fā)生了什么事,以及危害程度。因此,信息安全中心(S0C :securityoperation center)的架構(gòu)便應運而生。在此架構(gòu)中,事件關(guān)聯(lián)(event correlation)分析系統(tǒng)依據(jù)關(guān)聯(lián)規(guī)則將網(wǎng)絡(luò)上的各個裝置發(fā)出的警訊(alert)事件,關(guān)聯(lián)整合成一個獨立的信息安全案件,以供相關(guān)人員進行分析或應變處理。 —般來說一個事件關(guān)聯(lián)分析系統(tǒng),其關(guān)聯(lián)規(guī)則的邏輯會分成六個區(qū)段,分別是開始階段、過濾階段、醞釀階段、成案階段、并案階段以及最后的終止階段。舉個判斷阻絕服務(wù)(DoS:denial of service)攻擊的關(guān)聯(lián)規(guī)則的例子加以說明。在開始階段是接收來自各個裝置所發(fā)出的DoS信息安全事件,然而這些事件之中并不是每個都是正確或是有可信度的警報。因此在跟著的過濾階段中便會將沒意義或是比較沒辨識性的事件加以過濾去除掉,只留下比較有代表性的事件進行分析。當該DoS事件通過了過濾階段所訂定的篩選條件后跟著便開始進入了案件的醞釀階段。這里所謂的醞釀階段指的是在某段時間中接收到一定數(shù)量通過了過濾階段后的信息安全事件。當醞釀階段達到了事前所設(shè)定的門檻值(例如每分鐘100個事件)之后,該案件便開始進入成案階段,而在成案階段時如果還是有后續(xù)的事件通過了之前過濾階段所設(shè)定的過濾條件,該關(guān)聯(lián)規(guī)則便會將其并案處理,而不會再產(chǎn)生新的案件。最后,直到信息安全處理人員接收到該案件發(fā)生的訊息并做完后續(xù)的處理動作之后,才會對該案件下結(jié)案通知,如此該案件才會進入到終止階段,完成了整個關(guān)聯(lián)程序。
在關(guān)聯(lián)一些特定的攻擊行為時,有時候需要的往往不只是一種事件類型而已。例如當黑客利用網(wǎng)絡(luò)環(huán)境探查程序?qū)Ψ?wù)器所開放的服務(wù)進行探查時,網(wǎng)絡(luò)環(huán)境探查程序會先對服務(wù)器進行大規(guī)模的服務(wù)端口掃描(port scan),之后再特別針對有開放連結(jié)的服務(wù)端口進行更進一步的標志擷取(banner grabbing)探測。為了檢測這種異常行為,關(guān)聯(lián)規(guī)則便需要在過濾階段里頭針對大規(guī)模服務(wù)端口掃描以及服務(wù)端口標志擷取這兩個事件進行過濾,接著將其送到的后的醞釀階段加以后續(xù)的統(tǒng)計。 因為網(wǎng)絡(luò)事件眾多,產(chǎn)業(yè)界的信息安全中心每天均需收集大量的信息安全事件資料,并且以即時(real-time)速度分析這些資料,事件關(guān)聯(lián)分析的效能便成為一個重要議題。特別是目前處理器(processor)的主流已經(jīng)走向多核心(multi-core)之際,如何有效率的配置工作到多個核心,以充分發(fā)揮所有核心的運算能力,會對整體效能有重大的影響。目前的技術(shù)有下列三項缺點。 第一, 一般事件關(guān)聯(lián)分析系統(tǒng)中,由排程模組(scheduling module)將事件分派到
5處理器的各核心處理,只考慮到核心的工作配置,并未包含核心內(nèi)線程(thread)的工作配置。較差的配置方式可能使多個線程執(zhí)行同一規(guī)則,使多個線程因競爭問題而彼此等待,影響效能。 第二,傳統(tǒng)技術(shù)未依照事件所對應的規(guī)則來分群,使得待分析的事件可能占用多個核心的高速緩沖存儲器(cache memory),并影響高速緩沖的效能。 第三,傳統(tǒng)技術(shù)的單一個關(guān)聯(lián)規(guī)則只能循序分析,在同類型的事件大量涌入時可能會使執(zhí)行該規(guī)則的核心負載過重,造成核心負載不平衡。
發(fā)明內(nèi)容
本發(fā)明提供一種事件關(guān)聯(lián)分析方法,可提高事件關(guān)聯(lián)分析的效能,并解決因同類型事件大量涌入而使核心負載不平衡的問題。 本發(fā)明另提供一種電腦程序產(chǎn)品,可執(zhí)行上述方法,進而提高事件關(guān)聯(lián)分析的效能,并且避免核心負載不平衡的問題。 本發(fā)明另提供一種電腦可讀取的記錄媒體,可記錄上述電腦程序產(chǎn)品,以執(zhí)行上
述方法,進而提高事件關(guān)聯(lián)分析的效能,并且避免核心負載不平衡的問題。 本發(fā)明另提供一種事件關(guān)聯(lián)分析系統(tǒng),可執(zhí)行上述方法,進而提高事件關(guān)聯(lián)分析
的效能,并且避免核心負載不平衡的問題。 本發(fā)明提出一種事件關(guān)聯(lián)分析方法,用于一事件關(guān)聯(lián)分析系統(tǒng)。該事件關(guān)聯(lián)分析系統(tǒng)包括多個處理單元,每一處理單元執(zhí)行多個指令序列(instructionsequence)。上述事件關(guān)聯(lián)分析方法包括下列步驟根據(jù)一事件所對應的規(guī)則群代號,將事件分派至上述多個處理單元其中之一。然后,根據(jù)上述事件所對應的規(guī)則類型,將事件分派至處理單元的多個
指令序列其中之一,由該指令序列分析該事件。上述規(guī)則群代號與規(guī)則類型為根據(jù)該事件的來源代號與事件類型而決定。 在本發(fā)明的一實施例中,上述的規(guī)則群包括多個規(guī)則,其中任何兩個規(guī)則皆對應至少一個相同的來源代號與事件類型組合的事件。 在本發(fā)明的一實施例中,上述的事件關(guān)聯(lián)分析方法更包括下列步驟根據(jù)一事件的分析產(chǎn)生新事件,并決定上述新事件所對應的規(guī)則群代號和規(guī)則類型。若新事件和原事件對應不同的處理單元,則根據(jù)新事件的規(guī)則群代號,將新事件分派至另一個處理單元。
在本發(fā)明的一實施例中,上述的根據(jù)規(guī)則群代號將事件分派至上述多個處理單元其中之一的步驟包括下列步驟將規(guī)則群代號輸入一雜湊函數(shù)(hashf皿ction),然后根據(jù)雜湊函數(shù)的輸出值將事件分派至上述多個處理單元其中之一。此外,上述事件關(guān)聯(lián)分析方法更包括下列步驟監(jiān)視上述多個處理單元的負載狀況,并且根據(jù)上述多個處理單元的負載狀況調(diào)整上述雜湊函數(shù)。 在本發(fā)明的一實施例中,對應同一規(guī)則群的事件皆分派到上述多個處理單元之中的同一處理單元,而且在每一上述處理單元中,對應同一規(guī)則類型的事件皆分派到上述多個指令序列之中的同一指令序列。 在本發(fā)明的一實施例中,若一事件對應一規(guī)則群的多個規(guī)則類型,則將上述事件分派至對應上述多個規(guī)則類型的每一個指令序列。 在本發(fā)明的一實施例中,上述的雜湊函數(shù)依照一負載平衡演算法(loadbalancingalgorithm),將對應同一規(guī)則的多個事件散開分派至上述多個處理單元的一子集合。
在本發(fā)明的一實施例中,若一預設(shè)條件不成立,則上述雜湊函數(shù)將對應一規(guī)則的事件皆分派到上述多個處理單元之中的同一處理單元。此預設(shè)條件為根據(jù)該處理單元的負載狀況而決定。反之,若上述預設(shè)條件成立,則上述雜湊函數(shù)將對應上述規(guī)則的多個事件散開分派至上述多個處理單元的一子集合。 在本發(fā)明的一實施例中,若對應一第一規(guī)則群以及一第二規(guī)則群的事件皆分派至上述多個處理單元其中的第一處理單元,而且一預設(shè)條件成立,則上述雜湊函數(shù)將對應第二規(guī)則群的事件改分派至上述多個處理單元其中的第二處理單元。上述預設(shè)條件為根據(jù)第一規(guī)則群在第一處理單元所造成的負載狀況而決定。 本發(fā)明另提出一種電腦程序產(chǎn)品,執(zhí)行如上所述的事件關(guān)聯(lián)分析方法。
本發(fā)明另提出一種電腦可讀取的記錄媒體,記錄如上所述的電腦程序產(chǎn)品。
本發(fā)明另提出一種事件關(guān)聯(lián)分析系統(tǒng),包括第一分派模組(dispatchermodule)以及多個處理單元。上述多個處理單元耦接于第一分派模組。每一上述處理單元包括一第二分派模組,并執(zhí)行多個指令序列。其中,第一分派模組根據(jù)一事件所對應的規(guī)則群代號將該事件分派至上述多個處理單元其中之一。接收該事件的處理單元的第二分派模組根據(jù)該事件所對應的規(guī)則類型,將該事件分派至該處理單元的上述多個指令序列其中之一,由該指令序列分析該事件。該事件的規(guī)則群代號與規(guī)則類型為根據(jù)該事件的來源代號與事件類型而決定。 基于上述,本發(fā)明采用處理單元與指令序列的兩階段事件分派機制。本發(fā)明將對應同一規(guī)則群的事件全分派至同一處理單元,使同一規(guī)則群的事件資料皆儲存在同一個處理單元的儲存裝置,可提高儲存裝置效能。本發(fā)明將對應同一規(guī)則的事件全分派至同一指令序列進行分析,可避免多個指令序列之間的競爭問題,提高事件關(guān)聯(lián)分析的效率。若同一規(guī)則的事件大量涌入,使單一處理單元的負載過高,本發(fā)明可將同一規(guī)則的事件散開分派至多個處理單元,以避免單一處理單元的負載過重。
為讓本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,以下結(jié)合附圖對本發(fā)明的具體實施方式
作詳細說明,其中 圖1是依照本發(fā)明一實施例的一種事件關(guān)聯(lián)分析系統(tǒng)的方塊圖。 圖2繪示依照本發(fā)明一實施例的一種事件對應查詢表。 圖3是依照本發(fā)明一實施例的一種事件關(guān)聯(lián)分析方法的流程圖。 主要元件符號說明 100:事件關(guān)聯(lián)分析系統(tǒng) 110:核心分派模組 120 :負載監(jiān)視模組 130、140、150 :核心 131 :線程分派模組 132 :高速緩沖存儲器 133-135 :線程
310-390 :流程圖步驟
具體實施例方式
圖1為根據(jù)本發(fā)明一實施例的事件關(guān)聯(lián)分析系統(tǒng)100的方塊圖。事件關(guān)聯(lián)分析系統(tǒng)100建構(gòu)在一個多核心處理器上,包括核心分派模組(core dispatcher) 110、負載監(jiān)視模組(load watcher) 120、以及上述處理器的核心130、 140、 150。雖然圖l僅繪示三個核心,本發(fā)明并不限制核心的數(shù)量。每一個核心都有相同的結(jié)構(gòu)。以核心130為例,核心130包括線程分派模組(thread dispatcher) 131以及高速緩沖存儲器132。每一個核心同時執(zhí)行多個線程,例如核心130的線程133、 134、 135。負載監(jiān)視模組120耦接于核心分派模組110。每一個核心皆耦接于核心分派模組110以及負載監(jiān)視模組120。 核心分派模組110、負載監(jiān)視模組120、以及每個核心的線程分派模組都可以是硬件或軟件。在本實施例,上述三種模組都是軟件。線程分派模組由各自所屬的核心執(zhí)行。
本實施例的特色之一是核心與線程的兩階段事件分派。核心分派模組110負責將事件分派至事件關(guān)聯(lián)分析系統(tǒng)100的多個核心其中之一。當一個核心接收到分派的事件之后,則由其中的線程分派模組將事件分派到上述核心所執(zhí)行多個線程其中之一,由線程來分析事件。事件分派到哪個核心,以及分派到哪個線程,是根據(jù)一個事先制定的查詢表而決定。 圖2繪示上述查詢表的一個范例。圖2的查詢表中,每一筆記錄包括來源代號(source ID)、事件類型(event ID)、規(guī)則群代號(equivalence class ID)、以及規(guī)則類型(rule type)這四個欄位。 來源代號代表產(chǎn)生事件的來源,可以是某個裝置或軟件。事件類型代表事件的分類。舉例而言,如果入侵檢測系統(tǒng)(IDS :intrusion detection system)檢測到入侵事件,其來源代號就是入侵檢測系統(tǒng)的代號,事件類型就是一個表示入侵事件的代號。如果某一個電腦或設(shè)備的管理員(administrator)帳號被外人登入,來源代號就是遭受登入的電腦或設(shè)備的代號,事件類型就是另一個代號,表示管理員帳號被外人登入。每個事件的資料都包括一個來源代號和一個事件類型,根據(jù)來源代號和事件類型,可以在查詢表中查出此事件所對應的規(guī)則群代號和規(guī)則類型。上述的規(guī)則群代號和規(guī)則類型,就是在各核心之間以及各線程之間分派事件的依據(jù)。上述規(guī)則類型也可以視為規(guī)則的代號。
事件關(guān)聯(lián)分析系統(tǒng)100的使用者必須在事前設(shè)計規(guī)則,并且剖析規(guī)則,了解每個規(guī)則會分析到哪個來源及哪個類型的事件,即可得知規(guī)則與事件的對應關(guān)系,做為劃分規(guī)則群的依據(jù)。規(guī)則群的建立是參考每個規(guī)則處理的事件,建立的方式如下如果兩個不同的規(guī)則&和Rj,會處理一組具有共同的來源代號和事件類型的事件,則&和Rj具有一種關(guān)系。依據(jù)集合論(set theory),很容易證明這樣的關(guān)系具有反身(reflexive)、對稱(symmetric)、以及遞移(transitive)的特性,因此可以把整個規(guī)則集合分割成多個規(guī)則群。每一個規(guī)則群可以包括一個或多個規(guī)則。如果一個規(guī)則群包括多個規(guī)則,其中任何兩個規(guī)則都會對應至少一個相同的來源代號與事件類型組合的事件。 例如在圖2的查詢表中,「DC0M安全漏洞」和「WINCMD安全漏洞」這兩條規(guī)則因為都會分析到來源代號為1001而且事件類型為213的事件,所以歸屬在同一個規(guī)則群,其規(guī)則群代號為85。上述DCOM是微軟公司(MicrosoftCorporation)的分散式組成物件模型(distributed component object model)技術(shù)的縮寫,WINCMD是可在微軟公司的Windows操作系統(tǒng)執(zhí)行的一個工具程序。舉另一個例子,當入侵檢測系統(tǒng)檢測到針對微軟安全性弱點(Windows Bulletins)的攻擊時,受害主機的操作系統(tǒng)版本信息可以看成另一個事件,和攻擊事件一起送入事件關(guān)聯(lián)分析系統(tǒng)100。因為攻擊事件與版本信息隸屬同一規(guī)則,所以必然屬于同一個規(guī)則群。 制定了查詢表之后,就可以進行事件關(guān)聯(lián)分析。圖3是本實施例的事件關(guān)聯(lián)分析系統(tǒng)100所執(zhí)行的事件關(guān)聯(lián)分析方法的流程圖。每當事件關(guān)聯(lián)分析系統(tǒng)100接收到一個事件,就根據(jù)事件的來源代號與事件類型,查詢?nèi)鐖D2所示的查詢表,以決定事件所對應的規(guī)則群代號與規(guī)則類型(步驟310)。步驟310的查表動作可以由核心分派模組110執(zhí)行,也可以由事件關(guān)聯(lián)分析系統(tǒng)100的另一個獨立模組(未繪示于圖中)執(zhí)行,這個獨立模組可以是硬件或軟件。此外,步驟310的查表動作也可以由一個外部系統(tǒng)或由人工執(zhí)行,然后將查詢所得的規(guī)則群代號與規(guī)則類型附在事件本身,再將事件傳送至事件關(guān)聯(lián)分析系統(tǒng)IOO的核心分派模組110。 接下來,核心分派模組110接收事件(步驟320),將事件的規(guī)則群代號輸入一個雜湊函數(shù)(步驟330),并且依照雜湊函數(shù)的輸出值,將事件分派到核心130、140、150其中之一(步驟340)。上述雜湊函數(shù)決定事件與核心130、140、150之間的對應關(guān)系。本實施例中,核心分派模組110的雜湊函數(shù)會將對應同一規(guī)則群的事件,分派到同一個核心。
由于需要分析這個事件的規(guī)則都在同一個規(guī)則群中,所以也就都在同一個核心執(zhí)行。因此該事件的資料只需占用一個核心的高速緩沖存儲器。在一般核心內(nèi)高速緩沖存儲器很有限的狀況下,能夠有效節(jié)省高速緩沖存儲器的使用。換個角度看,因為同一個規(guī)則群內(nèi)的規(guī)則可能有共同要分析的事件,因此共同的事件資料就可在同一個核心的高速緩沖存儲器內(nèi)獲得。而且因為能有效節(jié)省高速緩沖存儲器的空間,所以高速緩沖存儲器能容納更多的事件資料,對高速緩沖存儲器的命中率更有幫助。在目前處理器與一般存儲器速度差距逐漸拉大的情形下,能有效地在高速緩沖存儲器中獲得需要分析的事件資料,對事件關(guān)聯(lián)分析系統(tǒng)100的整體效能有很大影響。 假設(shè)核心分派模組110將上述事件分派到核心130,這個事件會由線程分派模組131接收(步驟350)。線程分派模組131會根據(jù)事件的規(guī)則群代號,檢查事件是否該由核心130處理(步驟360),如果不是,線程分派模組131會將事件傳送至核心分派模組IIO(步驟320),讓核心分派模組110將事件分派至正確的核心。 若事件確實該由核心130處理,則線程分派模組131根據(jù)事件所對應的規(guī)則類型,查表依據(jù)哪些規(guī)則會分析該事件,將事件分派到核心130所執(zhí)行的一個或多個線程(步驟370)。在每一個核心中,每個規(guī)則類型都對應到一個線程,接收到事件的線程會執(zhí)行規(guī)則,進行事件分析(步驟380)。 線程分派模組131會將對應同一個規(guī)則類型的事件都分派到同一個線程,也就是一個規(guī)則對應一個線程。因此規(guī)則在分析事件時所需要的儲存中間狀態(tài)的資料結(jié)構(gòu),就都是在同一個線程以內(nèi)。如此可避免與其他線程共享資料,可以減少線程之間為了競爭問題所做的等待,因而得到整體效能上的提高。 如果有多條規(guī)則需要分析同一事件,這個事件會對應到規(guī)則群中的多個規(guī)則類型,而且線程分派模組131會將此事件分派到對應上述多個規(guī)則類型的每一個線程。執(zhí)行
9規(guī)則時,線程會用到該事件的資料,該事件的資料會進入高速緩沖存儲器132,讓分析該事件的多個線程共用。 每一個線程內(nèi)的規(guī)則會先過濾掉無意義或多余的事件,再進行包括醞釀階段、成案階段、并案階段的事件分析。當規(guī)則需要分析的事件均已完成,則在并案后,事件關(guān)聯(lián)分析系統(tǒng)100會將案件通知信息安全處理人員,做最后的處理。 —個事件的分析可能會產(chǎn)生后續(xù)的新事件。如圖3所示,若產(chǎn)生新事件,分析原事件的線程會決定新事件所對應的規(guī)則群代號和規(guī)則類型(步驟390),然后將新事件傳送至線程分派模組131 (步驟350)。線程分派模組131根據(jù)新事件的規(guī)則群代號,檢查新事件是否應該由核心130處理(步驟360)。如果原事件和新事件對應同一核心,線程分派模組131會用前述的查表方式,將新事件分派到線程130、 140、 150其中之一。如果新事件對應不同的核心,線程分派模組131會將新事件傳送至核心分派模組110 (步驟320)。由核心分派模組110根據(jù)新事件的規(guī)則群代號,將新事件分派至正確的核心。 負載監(jiān)視模組120的作用是監(jiān)視核心130、 140、 150的負載狀況,并根據(jù)上述核心的負載狀況調(diào)整核心分派模組110的雜湊函數(shù),盡量使上述核心的負載平衡。舉例而言,一般情況下,規(guī)則群的數(shù)量通常大于核心數(shù)量,所以每一個核心通常要分析不只一個規(guī)則群的事件。如果有某一個核心的某一個規(guī)則群事件特別多,負載太重,使得預設(shè)的條件成立,則負載監(jiān)視模組120可以調(diào)整核心分派模組110的雜湊函數(shù),使核心分派模組110將上述核心的事件較少的其他規(guī)則群改分派到其他核心,以使各核心的負載平衡。上述預設(shè)條件可依據(jù)傳統(tǒng)的負載平衡技術(shù)來決定,例如可根據(jù)事件特別多的那個規(guī)則群在所屬核心所造成的負載狀況而決定。 如果有對應同一規(guī)則的事件大量涌入,可能會使某個核心的負載提高到即使只處理一個規(guī)則群,也無法即時分析的程度。這時候可以事前將有大量事件涌入的規(guī)則分成幾個獨立的子規(guī)則,分散到幾個核心去平行處理。在這種情況下,負載監(jiān)視模組120會在所有核心中選出一個子集合,調(diào)整核心分派模組110的雜湊函數(shù),使核心分派模組110根據(jù)調(diào)整后的雜湊函數(shù),將上述對應同一規(guī)則的大量事件散開分派到上述子集合的多個核心。調(diào)整后的雜湊函數(shù)可以使用傳統(tǒng)的負載平衡演算法,決定子集合包含哪些核心,以及如何將上述的大量事件分派到子集合內(nèi)的核心。 下面舉一個子規(guī)則的范例,例如阻絕服務(wù)(DoS)攻擊。為了避免同一類型的攻擊
事件被分派到同一核心,使得該核心負載過重,可以把分析阻絕服務(wù)攻擊事件的規(guī)則分成
幾個獨立的子規(guī)則,由各子規(guī)則處理過濾及醞釀等先期工作。舉例來說,如果檢測SYN泛濫
攻擊(SYN flooding,阻絕服務(wù)攻擊的一種)的門檻值(threshold)如下 門檻值在10秒內(nèi)收到了超過500個未完成連線的SYN封包的事件,就視為SYN
泛濫攻擊。 這里就可以讓每個獨立的子規(guī)則分別過濾并計算5秒內(nèi)這類事件的個數(shù)。這些
子規(guī)則由不同的核心分析。核心分派模組iio可以用一般的負載平衡方式,例如輪流分派(round-robin),把這類事件分散到個別的子規(guī)則統(tǒng)計。各子規(guī)則把累計出來的事件個數(shù)部分總和及相關(guān)資料包裝在一個新產(chǎn)生的事件中,例如一條子規(guī)則回報10秒內(nèi)有100個此類事件,另一條回報80個等,再送回核心分派模組110或同一核心的線程分派模組,以分派這些新事件到匯整的規(guī)則。這時候的事件數(shù)量已經(jīng)比原始事件大幅減少。匯整的規(guī)則會把來
10自各子規(guī)則的部分總和加總,統(tǒng)計出所有事件的個數(shù),就可以知道是否有超過上述的門檻值,以決定是否成案以及進行后續(xù)的并案動作,并產(chǎn)生最后的案件。因為事件是交給分散在不同核心的子規(guī)則分析,可以避免單一核心負載過重。 又如在前述網(wǎng)絡(luò)環(huán)境探查程序的例子中,因為可能不只一種事件類型。這時各子規(guī)則可以就各自收到的不同事件類型的事件先進行過濾,并就自己收到的部分分析服務(wù)端口的掃描范圍。再把這些結(jié)果產(chǎn)生一個新的事件,送回給前端的核心分派模組或線程分派模組,分派到匯整的規(guī)則以進行后續(xù)的階段。 子規(guī)則怎么切割,是使用者事先制定的。例如可以事先切割較復雜、工作量較大的規(guī)則?;蛟u估實際系統(tǒng)高速緩沖存儲器的效能,決定適當?shù)淖右?guī)則數(shù)目且/或什么情況下該做子規(guī)則的負載平衡,以調(diào)校最佳化的效能。 子規(guī)則可以一開始就啟用,或視核心的負載狀況而動態(tài)啟用。例如可以根據(jù)核心的負載狀況制定一個預設(shè)條件,由負載監(jiān)視模組120檢查這個預設(shè)條件。如果預設(shè)條件不成立,表示核心負載還在可接受范圍,核心分派模組110可根據(jù)原先的雜湊函數(shù),將對應同一規(guī)則的事件皆分派到同一個核心。反之,如果預設(shè)條件成立,表示有單一核心負載過高,負載監(jiān)視模組120就會調(diào)整雜湊函數(shù),使核心分派模組110將對應同一規(guī)則的大量事件散開分派至多個核心。 以上實施例的事件關(guān)聯(lián)分析系統(tǒng)是建構(gòu)在多核心處理器之上,在本發(fā)明的其他實施例中,可以采用其他設(shè)計。例如事件關(guān)聯(lián)分析系統(tǒng)可以建構(gòu)在包括多個處理單元的硬件系統(tǒng)上,每個處理單元包括一個儲存裝置,并執(zhí)行多個指令序列。如果上述硬件系統(tǒng)是多核心處理器,處理單元就是處理器的核心,儲存裝置就是核心的高速緩沖存儲器,指令序列就是線程。如果上述硬件系統(tǒng)是多處理器電腦,處理單元就是電腦的處理器,儲存裝置就是處理器的高速緩沖存儲器,指令序列就是處理器執(zhí)行的程序(process)或線程。上述硬件系統(tǒng)也可以是多個電腦組成的網(wǎng)絡(luò),在這種情況下,處理單元就是網(wǎng)絡(luò)中的電腦,儲存裝置就是電腦的存儲器,指令序列就是電腦執(zhí)行的程序或線程。 以上實施例的事件關(guān)聯(lián)分析方法可以由一個電腦程序產(chǎn)品執(zhí)行,而上述電腦程序產(chǎn)品可以由以上實施例的事件關(guān)聯(lián)分析系統(tǒng)執(zhí)行,也可以儲存在任何一種電腦可讀取的記錄媒體中。 相對于傳統(tǒng)技術(shù),本發(fā)明將分析規(guī)則依所處理的事件適當分群,使得待分析的事件只需要占用一個處理單元的儲存裝置,不會占用多個處理單元的儲存裝置,故能減少儲存裝置的占用,并提高儲存裝置的命中率和效率。 本發(fā)明采用兩階段的事件分派機制。除了將事件分派至相關(guān)分析規(guī)則所在的處理單元,也依分析規(guī)則再將事件分派至指令序列。如此每個指令序列可擁有各自獨立的內(nèi)部資料結(jié)構(gòu)(例如計數(shù)器、計時器、連線表、各種狀態(tài)等等),可避免指令序列因存取資料的競爭問題而彼此等待,提高事件分析的效能。本發(fā)明的兩階段分派機制也方便處理計時器相關(guān)的規(guī)則(例如十分鐘內(nèi)的事件發(fā)生個數(shù))與規(guī)則間的連系(例如一個規(guī)則分析完事件后再交給下一個規(guī)則)。 本發(fā)明可以考慮多個處理單元的平行執(zhí)行,將原本一個規(guī)則的分析工作分攤至在多個不同處理單元的獨立子規(guī)則分析,再把各自的部分分析結(jié)果包成新的事件,交由一條匯整的規(guī)則產(chǎn)生最后的結(jié)果。因此可以避免同類型的事件大量涌入時可能會使執(zhí)行該規(guī)則的處理單元負載過重,達到負載平衡的目的。 雖然本發(fā)明已以較佳實施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許的修改和完善,因此本發(fā)明的保護范圍當以權(quán)利要求書所界定的為準。
權(quán)利要求
一種事件關(guān)聯(lián)分析方法,用于一事件關(guān)聯(lián)分析系統(tǒng),該事件關(guān)聯(lián)分析系統(tǒng)包括多個處理單元,每一上述處理單元執(zhí)行多個指令序列,該事件關(guān)聯(lián)分析方法包括根據(jù)一第一事件所對應的規(guī)則群代號將該第一事件分派至上述多個處理單元其中之一;以及根據(jù)該第一事件所對應的規(guī)則類型將該第一事件分派至該處理單元的上述多個指令序列其中之一,由該指令序列分析該第一事件,其中該規(guī)則群代號與該規(guī)則類型為根據(jù)該第一事件的來源代號與事件類型而決定。
2. 如權(quán)利要求1所述的事件關(guān)聯(lián)分析方法,其特征在于,該規(guī)則群包括多個規(guī)則,上述 多個規(guī)則當中任何兩個規(guī)則皆對應至少一個相同的來源代號與事件類型組合的事件。
3. 如權(quán)利要求1所述的事件關(guān)聯(lián)分析方法,其特征在于,該規(guī)則群代號與該規(guī)則類型 為根據(jù)該來源代號與該事件類型查詢一查詢表而決定。
4. 如權(quán)利要求1所述的事件關(guān)聯(lián)分析方法,其特征在于,更包括根據(jù)該第一事件的分析產(chǎn)生一第二事件,并決定該第二事件所對應的規(guī)則群代號和規(guī) 則類型;以及若該第二事件和該第一事件對應不同的處理單元,則根據(jù)該第二事件的規(guī)則群代號, 將該第二事件分派至上述多個處理單元其中的另一個處理單元。
5. 如權(quán)利要求1所述的事件關(guān)聯(lián)分析方法,其特征在于,根據(jù)該規(guī)則群代號將該第一 事件分派至上述多個處理單元其中之一的步驟包括將該規(guī)則群代號輸入一雜湊函數(shù);以及根據(jù)該雜湊函數(shù)的輸出值將該第一事件分派至上述多個處理單元其中之一; 而且該事件關(guān)聯(lián)分析方法更包括 監(jiān)視上述多個處理單元的負載狀況;以及 根據(jù)上述多個處理單元的負載狀況調(diào)整該雜湊函數(shù)。
6. 如權(quán)利要求5所述的事件關(guān)聯(lián)分析方法,其特征在于,對應同一規(guī)則群的事件皆分 派到上述多個處理單元之中的同一處理單元,而且在每一上述處理單元中,對應同一規(guī)則 類型的事件皆分派到上述多個指令序列之中的同一指令序列。
7. 如權(quán)利要求6所述的事件關(guān)聯(lián)分析方法,其特征在于,若該第一事件對應該規(guī)則群 的多個規(guī)則類型,則將該第一事件分派至對應上述多個規(guī)則類型的每一上述指令序列。
8. 如權(quán)利要求5所述的事件關(guān)聯(lián)分析方法,其特征在于,更包括該雜湊函數(shù)依照一負載平衡演算法,將對應同一規(guī)則的多個事件散開分派至上述多個 處理單元的一子集合。
9. 如權(quán)利要求5所述的事件關(guān)聯(lián)分析方法,其特征在于,更包括若一預設(shè)條件不成立,則該雜湊函數(shù)將對應一規(guī)則的事件皆分派到上述多個處理單元 之中的同一處理單元,其中該預設(shè)條件為根據(jù)該處理單元的負載狀況而決定;以及若該預設(shè)條件成立,則該雜湊函數(shù)將對應該規(guī)則的多個事件散開分派至上述多個處理 單元的一子集合。
10. 如權(quán)利要求5所述的事件關(guān)聯(lián)分析方法,其特征在于,更包括若對應一第一規(guī)則群以及一第二規(guī)則群的事件皆分派至上述多個處理單元其中的一 第一處理單元,而且一預設(shè)條件成立,則該雜湊函數(shù)將對應該第二規(guī)則群的事件改分派至上述多個處理單元其中的一第二處理單元,該預設(shè)條件為根據(jù)該第一規(guī)則群在該第一處理 單元所造成的負載狀況而決定。
11. 一種電腦程序產(chǎn)品,執(zhí)行如權(quán)利要求1所述的事件關(guān)聯(lián)分析方法。
12. —種電腦可讀取的記錄媒體,記錄如權(quán)利要求11所述的電腦程序產(chǎn)品。
13. —種事件關(guān)聯(lián)分析系統(tǒng),包括 一第一分派模組;以及多個處理單元,耦接于該第一分派模組,每一上述處理單元包括一第二分派模組,并執(zhí) 行多個指令序列;其中該第一分派模組根據(jù)該第一事件所對應的規(guī)則群代號將該第一事件分派至上述多個 處理單元其中之一;接收該第一事件的該處理單元的該第二分派模組根據(jù)該第一事件所對應的規(guī)則類型 將該第一事件分派至該處理單元的上述多個指令序列其中之一,由該指令序列分析該第一 事件;該規(guī)則群代號與該規(guī)則類型為根據(jù)該第一事件的來源代號與事件類型而決定。
14. 如權(quán)利要求13所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,該規(guī)則群包括多個規(guī)則,上 述多個規(guī)則當中任何兩個規(guī)則皆對應至少一個相同的來源代號與事件類型組合的事件。
15. 如權(quán)利要求13所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,該規(guī)則群代號與該規(guī)則類 型為根據(jù)該來源代號與該事件類型查詢一查詢表而決定。
16. 如權(quán)利要求13所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,該規(guī)則群代號與該規(guī)則類 型為該事件關(guān)聯(lián)分析系統(tǒng)所決定。
17. 如權(quán)利要求13所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,該規(guī)則群代號與該規(guī)則類 型為一外部系統(tǒng)所決定,該外部系統(tǒng)將該規(guī)則群代號與該規(guī)則類型并入該第一事件,然后 將該第一事件傳送至該事件關(guān)聯(lián)分析系統(tǒng)。
18. 如權(quán)利要求13所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,接收該第一事件的該指令 序列根據(jù)該第一事件的分析產(chǎn)生一第二事件,決定該第二事件所對應的規(guī)則群代號和規(guī)則 類型,并且將該第二事件傳送至該第二分派模組;若該第二事件和該第一事件對應不同的 處理單元,則該第二分派模組將該第二事件傳送至該第一分派模組,該第一分派模組根據(jù) 該第二事件的規(guī)則群代號,將該第二事件分派至上述多個處理單元其特征在于的另一個處 理單元。
19. 如權(quán)利要求13所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,該第一分派模組將該規(guī)則 群代號輸入一雜湊函數(shù),并根據(jù)該雜湊函數(shù)的輸出值將該第一事件分派至上述多個處理單元其中之一,而且該事件關(guān)聯(lián)分析系統(tǒng)更包括一負載監(jiān)視模組,耦接于該第一分派模組以及上述多個處理單元,監(jiān)視上述多個處理 單元的負載狀況,并根據(jù)上述多個處理單元的負載狀況調(diào)整該雜湊函數(shù)。
20. 如權(quán)利要求19所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,該第一分派模組將對應同 一規(guī)則群的事件皆分派到上述多個處理單元之中的同一處理單元,而且在每一上述處理單 元中,該第二分派模組將對應同一規(guī)則類型的事件皆分派到上述多個指令序列之中的同一 指令序列。
21. 如權(quán)利要求20所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,若該第一事件對應該規(guī)則群的多個規(guī)則類型,則該第二分派模組將該第一事件分派至對應上述多個規(guī)則類型的每一 上述指令序列。
22. 如權(quán)利要求19所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,該第一分派模組根據(jù)該雜 湊函數(shù)包括的一負載平衡演算法,將對應同一規(guī)則的多個事件散開分派至上述多個處理單 元的一子集合。
23. 如權(quán)利要求19所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,若一預設(shè)條件不成立,則該 第一分派模組根據(jù)該雜湊函數(shù)將對應一規(guī)則的事件皆分派到上述多個處理單元之中的同 一處理單元,其中該預設(shè)條件為根據(jù)該處理單元的負載狀況而決定;若該預設(shè)條件成立,則 該第一分派模組根據(jù)該雜湊函數(shù)將對應該規(guī)則的多個事件散開分派至上述多個處理單元 的一子集合。
24. 如權(quán)利要求19所述的事件關(guān)聯(lián)分析系統(tǒng),其特征在于,若對應一第一規(guī)則群以及 一第二規(guī)則群的事件皆分派至上述多個處理單元其中的一第一處理單元,而且一預設(shè)條件 成立,則該第一分派模組根據(jù)該雜湊函數(shù)將對應該第二規(guī)則群的事件改分派至上述多個處 理單元其中的一第二處理單元,該預設(shè)條件為根據(jù)該第一規(guī)則群在該第一處理單元所造成的負載狀況而決定。
全文摘要
本發(fā)明提出一種事件關(guān)聯(lián)分析方法,與其對應的系統(tǒng)、電腦程序產(chǎn)品、以及電腦可讀取的記錄媒體。上述方法用于上述系統(tǒng)。該系統(tǒng)包括多個處理單元,每一處理單元執(zhí)行多個指令序列。上述事件關(guān)聯(lián)分析方法包括下列步驟根據(jù)一事件所對應的規(guī)則群代號,將事件分派至上述多個處理單元其中之一。然后,根據(jù)上述事件所對應的規(guī)則類型,將事件分派至處理單元的多個指令序列其中之一,由該指令序列分析該事件。上述規(guī)則群代號與規(guī)則類型為根據(jù)該事件的來源代號與事件類型而決定。
文檔編號H04L12/24GK101753332SQ200810179499
公開日2010年6月23日 申請日期2008年12月3日 優(yōu)先權(quán)日2008年12月3日
發(fā)明者吳建興, 林志鴻, 林柏青, 田謹維 申請人:財團法人資訊工業(yè)策進會