亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

入侵防御系統(tǒng)的升級方法和裝置的制作方法

文檔序號:7717161閱讀:305來源:國知局
專利名稱:入侵防御系統(tǒng)的升級方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明實施例涉及通信技術(shù)領(lǐng)域,特別涉及一種入侵防御系統(tǒng)的升級方法和裝置。
背景技術(shù)
隨著網(wǎng)絡攻擊技術(shù)的不斷提高和網(wǎng)絡安全漏洞的不斷發(fā)現(xiàn),傳統(tǒng)的防火墻加入侵 檢測系統(tǒng)(Intrusion Detection System ;以下簡稱IDS)的技術(shù),已經(jīng)無法應對一些安全 威脅。在這種情況下,入侵防御系統(tǒng)(Intrusion PreventionSystem ;以下簡稱IPS)技術(shù) 應運而生,IPS可以深度感知并檢測流經(jīng)該IPS的報文,對惡意報文進行丟棄以阻斷攻擊, 對濫用報文進行限流以保護網(wǎng)絡帶寬資源。 部署在報文轉(zhuǎn)發(fā)路徑上的IPS可以根據(jù)預先設(shè)定的安全策略,對流經(jīng)該IPS的每 個報文進行深度檢測;其中,對報文進行深度檢測包括對報文進行協(xié)議分析跟蹤、特征匹 配、流量統(tǒng)計分析和事件關(guān)聯(lián)分析等。對報文進行檢測時,一旦發(fā)現(xiàn)隱藏于報文中的網(wǎng)絡攻 擊,IPS可以根據(jù)該網(wǎng)絡攻擊的威脅級別立即采取抵御措施,該抵御措施包括向管理中心 告警;丟棄該報文;切斷此次應用會話;切斷此次TCP連接。在安全策略設(shè)定好之后,IPS需 要對安全策略進行編譯處理,對每個安全策略對應生成一套狀態(tài)機,供報文檢測時使用;如 果安全策略被修改,則IPS需要重新編譯生成新的狀態(tài)機,供報文檢測時使用。
IPS的升級包括兩種情況引擎與特征庫一同升級和只升級特征庫。升級引擎會 更新引擎接口的動態(tài)鏈接庫;升級特征庫會更新簽名庫的內(nèi)容,例如添加、修改或刪除簽 名。在IPS升級之后,升級之前配置的安全策略會根據(jù)升級后更新的內(nèi)容進行相應地修改, 并重新編譯生成新的狀態(tài)機。當IPS對一條數(shù)據(jù)流的報文進行檢測時,對相同數(shù)據(jù)流的報 文,IPS使用相同的狀態(tài)機進行檢測。 一條數(shù)據(jù)流的報文必須從首報文開始,按順序且沒有 重疊地送入引擎檢測,否則,IPS可能會產(chǎn)生漏檢和誤報。 現(xiàn)有技術(shù)中,IPS升級成功后的報文處理方式為如果當前報文仍屬于IPS升級前 檢測的數(shù)據(jù)流,則不檢測該報文,直接放過;如果當前報文屬于升級后新建的數(shù)據(jù)流,則將 該報文送入引擎進行檢測處理。 在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題IPS升級成功 后,現(xiàn)有的報文處理方式只能對升級后新建的數(shù)據(jù)流的報文進行掃描,如果升級前的數(shù)據(jù) 流仍然要持續(xù)較長時間,或者雖然升級前的數(shù)據(jù)流結(jié)束了但是會話表還未老化,又發(fā)起了 新的相同的連接,則IPS不會對屬于上述升級前的數(shù)據(jù)流的報文進行檢測,造成報文的漏 檢測。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種入侵防御系統(tǒng)的升級方法和裝置,以實現(xiàn)加載多個引擎, 編譯出多組狀態(tài)機同時工作,實現(xiàn)在對入侵防御系統(tǒng)升級的同時最大限度地不中斷升級操 作前的數(shù)據(jù)流的報文檢測業(yè)務。
本發(fā)明實施例提供一種入侵防御系統(tǒng)的升級方法,包括 創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包; 在所述進程中,加載所述升級包中的引擎,設(shè)置并記錄加載的引擎的標識;通過所
述加載的引擎加載并編譯所述升級包中的特征庫,生成狀態(tài)機,升級所述入侵防御系統(tǒng)。 本發(fā)明實施例還提供一種入侵防御系統(tǒng)的升級裝置,包括 創(chuàng)建模塊,用于創(chuàng)建進程; 下載模塊,用于在所述創(chuàng)建模塊創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升 級包; 加載模塊,用于在所述創(chuàng)建模塊創(chuàng)建的進程中,加載所述下載模塊下載的升級包 中的引擎,設(shè)置并記錄加載的引擎的標識; 編譯模塊,用于在所述創(chuàng)建模塊創(chuàng)建的進程中,通過所述加載模塊加載的引擎加 載并編譯所述下載模塊下載的升級包中的特征庫,生成狀態(tài)機,升級所述入侵防御系統(tǒng)。
本發(fā)明實施例通過創(chuàng)建進程,并在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的 升級包,在該創(chuàng)建的進程中加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識,并通過
加載的引擎加載并編譯該升級包中的特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng)。本發(fā)明實 施例不僅可以在每次需要升級引擎時,均創(chuàng)建一個新的進程,在一個進程中加載一個引擎;
也可以只創(chuàng)建一個進程,在同一個進程中加載多個引擎,從而實現(xiàn)了在入侵防御系統(tǒng)的升 級過程中加載多個引擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同 時最大限度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務。


為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些 實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。
圖1為本發(fā)明入侵防御系統(tǒng)的升級方法一個實施例的流程圖;
圖2為本發(fā)明對報文進行檢測的一個實施例的流程圖;
圖3為本發(fā)明入侵防御系統(tǒng)的升級方法另一個實施例的流程圖;
圖4為本發(fā)明入侵防御系統(tǒng)的升級方法再一個實施例的流程圖;
圖5為本發(fā)明對報文進行檢測的另一個實施例的流程圖;
圖6為本發(fā)明入侵防御系統(tǒng)的升級方法又一個實施例的流程圖;
圖7為本發(fā)明入侵防御系統(tǒng)的升級裝置一個實施例的結(jié)構(gòu)示意圖;
圖8為本發(fā)明入侵防御系統(tǒng)的升級裝置另一個實施例的結(jié)構(gòu)示意圖;
圖9為本發(fā)明入侵防御系統(tǒng)的升級裝置再一個實施例的結(jié)構(gòu)示意圖;
圖10為本發(fā)明入侵防御系統(tǒng)的升級裝置又一個實施例的結(jié)構(gòu)示意圖。
具體實施例方式
下面將結(jié)合本發(fā)明中的附圖,對本發(fā)明中的技術(shù)方案進行清楚、完整地描述,顯 然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬 于本發(fā)明保護的范圍。 圖l為本發(fā)明入侵防御系統(tǒng)的升級方法一個實施例的流程圖,如圖l所示,該實施 例包括 步驟101,創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包。
本實施例中,每次需要對入侵防御系統(tǒng)進行升級時,均創(chuàng)建一個新的進程;具體 地,可以在每次引擎和特征庫一同升級時,或者,只升級特征庫時,均創(chuàng)建一個新的進程;然 后在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包。 步驟102,在上述進程中,加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識。
具體地,加載的引擎的標識可以按照加載時間的先后設(shè)置,例如按照加載時間由
先至后的順序,將引擎的標識分別設(shè)為1,2, ... , n,即標識為1的引擎是最先加載的引擎。
以上只是設(shè)置引擎的標識的一種方式,本實施例并不僅限于此,還可通過其他方式設(shè)置引
擎的標識,只要設(shè)置的引擎的標識可以區(qū)分出引擎加載的先后順序即可。 步驟103,在上述進程中,通過加載的引擎加載并編譯該升級包中的特征庫,生成
狀態(tài)機,升級該入侵防御系統(tǒng)。 本實施例中,每次需要對入侵防御系統(tǒng)進行升級時,執(zhí)行步驟101 步驟103,完 成對入侵防御系統(tǒng)的升級。具體地,可以在每次引擎和特征庫一同升級時,或者,只升級特 征庫時,均創(chuàng)建一個新的進程,執(zhí)行步驟101 步驟103。其中,在只升級特征庫時,可以通 過記錄的引擎的標識,確定當前最新加載的引擎,并在新創(chuàng)建的進程中,重新加載當前最新 加載的引擎,然后為該重新加載的引擎設(shè)置一個新的引擎的標識。因此在本實施例中,引擎 和狀態(tài)機一一對應。 在接收到報文之后,可以根據(jù)接收到的報文的報文頭中的信息和記錄的引擎的標
識確定對報文進行檢測的引擎,通過確定的引擎調(diào)用生成的狀態(tài)機,對報文進行檢測。 下面結(jié)合圖2,對本實施例中對報文進行檢測的方式進行詳細介紹。 圖2為本發(fā)明對報文進行檢測的一個實施例的流程圖,如圖2所示,本實施例對報
文進行檢測的流程包括 步驟201,接收報文。 步驟202,根據(jù)該報文的報文頭中的信息判斷該報文是否為數(shù)據(jù)流的首報文。如果 該報文是數(shù)據(jù)流的首報文,則執(zhí)行步驟203 ;如果該報文不是數(shù)據(jù)流的首報文,則執(zhí)行步驟 204。 具體地,判斷報文是否為數(shù)據(jù)流的首報文可以為解析報文的報文頭,確定該報文 采用的傳輸協(xié)議;當該報文采用傳輸控制協(xié)議(TransmissionControl Protocol ;以下簡 稱TCP)傳輸時,如果該報文的報文頭中包括首報文標識,則該報文是數(shù)據(jù)流的首報文;如
果該報文的報文頭中不包括首報文標識,則該報文不是數(shù)據(jù)流的首報文。當該報文采用用
戶數(shù)據(jù)報協(xié)議(UserDatagram Protocol ;以下簡稱UDP)傳輸時,則需要根據(jù)該報文的五 元組信息,在入侵防御系統(tǒng)中查找是否有該五元組信息的記錄,如果沒有查找到該五元組 信息的記錄,則可以確定該報文是數(shù)據(jù)流的首報文,記錄首報文的五元組信息;如果查找到 該五元組信息的記錄,則說明該報文不是數(shù)據(jù)流的首報文。其中,報文的五元組信息包括 報文的源因特網(wǎng)協(xié)議(Internet Protocol ;以下簡稱IP)地址、目的IP地址、源端口 、目的端口和報文所采用的傳輸協(xié)議;屬于同一數(shù)據(jù)流的報文具有相同的五元組信息。 步驟203,根據(jù)記錄的引擎的標識確定最新加載的引擎,該最新加載的引擎為對該
報文進行檢測的引擎;并記錄所述報文的報文頭中的五元組信息,建立五元組信息與對該
報文進行檢測的引擎的標識的對應關(guān)系,執(zhí)行步驟205 。 具體地,在確定接收到的報文是一個數(shù)據(jù)流的首報文之后,可以通過查找記錄的 引擎的標識確定最新加載的引擎,以該最新加載的引擎作為對首報文進行檢測的引擎,然 后記錄該報文的報文頭中的五元組信息,建立五元組信息與對該報文進行檢測的引擎的標 識的對應關(guān)系。由于同一數(shù)據(jù)流的報文具有相同的五元組信息,因此在接收到該數(shù)據(jù)流的 后續(xù)報文時,可以根據(jù)后續(xù)報文的五元組信息,以及該五元組信息與記錄的引擎的標識的 對應關(guān)系,確定與上述五元組信息對應的引擎的標識,從而可以確定對后續(xù)報文進行檢測 的引擎,并且可以保證對同一數(shù)據(jù)流的報文采用同一引擎進行檢測。 步驟204,根據(jù)該報文的報文頭中的五元組信息,利用在數(shù)據(jù)流的首報文時建立的
五元組信息與引擎的標識的對應關(guān)系,在記錄的引擎的標識中查找與該五元組信息對應的
引擎的標識,確定該標識對應的引擎為對該報文進行檢測的引擎,執(zhí)行步驟205。 步驟205,通過確定的引擎調(diào)用該引擎生成的狀態(tài)機,對該報文進行檢測。 本實施例中,引擎與狀態(tài)機一一對應,因此確定對報文進行檢測的引擎之后,該引
擎就可調(diào)用該引擎生成的狀態(tài)機,對接收到的報文進行檢測。 步驟206 ,檢測通過后,發(fā)送該報文。 具體地,如果入侵防御系統(tǒng)確定在該報文中未發(fā)現(xiàn)網(wǎng)絡攻擊,則檢測通過,發(fā)送該 報文;如果入侵防御系統(tǒng)在該報文中發(fā)現(xiàn)了隱藏于報文中的網(wǎng)絡攻擊,該入侵防御系統(tǒng)可 以根據(jù)該網(wǎng)絡攻擊的威脅級別立即采取抵御措施,該抵御措施包括向管理中心告警、丟棄 該報文、切斷此次應用會話和切斷此次連接之一或組合。 在本實施例中,在入侵防御系統(tǒng)尚未啟動,或者,該入侵防御系統(tǒng)剛剛啟動,該入 侵防御系統(tǒng)的引擎尚未加載完成時,對于流過該入侵防御系統(tǒng)的報文不進行檢測,并且對 該報文所屬數(shù)據(jù)流的后續(xù)報文均不進行檢測,直接發(fā)送。 上述實施例通過創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級 包,并加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識,并通過加載的引擎加載并編 譯該升級包中的特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng)。本實施例在每次引擎和特征庫 一同升級,或者,只升級特征庫時,均創(chuàng)建一個新的進程,從而實現(xiàn)了在入侵防御系統(tǒng)的升 級過程中加載多個引擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同 時最大限度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務。 圖3為本發(fā)明入侵防御系統(tǒng)的升級方法另一個實施例的流程圖,如圖3所示,該實 施例包括 步驟301,創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包。
本實施例中,每次需要對入侵防御系統(tǒng)進行升級時,均創(chuàng)建一個新的進程;具體 地,可以在每次引擎和特征庫一同升級時,或者,只升級特征庫時,均創(chuàng)建一個新的進程。
步驟302,根據(jù)創(chuàng)建進程的時間,設(shè)置并記錄創(chuàng)建的進程的標識。
具體地,創(chuàng)建的進程的標識可以按照創(chuàng)建時間的先后設(shè)置,例如按照創(chuàng)建時間由 先至后的順序,將創(chuàng)建的進程的標識分別設(shè)為A, a2, . . . , an,即標識為ai的進程是最先創(chuàng)建的進程。以上只是設(shè)置創(chuàng)建的進程的標識的一種方式,本實施例并不僅限于此,還可通過 其他方式設(shè)置創(chuàng)建的進程的標識,只要設(shè)置的進程的標識可以區(qū)分出進程創(chuàng)建的先后順序 即可。 步驟303,在上述進程中,加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識。 具體地,加載的引擎的標識可以按照加載時間的先后設(shè)置,例如按照加載時間由
先至后的順序,將引擎的標識分別設(shè)為bp b2, . . . , bn,即標識為的引擎是最先加載的引
擎。以上只是設(shè)置引擎的標識的一種方式,本實施例并不僅限于此,還可通過其他方式設(shè)置
引擎的標識,只要設(shè)置的引擎的標識可以區(qū)分出引擎加載的先后順序即可。 步驟304,在上述進程中,通過加載的引擎加載并編譯該升級包中的特征庫,生成
狀態(tài)機,升級該入侵防御系統(tǒng)。 本實施例中,每次需要對入侵防御系統(tǒng)進行升級時,執(zhí)行步驟301 步驟304,完 成對入侵防御系統(tǒng)的升級。具體地,可以在每次引擎和特征庫一同升級時,或者,只升級特 征庫時,均創(chuàng)建一個新的進程,執(zhí)行步驟301 步驟304。其中,在只升級特征庫時,可以通 過記錄的引擎的標識,確定當前最新加載的引擎,并在新創(chuàng)建的進程中,重新加載當前最新 加載的引擎,然后為該重新加載的引擎設(shè)置一個新的引擎的標識。因此在本實施例中,引擎 和狀態(tài)機一一對應。 在接收到報文之后,可以根據(jù)接收到的報文的報文頭中的信息和記錄的引擎的標 識確定對報文進行檢測的引擎,通過確定的引擎調(diào)用生成的狀態(tài)機,對報文進行檢測。具 體地,在接收到報文之后,對報文進行檢測時,可以采用本發(fā)明圖2所示實施例中提供的方 法。 步驟305,當需要對入侵防御系統(tǒng)再次進行升級時,判斷已創(chuàng)建的進程的個數(shù)是否 達到預設(shè)的第一閾值。如果已創(chuàng)建的進程的個數(shù)達到預設(shè)的第一閾值,則執(zhí)行步驟306 ;如 果已創(chuàng)建的進程的個數(shù)小于預設(shè)的第一閾值,則執(zhí)行步驟301。 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對 創(chuàng)建的進程的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第一閾 值設(shè)為n,n為正整數(shù),可以取n = 2。 步驟306,根據(jù)記錄的進程的標識確定最先創(chuàng)建的進程,卸載最先創(chuàng)建的進程中的 引擎,釋放該引擎占用的資源,執(zhí)行步驟307。 當需要對入侵防御系統(tǒng)再次進行升級時,如果已創(chuàng)建的進程的個數(shù)達到n,則可以 根據(jù)步驟302記錄的進程的標識確定最先創(chuàng)建的進程,本實施例中,該最先創(chuàng)建的進程為 標識為&的進程;然后卸載標識為ai的進程中的引擎,釋放該引擎占用的資源。
步驟307,在最先創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包,并執(zhí)行步 驟302及其后續(xù)步驟。 在卸載標識為ai的進程中的引擎,釋放該引擎占用的資源之后,在該標識為ai的 進程中下載對入侵防御系統(tǒng)進行升級的升級包,并執(zhí)行步驟302及其后續(xù)步驟;在標識為 ai的進程中下載對入侵防御系統(tǒng)進行升級的升級包之后,需要為標識為&的進程重新設(shè)置 一個新的標識,以表示該進程是最新的進程。 在升級完成之后,如果接收到一個新的數(shù)據(jù)流的報文,則通過原標識為ai的進程 中最新加載的引擎對該數(shù)據(jù)流的報文進行檢測;而升級之前,在原標識為&的進程中進行檢測的數(shù)據(jù)流的后續(xù)報文,將會被直接發(fā)送出去,不繼續(xù)檢測。 上述實施例通過創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級 包,并加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識,并通過加載的引擎加載并編 譯該升級包中的特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng)。本實施例在每次引擎和特征庫 一同升級,或者,只升級特征庫時,均創(chuàng)建一個新的進程,從而實現(xiàn)了在入侵防御系統(tǒng)的升 級過程中加載多個引擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同 時最大限度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務;并且本實施例對創(chuàng)建的進程的 個數(shù)加以限制,確保了創(chuàng)建的進程不會占用太多的內(nèi)存,保證了入侵防御系統(tǒng)的正常運行。
圖4為本發(fā)明入侵防御系統(tǒng)的升級方法再一個實施例的流程圖,如圖4所示,該實 施例包括 步驟401,創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包。 步驟402,根據(jù)創(chuàng)建進程的時間,設(shè)置并記錄創(chuàng)建的進程的標識。
具體地,創(chuàng)建的進程的標識可以按照創(chuàng)建時間的先后設(shè)置,例如按照創(chuàng)建時間由
先至后的順序,將創(chuàng)建的進程的標識分別設(shè)為A, a2, . . . , an,即標識為ai的進程是最先創(chuàng)
建的進程。以上只是設(shè)置創(chuàng)建的進程的標識的一種方式,本實施例并不僅限于此,還可通過
其他方式設(shè)置創(chuàng)建的進程的標識,只要設(shè)置的進程的標識可以區(qū)分出進程創(chuàng)建的先后順序即可。 步驟403,在上述進程中,加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識。
具體地,加載的引擎的標識可以按照加載時間的先后設(shè)置,例如按照加載時間由 先至后的順序,將引擎的標識分別設(shè)為bp b2, . . . , bn,即標識為的引擎是最先加載的引 擎。以上只是設(shè)置引擎的標識的一種方式,本實施例并不僅限于此,還可通過其他方式設(shè)置 引擎的標識,只要設(shè)置的引擎的標識可以區(qū)分出引擎加載的先后順序即可。
步驟404,在上述進程中,通過加載的引擎加載并編譯該升級包中的特征庫,生成 狀態(tài)機,升級該入侵防御系統(tǒng);設(shè)置并記錄生成的狀態(tài)機的標識,建立該狀態(tài)機的標識與生 成狀態(tài)機的引擎的標識的對應關(guān)系。 本實施例中,每次需要對入侵防御系統(tǒng)進行升級時,執(zhí)行步驟401 步驟404,完 成對入侵防御系統(tǒng)的升級。具體地,可以在每次引擎和特征庫一同升級時,創(chuàng)建一個新的進 程,執(zhí)行步驟401 步驟404;只升級特征庫時,不再創(chuàng)建新的進程,這時,可以根據(jù)步驟402 中記錄的進程的標識確定最新創(chuàng)建的進程,在最新創(chuàng)建的進程中下載對所述特征庫進行升 級的升級包,并通過最新創(chuàng)建的進程中加載的引擎,加載并編譯上述升級包中的特征庫,生 成狀態(tài)機,完成對特征庫的升級。因此本實施例中,進程和引擎一一對應,但是一個引擎可 能對應多個狀態(tài)機,在生成狀態(tài)機之后,需要設(shè)置并記錄生成的狀態(tài)機的標識,建立狀態(tài)機 的標識與生成狀態(tài)機的引擎的標識的對應關(guān)系。 具體地,狀態(tài)機的標識可以按照生成時間的先后進行設(shè)置,例如按照生成時間由 先至后的順序,將狀態(tài)機的標識分別設(shè)為Cl,c2,. . . ,cn,即標識為Cl的狀態(tài)機是最先生成的 狀態(tài)機。以上只是設(shè)置狀態(tài)機的標識的一種方式,本實施例并不僅限于此,還可通過其他方 式設(shè)置狀態(tài)機的標識,只要設(shè)置的狀態(tài)機的標識可以區(qū)分出狀態(tài)機生成的先后順序即可。
在接收到報文之后,可以根據(jù)接收到的報文的報文頭中的信息和記錄的引擎的標 識確定對報文進行檢測的引擎,通過確定的引擎調(diào)用生成的狀態(tài)機,對報文進行檢測。
步驟405,當需要對入侵防御系統(tǒng)再次進行升級時,判斷是否引擎和特征庫一同升 級。如果引擎和特征庫一同升級,則執(zhí)行步驟406 步驟409 ;如果只升級特征庫,則執(zhí)行 步驟410 步驟413。 步驟406,判斷已創(chuàng)建的進程的個數(shù)是否達到預設(shè)的第一閾值。如果已創(chuàng)建的進程 的個數(shù)達到預設(shè)的第一閾值,則執(zhí)行步驟408 步驟409 ;如果已創(chuàng)建的進程的個數(shù)小于預 設(shè)的第一閾值,則執(zhí)行步驟407。 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對 創(chuàng)建的進程的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第一閾 值設(shè)為n,n為正整數(shù),可以取n = 2。 步驟407,判斷已生成的狀態(tài)機的數(shù)量是否達到預設(shè)的第二閾值。如果已生成的狀 態(tài)機的數(shù)量達到預設(shè)的第二閾值,則執(zhí)行步驟408 步驟409 ;如果已生成的狀態(tài)機的數(shù)量 小于預設(shè)的第二閾值,則執(zhí)行步驟401。 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對 生成的狀態(tài)機的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第二 閾值設(shè)為m,m為正整數(shù),可以取m = 4。 步驟408,根據(jù)記錄的進程的標識確定最先創(chuàng)建的進程,卸載最先創(chuàng)建的進程中的 引擎。 當需要對入侵防御系統(tǒng)再次進行升級時,如果已創(chuàng)建的進程的個數(shù)達到n,則可以
根據(jù)步驟402記錄的進程的標識確定最先創(chuàng)建的進程,本實施例中,該最先創(chuàng)建的進程為
標識為&的進程;然后卸載標識為ai的進程中的引擎,釋放該引擎占用的資源。 對于已創(chuàng)建的進程的個數(shù)小于預設(shè)的第一閾值,但已生成的狀態(tài)機的數(shù)量達到預
設(shè)的第二閾值的情形,可以卸載最先創(chuàng)建的進程中的一個狀態(tài)機;具體地,可以根據(jù)步驟
404中記錄的狀態(tài)機的標識確定最先創(chuàng)建的進程中最先生成的狀態(tài)機,然后釋放該最先創(chuàng)
建的進程中最先生成的狀態(tài)機。 步驟409,在最先創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包,并執(zhí)行步 驟402及其后續(xù)步驟。 在卸載標識為ai的進程中的引擎,釋放該引擎占用的資源之后,在該標識為ai的 進程中下載對入侵防御系統(tǒng)進行升級的升級包,并執(zhí)行步驟402及其后續(xù)步驟;在標識為 ai的進程中下載對入侵防御系統(tǒng)進行升級的升級包之后,需要為標識為&的進程重新設(shè)置 一個新的標識,以表示該進程是最新的進程。 在升級完成之后,如果接收到一個新的數(shù)據(jù)流的報文,則通過原標識為ai的進程 中最新加載的引擎對該數(shù)據(jù)流的報文進行檢測;而升級之前,在原標識為&的進程中進行 檢測的數(shù)據(jù)流的后續(xù)報文,將會被直接發(fā)送出去,不繼續(xù)檢測。 步驟410,判斷已生成的狀態(tài)機的數(shù)量是否達到預設(shè)的第二閾值。如果已生成的狀 態(tài)機的數(shù)量達到預設(shè)的第二閾值,則執(zhí)行步驟411 ;如果已生成的狀態(tài)機的數(shù)量小于預設(shè) 的第二閾值,則執(zhí)行步驟412 步驟413。 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對 生成的狀態(tài)機的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第二 閾值設(shè)為m,m為正整數(shù),可以取m = 4。
步驟411,根據(jù)記錄的進程的標識確定最先創(chuàng)建的進程,釋放最先創(chuàng)建的進程中的 一個狀態(tài)機;或者,卸載最先創(chuàng)建的進程中的引擎,釋放該引擎占用的資源,執(zhí)行步驟412。
具體地,在釋放最先創(chuàng)建的進程中的一個狀態(tài)機時,可以根據(jù)步驟404中記錄的 狀態(tài)機的標識確定最先創(chuàng)建的進程中最先生成的狀態(tài)機,然后釋放該最先創(chuàng)建的進程中最 先生成的狀態(tài)機。 步驟412,根據(jù)記錄的進程的標識確定最新創(chuàng)建的進程,在最新創(chuàng)建的進程中下載 對特征庫進行升級的升級包。 步驟413,通過最新創(chuàng)建的進程中加載的引擎,加載并編譯升級包中的特征庫,生
成新的狀態(tài)機,同樣,在生成狀態(tài)機之后,需要設(shè)置生成的狀態(tài)機的標識,建立該狀態(tài)機的
標識與生成該狀態(tài)機的引擎的標識的對應關(guān)系;并執(zhí)行步驟405及其后續(xù)步驟。 本實施例中,進程和引擎一一對應,但是一個引擎可能對應多個狀態(tài)機。下面結(jié)合
圖5,對本實施例中對報文進行檢測的方式進行詳細介紹。 圖5為本發(fā)明對報文進行檢測的另一個實施例的流程圖,如圖5所示,本實施例對
報文進行檢測的流程包括
步驟501,接收報文。 步驟502,根據(jù)該報文的報文頭中的信息判斷該報文是否為數(shù)據(jù)流的首報文。如果 該報文是數(shù)據(jù)流的首報文,則執(zhí)行步驟503 ;如果該報文不是數(shù)據(jù)流的首報文,則執(zhí)行步驟 504。 具體地,判斷報文是否為數(shù)據(jù)流的首報文可以為解析報文的報文頭,確定該報文 采用的傳輸協(xié)議;當該報文采用TCP傳輸時,如果該報文的報文頭中包括首報文標識,則該 報文是數(shù)據(jù)流的首報文;如果該報文的報文頭中不包括首報文標識,則該報文不是數(shù)據(jù)流 的首報文。當該報文采用UDP傳輸時,則需要根據(jù)該報文的五元組信息,在入侵防御系統(tǒng)中 查找是否有該五元組信息的記錄,如果沒有查找到該五元組信息的記錄,則可以確定該報 文是數(shù)據(jù)流的首報文,記錄首報文的五元組信息;如果查找到該五元組信息的記錄,則說明 該報文不是數(shù)據(jù)流的首報文。其中,報文的五元組信息包括報文的源IP地址、目的IP地 址、源端口、目的端口和報文所采用的傳輸協(xié)議;屬于同一數(shù)據(jù)流的報文具有相同的五元組 信息。 步驟503,根據(jù)記錄的引擎的標識確定最新加載的引擎,通過最新加載的引擎調(diào)用
最新生成的狀態(tài)機,對報文進行檢測;并記錄該報文的報文頭中的五元組信息,建立該五元
組信息與最新加載的引擎的標識,以及上述最新生成的狀態(tài)機的標識對應關(guān)系。 具體地,在確定接收到的報文是一個數(shù)據(jù)流的首報文之后,可以通過查找記錄的
引擎的標識確定最新加載的引擎,以該最新加載的引擎作為對首報文進行檢測的引擎;由
于最新加載的引擎可能對應一個或多個狀態(tài)機,根據(jù)最新加載的引擎的標識,可以確定與
該最新加載的引擎對應的狀態(tài)機的標識,根據(jù)該狀態(tài)機的標識可以確定最新生成的狀態(tài)
機。本實施例中,通過最新加載的引擎調(diào)用最新生成的狀態(tài)機,對數(shù)據(jù)流的首報文進行檢
測,并記錄該首報文的報文頭中的五元組信息,建立該五元組信息與最新加載的引擎的標
識,以及上述最新生成的狀態(tài)機的標識的對應關(guān)系。由于同一數(shù)據(jù)流的報文具有相同的五
元組信息,因此在接收到該數(shù)據(jù)流的后續(xù)報文時,可以根據(jù)后續(xù)報文的五元組信息,以及該
五元組信息、記錄的引擎的標識和狀態(tài)機的標識的對應關(guān)系,確定與該五元組信息對應的引擎的標識和對應的狀態(tài)機的標識,從而可以確定對后續(xù)報文進行檢測的引擎和狀態(tài)機, 可以保證對同一數(shù)據(jù)流的報文采用同一引擎和同一狀態(tài)機進行檢測。 步驟504,根據(jù)報文的報文頭中的五元組信息,利用在數(shù)據(jù)流的首報文時建立的五 元組信息、引擎的標識與狀態(tài)機的標識的對應關(guān)系,在記錄的引擎的標識中查找與該五元 組信息對應的引擎的標識,在記錄的狀態(tài)機的標識中查找與該五元組信息對應的狀態(tài)機的 標識;通過查找到的引擎的標識所對應的引擎,調(diào)用查找到的狀態(tài)機的標識所對應的狀態(tài) 機,對報文進行檢測。 上述實施例通過創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級 包,并加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識,通過加載的引擎加載并編譯 升級包中的特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng)。本實施例只在每次引擎和特征庫一 同升級時,創(chuàng)建一個新的進程,實現(xiàn)了在入侵防御系統(tǒng)的升級過程中加載多個引擎,編譯出 多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同時最大限度地不中斷升級操作前 的數(shù)據(jù)流的報文檢測業(yè)務;并且本實施例對創(chuàng)建的進程的個數(shù)加以限制,同時對生成的狀 態(tài)機的個數(shù)加以限制,確保了創(chuàng)建的進程、加載的引擎和生成的狀態(tài)機不會占用太多的內(nèi) 存,保證了入侵防御系統(tǒng)的正常運行。 圖6為本發(fā)明入侵防御系統(tǒng)的升級方法又一個實施例的流程圖,如圖6所示,該實 施例包括 步驟601,在對入侵防御系統(tǒng)進行第一次升級時,創(chuàng)建進程,并在創(chuàng)建的進程中下 載對該入侵防御系統(tǒng)進行升級的升級包。 步驟602,在上述進程中,加載該升級包中的引擎,設(shè)置并記錄加載的引擎的標識。
具體地,加載的引擎的標識可以按照加載時間的先后設(shè)置,例如按照加載時間由 先至后的順序,將引擎的標識分別設(shè)為bp b2, . . . , bn,即標識為的引擎是最先加載的引 擎。以上只是設(shè)置引擎的標識的一種方式,本實施例并不僅限于此,還可通過其他方式設(shè)置 引擎的標識,只要設(shè)置的引擎的標識可以區(qū)分出引擎加載的先后順序即可。
步驟603,在上述進程中,通過加載的引擎加載并編譯該升級包中的特征庫,生成 狀態(tài)機,升級該入侵防御系統(tǒng);設(shè)置并記錄生成的狀態(tài)機的標識,建立該狀態(tài)機的標識與生 成狀態(tài)機的引擎的標識的對應關(guān)系。 本實施例只在對入侵防御系統(tǒng)的引擎和特征庫進行第一次升級時,創(chuàng)建一個進 程,后續(xù)再對該入侵防御系統(tǒng)進行升級時,均在創(chuàng)建的這一個進程中下載對入侵防御系統(tǒng) 進行升級的升級包,執(zhí)行步驟602 步驟603,完成對入侵防御系統(tǒng)的升級。因此本實施例 中, 一個進程中加載了多個引擎,每個引擎可能對應多個狀態(tài)機,在生成狀態(tài)機之后,需要 設(shè)置并記錄生成的狀態(tài)機的標識,建立狀態(tài)機的標識與生成狀態(tài)機的引擎的標識的對應關(guān) 系。 具體地,狀態(tài)機的標識可以按照生成時間的先后進行設(shè)置,例如按照生成時間由 先至后的順序,將狀態(tài)機的標識分別設(shè)為Cl,c2,. . . ,cn,即標識為Cl的狀態(tài)機是最先生成的 狀態(tài)機。以上只是設(shè)置狀態(tài)機的標識的一種方式,本實施例并不僅限于此,還可通過其他方 式設(shè)置狀態(tài)機的標識,只要設(shè)置的狀態(tài)機的標識可以區(qū)分出狀態(tài)機生成的先后順序即可。
在接收到報文之后,可以根據(jù)接收到的報文的報文頭中的信息和記錄的引擎的標 識確定對報文進行檢測的引擎,通過確定的引擎調(diào)用生成的狀態(tài)機,對報文進行檢測。具體地,本實施例中,在對接收到的報文進行檢測時,可以采用本發(fā)明圖5所示實施例中提供的 方法。 步驟604,當需要對入侵防御系統(tǒng)再次進行升級時,判斷是否引擎和特征庫一同升 級。如果引擎和特征庫一同升級,則執(zhí)行步驟605 步驟608 ;如果只升級特征庫,則執(zhí)行 步驟609 步驟612。 步驟605,判斷已加載的引擎的個數(shù)是否達到預設(shè)的第三閾值。如果已加載的引擎 的個數(shù)達到預設(shè)的第三閾值,則執(zhí)行步驟607;如果已加載的引擎的個數(shù)小于預設(shè)的第三 閾值,則執(zhí)行步驟606。 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對 加載的引擎的個數(shù)進行限制,預先設(shè)置第三閾值,使加載的引擎的個數(shù)不會超過該第三閾 值;第三閾值為正整數(shù),可以設(shè)第三閾值為2。 步驟606,判斷已生成的狀態(tài)機的數(shù)量是否達到預設(shè)的第二閾值。如果已生成的狀 態(tài)機的數(shù)量達到預設(shè)的第二閾值,則執(zhí)行步驟607 ;如果已生成的狀態(tài)機的數(shù)量小于預設(shè) 的第二閾值,則執(zhí)行步驟608。 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對 生成的狀態(tài)機的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第二 閾值設(shè)為m,m為正整數(shù),可以取m = 4。 步驟607,根據(jù)記錄的引擎的標識確定最先加載的引擎,卸載該引擎,釋放該引擎 占用的資源,然后執(zhí)行步驟608。 當需要對入侵防御系統(tǒng)再次進行升級時,如果已加載的引擎的個數(shù)達到預設(shè)的第
三閾值,則可以根據(jù)步驟602記錄的引擎的標識確定最先加載的引擎,本實施例中,該最先
加載的引擎為標識為^的引擎;然后卸載標識為的引擎,釋放該引擎占用的資源。 對于已加載的引擎的個數(shù)小于預設(shè)的第三閾值,但已生成的狀態(tài)機的數(shù)量達到預
設(shè)的第二閾值的情形,可以卸載最先加載的引擎的一個狀態(tài)機;具體地,可以根據(jù)步驟603
中記錄的狀態(tài)機的標識確定最先加載的引擎對應的狀態(tài)機中最先生成的狀態(tài)機,然后釋放
該最先生成的狀態(tài)機。 步驟608,在創(chuàng)建的同一個進程中下載對引擎和特征庫進行升級的升級包,執(zhí)行步 驟602。 步驟609,判斷已生成的狀態(tài)機的數(shù)量是否達到預設(shè)的第二閾值。如果已生成的狀 態(tài)機的數(shù)量達到預設(shè)的第二閾值,則執(zhí)行步驟610 ;如果已生成的狀態(tài)機的數(shù)量小于預設(shè) 的第二閾值,則執(zhí)行步驟611 步驟612。 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對 生成的狀態(tài)機的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第二 閾值設(shè)為m,m為正整數(shù),可以取m = 4。 步驟610,根據(jù)記錄的引擎的標識確定最先加載的引擎,卸載該最先加載的引擎, 釋放該引擎占用的資源;或者,釋放最先加載的引擎對應的狀態(tài)機中的一個狀態(tài)機;執(zhí)行 步驟611。 具體地,在釋放最先加載的引擎對應的狀態(tài)機中的一個狀態(tài)機時,可以根據(jù)步驟 603中記錄的狀態(tài)機的標識確定最先加載的引擎對應的狀態(tài)機中最先生成的狀態(tài)機,然后釋放該最先生成的狀態(tài)機。 步驟611,在創(chuàng)建的同一個進程中下載對特征庫進行升級的升級包。
步驟612,根據(jù)記錄的引擎的標識確定最新加載的引擎,通過最新加載的引擎加載 并編譯升級包中的特征庫,生成一組新的狀態(tài)機,同樣,在生成狀態(tài)機之后,需要設(shè)置生成 的狀態(tài)機的標識,建立該狀態(tài)機的標識與生成該狀態(tài)機的引擎的標識的對應關(guān)系,并執(zhí)行 步驟604及其后續(xù)步驟。 上述實施例在對入侵防御系統(tǒng)進行第一次升級時,創(chuàng)建進程,在創(chuàng)建的進程中下 載對入侵防御系統(tǒng)進行升級的升級包,加載該升級包中的引擎,設(shè)置并記錄加載的引擎的 標識,并通過加載的引擎加載并編譯特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng)。本實施例 只在對入侵防御系統(tǒng)進行第一次升級時,創(chuàng)建一個進程,后續(xù)的升級過程均在同一個進程 中加載引擎、編譯特征庫和生成狀態(tài)機,實現(xiàn)了在入侵防御系統(tǒng)的升級過程中加載多個引 擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同時最大限度地不中斷 升級操作前的數(shù)據(jù)流的報文檢測業(yè)務;并且本實施例對加載的引擎的個數(shù)加以限制,同時 對生成的狀態(tài)機的個數(shù)加以限制,確保了加載的引擎和生成的狀態(tài)機不會占用太多的內(nèi) 存,保證了入侵防御系統(tǒng)的正常運行。 本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可以通過 程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序 在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括R0M、 RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質(zhì)。 圖7為本發(fā)明入侵防御系統(tǒng)的升級裝置一個實施例的結(jié)構(gòu)示意圖,該入侵防御系 統(tǒng)的升級裝置,可以位于入侵防御系統(tǒng)中,實現(xiàn)本發(fā)明圖1所示實施例的流程。如圖7所示, 該入侵防御系統(tǒng)的升級裝置可以包括創(chuàng)建模塊71,下載模塊72、加載模塊73和編譯模塊 74。
具體地,創(chuàng)建模塊71,用于創(chuàng)建進程; 下載模塊72可以在創(chuàng)建模塊71創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升 級包; 加載模塊73可以在創(chuàng)建模塊71創(chuàng)建的進程中,加載下載模塊72下載的升級包中 的引擎,設(shè)置并記錄加載的引擎的標識;具體地,加載的引擎的標識可以按照加載時間的先 后設(shè)置,例如按照加載時間由先至后的順序,將引擎的標識分別設(shè)為1,2, . . . , n,即標識 為1的引擎是最先加載的引擎。以上只是設(shè)置引擎的標識的一種方式,本實施例并不僅限 于此,還可通過其他方式設(shè)置引擎的標識,只要設(shè)置的引擎的標識可以區(qū)分出引擎加載的 先后順序即可。 編譯模塊74可以在創(chuàng)建模塊71創(chuàng)建的進程中,通過加載模塊73加載的引擎加載 并編譯下載模塊72下載的升級包中的特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng)。
上述實施例中,創(chuàng)建模塊71創(chuàng)建進程,下載模塊72在創(chuàng)建模塊71創(chuàng)建的進程中 下載對入侵防御系統(tǒng)進行升級的升級包,加載模塊73在上述進程中加載下載模塊72下載 的升級包中的引擎,設(shè)置并記錄加載的引擎的標識,并由編譯模塊74通過加載的引擎加載 并編譯特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng)。本實施例在每次引擎和特征庫一同升 級,或者,只升級特征庫時,均創(chuàng)建一個新的進程,從而實現(xiàn)了在入侵防御系統(tǒng)的升級過程中加載多個引擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同時最大 限度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務。 圖8為本發(fā)明入侵防御系統(tǒng)的升級裝置另一個實施例的結(jié)構(gòu)示意圖,該入侵防御 系統(tǒng)的升級裝置,可以位于入侵防御系統(tǒng)中,實現(xiàn)本發(fā)明圖3所示實施例的流程。如圖8所 示,該入侵防御系統(tǒng)的升級裝置可以包括創(chuàng)建模塊81、下載模塊82、加載模塊83、編譯模 塊84、檢測模塊85和進程標識記錄模塊86。 具體地,創(chuàng)建模塊81,用于創(chuàng)建進程,具體地,創(chuàng)建模塊81可以在每次對入侵防御 系統(tǒng)進行升級時,創(chuàng)建進程;下載模塊82可以在創(chuàng)建模塊81創(chuàng)建的進程中下載對入侵防御 系統(tǒng)進行升級的升級包。 加載模塊83可以在創(chuàng)建模塊81創(chuàng)建的進程中加載下載模塊82下載的升級包中 的引擎,設(shè)置并記錄加載的引擎的標識;具體地,加載的引擎的標識可以按照加載時間的先 后設(shè)置,例如按照加載時間由先至后的順序,將引擎的標識分別設(shè)為b"lv. . . ,bn,即標識 為^的引擎是最先加載的引擎。以上只是設(shè)置引擎的標識的一種方式,本實施例并不僅限 于此,還可通過其他方式設(shè)置引擎的標識,只要設(shè)置的引擎的標識可以區(qū)分出引擎加載的 先后順序即可。 編譯模塊84可以在創(chuàng)建模塊81創(chuàng)建的進程中,通過加載模塊83加載的引擎加載 并編譯下載模塊82下載的升級包中的特征庫,生成狀態(tài)機,升級該入侵防御系統(tǒng);檢測模 塊85可以根據(jù)接收到的報文的報文頭中的信息和記錄的引擎的標識確定對報文進行檢測 的引擎,通過確定的引擎調(diào)用生成的狀態(tài)機,對該報文進行檢測。具體地,檢測模塊85可以 采用本發(fā)明圖2所示實施例中提供的方法,對接收到的報文進行檢測。
其中,檢測模塊85可以包括判斷子模塊851、第一確定子模塊852、第二確定子模 塊853和報文檢測子模塊854。具體地,判斷子模塊851可以根據(jù)接收到的報文的報文頭中 的信息判斷該報文是否為數(shù)據(jù)流的首報文;具體地,判斷報文是否為數(shù)據(jù)流的首報文可以 為解析報文的報文頭,確定該報文采用的傳輸協(xié)議;當該報文采用TCP傳輸時,如果該報 文的報文頭中包括首報文標識,則該報文是數(shù)據(jù)流的首報文;如果該報文的報文頭中不包 括首報文標識,則該報文不是數(shù)據(jù)流的首報文。當該報文采用UDP傳輸時,則需要根據(jù)該報 文的五元組信息,在入侵防御系統(tǒng)中查找是否有該五元組信息的記錄,如果沒有查找到該 五元組信息的記錄,則可以確定該報文是數(shù)據(jù)流的首報文,記錄首報文的五元組信息;如果 查找到該五元組信息的記錄,則說明該報文不是數(shù)據(jù)流的首報文。其中,報文的五元組信息 包括報文的源IP地址、目的IP地址、源端口、目的端口和報文所采用的傳輸協(xié)議;屬于同 一數(shù)據(jù)流的報文具有相同的五元組信息。 第一確定子模塊852可以當判斷子模塊851確定接收到的報文是數(shù)據(jù)流的首報文 時,根據(jù)記錄的引擎的標識確定最新加載的引擎,該最新加載的引擎為對報文進行檢測的 引擎;并記錄該報文的報文頭中的五元組信息,建立該五元組信息與對該報文進行檢測的 引擎的標識的對應關(guān)系;由于同一數(shù)據(jù)流的報文具有相同的五元組信息,因此在接收到該 數(shù)據(jù)流的后續(xù)報文時,第二確定子模塊853可以根據(jù)后續(xù)報文的五元組信息,以及該五元 組信息與記錄的引擎的標識的對應關(guān)系,確定與該五元組信息對應的引擎的標識,進而可 以確定對后續(xù)報文進行檢測的引擎,并且可以保證對同一數(shù)據(jù)流的報文采用同一引擎進行 檢測。
第二確定子模塊853可以當判斷子模塊851確定接收到的報文不是數(shù)據(jù)流的首 報文時,根據(jù)該報文的報文頭中的五元組信息,利用在數(shù)據(jù)流的首報文時建立的五元組信 息與引擎的標識的對應關(guān)系,在記錄的引擎的標識中查找與該五元組信息對應的引擎的標 識,確定該標識對應的弓I擎為對該報文進行檢測的引擎; 報文檢測子模塊854可以通過第一確定子模塊852或第二確定子模塊853確定的 引擎調(diào)用編譯模塊84生成的狀態(tài)機,對報文進行檢測。 本實施例中,在每次引擎和特征庫一同升級,或者,只升級特征庫時,創(chuàng)建模塊81 均創(chuàng)建一個新的進程,并由下載模塊82、加載模塊83和編譯模塊84執(zhí)行后續(xù)步驟。其中, 在只升級特征庫時,創(chuàng)建模塊81創(chuàng)建一個新的進程之后,加載模塊83可以通過記錄的引擎 的標識,確定當前最新加載的引擎,并在創(chuàng)建模塊81新創(chuàng)建的進程中,重新加載當前最新 加載的引擎,然后為該重新加載的引擎設(shè)置一個新的引擎的標識。因此在本實施例中,引擎 和狀態(tài)機一一對應,因此第一確定子模塊852或第二確定子模塊853確定對報文進行檢測 的引擎之后,報文檢測子模塊854就可以通過該引擎調(diào)用該引擎生成的狀態(tài)機,對接收到 的報文進行檢測。 本實施例中,進程標識記錄模塊86可以根據(jù)創(chuàng)建進程的時間,設(shè)置并記錄創(chuàng)建的 進程的標識;具體地,創(chuàng)建的進程的標識可以按照創(chuàng)建時間的先后設(shè)置,例如按照創(chuàng)建時 間由先至后的順序,將創(chuàng)建的進程的標識分別設(shè)為ai, a2, . . . , an,即標識為&的進程是最 先創(chuàng)建的進程。以上只是設(shè)置創(chuàng)建的進程的標識的一種方式,本實施例并不僅限于此,還可 通過其他方式設(shè)置創(chuàng)建的進程的標識,只要設(shè)置的進程的標識可以區(qū)分出進程創(chuàng)建的先后 順序即可。 本實施例中,下載模塊82可以包括進程確定子模塊821、卸載子模塊822和升級 包下載子模塊823。其中,進程確定子模塊821可以在創(chuàng)建模塊81已創(chuàng)建的進程的個數(shù)達 到預設(shè)的第一閾值時,根據(jù)進程標識記錄模塊86記錄的進程的標識確定最先創(chuàng)建的進程; 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對創(chuàng)建的進 程的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第一閾值設(shè)為n,n 為正整數(shù),可以取n = 2 ; 卸載子模塊822可以卸載該進程確定子模塊821確定的最先創(chuàng)建的進程中的引 擎,釋放該引擎占用的資源;這時,升級包下載子模塊823可以在卸載子模塊822卸載進程 確定子模塊821確定的最先創(chuàng)建的進程中的引擎之后,在進程確定子模塊821確定的最先 創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包。 上述實施例中,創(chuàng)建模塊81創(chuàng)建進程,下載模塊82在創(chuàng)建模塊81創(chuàng)建的進程中 下載對入侵防御系統(tǒng)進行升級的升級包,加載模塊83在創(chuàng)建模塊81創(chuàng)建的進程中加載該 升級包中的引擎,設(shè)置并記錄加載的引擎的標識,并由編譯模塊84在創(chuàng)建模塊81創(chuàng)建的進 程中通過加載模塊83加載的引擎加載并編譯該升級包中的特征庫,生成狀態(tài)機,升級該入 侵防御系統(tǒng),在接收到報文之后,檢測模塊85根據(jù)該報文的報文頭中的信息和記錄的引擎 的標識確定對報文進行檢測的引擎,然后通過確定的引擎調(diào)用生成的狀態(tài)機,對該報文進 行檢測。本實施例在每次引擎和特征庫一同升級,或者,只升級特征庫時,均創(chuàng)建一個新的 進程,從而實現(xiàn)了在入侵防御系統(tǒng)的升級過程中加載多個引擎,編譯出多組狀態(tài)機同時工 作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同時最大限度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務;并且本實施例對創(chuàng)建的進程的個數(shù)加以限制,確保了創(chuàng)建的進程不會占用太多的 內(nèi)存,保證了入侵防御系統(tǒng)的正常運行。 圖9為本發(fā)明入侵防御系統(tǒng)的升級裝置再一個實施例的結(jié)構(gòu)示意圖,該入侵防御 系統(tǒng)的升級裝置,可以位于入侵防御系統(tǒng)中,實現(xiàn)本發(fā)明圖4所示實施例的流程。如圖9所 示,該入侵防御系統(tǒng)的升級裝置可以包括創(chuàng)建模塊91、下載模塊92、加載模塊93、編譯模 塊94、檢測模塊95、進程標識記錄模塊96和狀態(tài)機標識記錄模塊97。 具體地,創(chuàng)建模塊91可以創(chuàng)建進程,具體地,創(chuàng)建模塊91可以在每次引擎和特征 庫一同升級時,創(chuàng)建一個新的進程;下載模塊92可以在創(chuàng)建模塊91創(chuàng)建的進程中下載對入 侵防御系統(tǒng)進行升級的升級包。 加載模塊93可以在創(chuàng)建模塊91創(chuàng)建的進程中加載下載模塊92下載的升級包中 的引擎,設(shè)置并記錄加載的引擎的標識;具體地,加載的引擎的標識可以按照加載時間的先 后設(shè)置,例如按照加載時間由先至后的順序,將引擎的標識分別設(shè)為b"lv. . . ,bn,即標識 為^的引擎是最先加載的引擎。以上只是設(shè)置引擎的標識的一種方式,本實施例并不僅限 于此,還可通過其他方式設(shè)置引擎的標識,只要設(shè)置的引擎的標識可以區(qū)分出引擎加載的 先后順序即可。 編譯模塊94可以在創(chuàng)建模塊91創(chuàng)建的進程中,通過加載模塊93加載的引擎加載 并編譯下載模塊92下載的升級包中的特征庫,生成狀態(tài)機;在編譯模塊94生成一組狀態(tài)機 之后,狀態(tài)機標識記錄模塊97可以設(shè)置并記錄生成的狀態(tài)機的標識,建立該狀態(tài)機的標識 與生成該狀態(tài)機的引擎的標識的對應關(guān)系。 檢測模塊95可以根據(jù)接收到的報文的報文頭中的信息和加載模塊93記錄的引擎 的標識確定對報文進行檢測的引擎,通過確定的引擎調(diào)用編譯模塊94生成的狀態(tài)機,對該 報文進行檢測。 本實施例中,在每次引擎和特征庫一同升級時,創(chuàng)建模塊91創(chuàng)建一個新的進程, 并由下載模塊92、加載模塊93和編譯模塊94執(zhí)行后續(xù)步驟。因此在本實施例中,進程和引 擎一一對應,而一個引擎可能對應多個狀態(tài)機。 本實施例中,檢測模塊95可以包括首報文判斷子模塊951、第一報文檢測子模塊 952和第二報文檢測子模塊953。 具體地,首報文判斷子模塊951可以根據(jù)接收到的報文的報文頭中的信息判斷所 述報文是否為數(shù)據(jù)流的首報文;具體地,判斷報文是否為數(shù)據(jù)流的首報文可以為解析報 文的報文頭,確定該報文采用的傳輸協(xié)議;當該報文采用TCP傳輸時,如果該報文的報文頭 中包括首報文標識,則該報文是數(shù)據(jù)流的首報文;如果該報文的報文頭中不包括首報文標 識,則該報文不是數(shù)據(jù)流的首報文。當該報文采用UDP傳輸時,則需要根據(jù)該報文的五元組 信息,在入侵防御系統(tǒng)中查找是否有該五元組信息的記錄,如果沒有查找到該五元組信息 的記錄,則可以確定該報文是數(shù)據(jù)流的首報文,記錄首報文的五元組信息;如果查找到該五 元組信息的記錄,則說明該報文不是數(shù)據(jù)流的首報文。其中,報文的五元組信息包括報文 的源IP地址、目的IP地址、源端口、目的端口和報文所采用的傳輸協(xié)議;屬于同一數(shù)據(jù)流的 報文具有相同的五元組信息。 第一報文檢測子模塊952可以當首報文判斷子模塊951確定接收到的報文為數(shù)據(jù) 流的首報文時,根據(jù)加載模塊93記錄的引擎的標識確定最新加載的引擎,該最新加載的引擎為對該報文進行檢測的引擎;通過最新加載的引擎調(diào)用編譯模塊94生成的新的狀態(tài)機, 對該報文進行檢測;并記錄報文的報文頭中的五元組信息,建立該五元組信息與最新加載 的引擎的標識,以及新的狀態(tài)機的標識對應關(guān)系。 第二報文檢測子模塊953可以當首報文判斷子模塊951確定接收到的報文不是數(shù)
據(jù)流的首報文時,根據(jù)該報文的報文頭中的五元組信息,利用在該數(shù)據(jù)流的首報文時建立
的五元組信息、引擎的標識與狀態(tài)機的標識的對應關(guān)系,在加載模塊93記錄的引擎的標識
中查找與該五元組信息對應的引擎的標識,在狀態(tài)機標識記錄模塊97記錄的狀態(tài)機的標
識中查找與該五元組信息對應的狀態(tài)機的標識;通過查找到的引擎的標識所對應的引擎,
調(diào)用查找到的狀態(tài)機的標識所對應的狀態(tài)機,對接收到的報文進行檢測。 本實施例中,進程標識記錄模塊96可以根據(jù)創(chuàng)建進程的時間,設(shè)置并記錄創(chuàng)建的
進程的標識;具體地,創(chuàng)建的進程的標識可以按照創(chuàng)建時間的先后設(shè)置,例如按照創(chuàng)建時
間由先至后的順序,將創(chuàng)建的進程的標識分別設(shè)為ai, a2, . . . , an,即標識為&的進程是最
先創(chuàng)建的進程。以上只是設(shè)置創(chuàng)建的進程的標識的一種方式,本實施例并不僅限于此,還可
通過其他方式設(shè)置創(chuàng)建的進程的標識,只要設(shè)置的進程的標識可以區(qū)分出進程創(chuàng)建的先后
順序即可。 本實施例中,下載模塊92可以包括進程確定子模塊921、卸載子模塊922和升級 包下載子模塊923。其中,進程確定子模塊921可以在創(chuàng)建模塊91已創(chuàng)建的進程的個數(shù)達 到預設(shè)的第一閾值時,根據(jù)進程標識記錄模塊96記錄的進程的標識確定最先創(chuàng)建的進程; 本實施例中,在不斷升級的過程中,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況對創(chuàng)建的進 程的個數(shù)進行限制,具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況將第一閾值設(shè)為n,n 為正整數(shù),可以取n = 2 ; 卸載子模塊922可以卸載該進程確定子模塊921確定的最先創(chuàng)建的進程中的引 擎,釋放該引擎占用的資源;這時,升級包下載子模塊923可以在卸載子模塊922卸載進程 確定子模塊921確定的最先創(chuàng)建的進程中的引擎之后,在進程確定子模塊921確定的最先 創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包。 若后續(xù)僅需對入侵防御系統(tǒng)的特征庫進行升級,則進程確定子模塊921可以根據(jù) 進程標識記錄模塊96記錄的進程的標識確定最新創(chuàng)建的進程;這時,升級包下載子模塊 923可以在進程確定子模塊921確定的最新創(chuàng)建的進程中下載對特征庫進行升級的升級 包;然后,由編譯模塊94通過最新創(chuàng)建的進程中加載的引擎,加載并編譯升級包中的特征 庫,生成狀態(tài)機。 上述實施例中的入侵防御系統(tǒng)的升級裝置,實現(xiàn)了在入侵防御系統(tǒng)的升級過程中 加載多個引擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同時最大限 度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務;并且本實施例中的入侵防御系統(tǒng)的升級 裝置對創(chuàng)建的進程的個數(shù)加以限制,同時對生成的狀態(tài)機的個數(shù)加以限制,確保了創(chuàng)建的 進程、加載的引擎和生成的狀態(tài)機不會占用太多的內(nèi)存,保證了入侵防御系統(tǒng)的正常運行。
圖IO為本發(fā)明入侵防御系統(tǒng)的升級裝置又一個實施例的結(jié)構(gòu)示意圖,該入侵防 御系統(tǒng)的升級裝置,可以位于入侵防御系統(tǒng)中,實現(xiàn)本發(fā)明圖6所示實施例的流程。如圖 IO所示,該入侵防御系統(tǒng)的升級裝置可以包括創(chuàng)建模塊1001、下載模塊1002、加載模塊 1003、編譯模塊1004、檢測模塊1005和卸載模塊1006。
其中,創(chuàng)建模塊1001可以在對入侵防御系統(tǒng)進行第一次升級時,創(chuàng)建進程;下載模塊1002可以在創(chuàng)建模塊1001創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包;加載模塊1003可以在創(chuàng)建模塊1001創(chuàng)建的進程中,加載下載模塊1002下載的升級包中的引擎,設(shè)置并記錄加載的引擎的標識;編譯模塊1004可以在創(chuàng)建模塊1001創(chuàng)建的進程中,通過加載模塊1003加載的引擎加載并編譯下載模塊1002下載的升級包中的特征庫,生成狀態(tài)機;檢測模塊1005可以根據(jù)接收到的報文的報文頭中的信息和加載模塊1003記錄的引擎的標識確定對報文進行檢測的引擎,通過確定的引擎調(diào)用編譯模塊1004生成的狀態(tài)機,對該報文進行檢測;具體地,檢測模塊1005在對接收到的報文進行檢測時,可以采用本發(fā)明圖5所示實施例中提供的方法。 本實施例中,當后續(xù)僅需對入侵防御系統(tǒng)的特征庫進行升級時,下載模塊1002具體可以在創(chuàng)建模塊1001創(chuàng)建的進程中下載對特征庫進行升級的升級包;這時,編譯模塊1004具體可以根據(jù)加載模塊1003記錄的引擎的標識確定最新加載的引擎,通過該最新加載的引擎加載并編譯該升級包中的特征庫,生成新的狀態(tài)機。 卸載模塊1006可以在加載模塊1003加載的引擎的個數(shù)達到預設(shè)的第三閾值時,根據(jù)記錄的引擎的標識確定最先加載的引擎,卸載最先加載的引擎,釋放該引擎占用的資源;卸載模塊1006還可以在編譯模塊1004已生成的狀態(tài)機的數(shù)量達到預設(shè)的第二閾值時,根據(jù)記錄的引擎的標識確定最先加載的引擎,釋放該最先加載的引擎對應的狀態(tài)機中的一個狀態(tài)機。 具體地,可以根據(jù)入侵防御系統(tǒng)的內(nèi)存的具體情況設(shè)置第二閾值和第三閾值,第
二閾值和第三閾值為正整數(shù),可以將第三閾值設(shè)為2,將第二閾值設(shè)為4。 上述實施例中的入侵防御系統(tǒng)的升級裝置,實現(xiàn)了在入侵防御系統(tǒng)的升級過程中
加載多個引擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同時最大限
度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務;并且本實施例中的入侵防御系統(tǒng)的升級
裝置對加載的引擎的個數(shù)加以限制,同時對生成的狀態(tài)機的個數(shù)加以限制,確保了創(chuàng)建的
進程、加載的引擎和生成的狀態(tài)機不會占用太多的內(nèi)存,保證了入侵防御系統(tǒng)的正常運行。 本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流
程并不一定是實施本發(fā)明所必須的。 本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分
布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上
述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。 最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進行限制,
盡管參照較佳實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解其依
然可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而這些修改或者等同替換亦不能使修
改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
一種入侵防御系統(tǒng)的升級方法,其特征在于,包括創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包;在所述進程中,加載所述升級包中的引擎,設(shè)置并記錄加載的引擎的標識;通過所述加載的引擎加載并編譯所述升級包中的特征庫,生成狀態(tài)機,升級所述入侵防御系統(tǒng)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括根據(jù)接收到的報文的報文頭中的信息和所述記錄的引擎的標識確定對所述報文進行檢測的引擎,通過確定的引擎調(diào)用生成的狀態(tài)機,對所述報文進行檢測。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述報文的報文頭中的信息和所述記錄的引擎的標識確定對所述報文進行檢測的引擎包括根據(jù)所述報文的報文頭中的信息判斷所述報文是否為數(shù)據(jù)流的首報文;當所述報文是數(shù)據(jù)流的首報文時,根據(jù)所述記錄的引擎的標識確定最新加載的引擎,所述最新加載的引擎為對所述報文進行檢測的引擎;記錄所述報文的報文頭中的五元組信息,建立所述五元組信息與對所述報文進行檢測的引擎的標識的對應關(guān)系;當所述報文不是數(shù)據(jù)流的首報文時,根據(jù)所述報文的報文頭中的五元組信息,利用在所述數(shù)據(jù)流的首報文時建立的五元組信息與引擎的標識的對應關(guān)系,在所述記錄的引擎的標識中查找與所述五元組信息對應的引擎的標識,確定所述標識對應的引擎為對所述報文進行檢測的引擎。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括根據(jù)創(chuàng)建進程的時間,設(shè)置并記錄創(chuàng)建的進程的標識;所述在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包包括當已創(chuàng)建的進程的個數(shù)達到預設(shè)的第一閾值時,根據(jù)記錄的進程的標識確定最先創(chuàng)建的進程,卸載所述最先創(chuàng)建的進程中的引擎;在所述最先創(chuàng)建的進程中下載對所述入侵防御系統(tǒng)進行升級的升級包。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述通過所述加載的引擎加載并編譯所述升級包中的特征庫,生成狀態(tài)機之前,還包括當已生成的狀態(tài)機的數(shù)量達到預設(shè)的第二閾值時,根據(jù)記錄的進程的標識確定最先創(chuàng)建的進程,釋放所述最先創(chuàng)建的進程中的一個狀態(tài)機;或者,卸載所述最先創(chuàng)建的進程中的引擎。
6. 根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括若僅需對所述入侵防御系統(tǒng)的特征庫進行升級,則根據(jù)記錄的進程的標識確定最新創(chuàng)建的進程,在所述最新創(chuàng)建的進程中下載對所述特征庫進行升級的升級包;通過所述最新創(chuàng)建的進程中加載的引擎,加載并編譯所述升級包中的特征庫,生成狀態(tài)機。
7. —種入侵防御系統(tǒng)的升級裝置,其特征在于,包括創(chuàng)建模塊,用于創(chuàng)建進程;下載模塊,用于在所述創(chuàng)建模塊創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包;加載模塊,用于在所述創(chuàng)建模塊創(chuàng)建的進程中,加載所述下載模塊下載的升級包中的引擎,設(shè)置并記錄加載的引擎的標識;編譯模塊,用于在所述創(chuàng)建模塊創(chuàng)建的進程中,通過所述加載模塊加載的引擎加載并編譯所述下載模塊下載的升級包中的特征庫,生成狀態(tài)機,升級所述入侵防御系統(tǒng)。
8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括檢測模塊,用于根據(jù)接收到的報文的報文頭中的信息和所述加載模塊記錄的引擎的標 識確定對所述報文進行檢測的引擎,通過確定的引擎調(diào)用所述編譯模塊生成的狀態(tài)機,對 所述報文進行檢測。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述檢測模塊包括判斷子模塊,用于根據(jù)所述報文的報文頭中的信息判斷所述報文是否為數(shù)據(jù)流的首報文;第一確定子模塊,用于當所述判斷子模塊確定所述報文是數(shù)據(jù)流的首報文時,根據(jù)記 錄的引擎的標識確定最新加載的引擎,所述最新加載的引擎為對所述報文進行檢測的引 擎;并記錄所述報文的報文頭中的五元組信息,建立所述五元組信息與對所述報文進行檢 測的引擎的標識的對應關(guān)系;第二確定子模塊,用于當所述判斷子模塊確定所述報文不是數(shù)據(jù)流的首報文時,根據(jù) 所述報文的報文頭中的五元組信息,利用在所述數(shù)據(jù)流的首報文時建立的五元組信息與引 擎的標識的對應關(guān)系,在所述記錄的引擎的標識中查找與所述五元組信息對應的引擎的標 識,確定所述標識對應的弓I擎為對所述報文進行檢測的引擎;報文檢測子模塊,用于通過所述第一確定子模塊或所述第二確定子模塊確定的引擎調(diào) 用所述編譯模塊生成的狀態(tài)機,對所述報文進行檢測。
10. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,還包括進程標識記錄模塊,用于根據(jù)創(chuàng)建進程的時間,設(shè)置并記錄創(chuàng)建的進程的標識; 所述下載模塊包括進程確定子模塊,用于當所述創(chuàng)建模塊已創(chuàng)建的進程的個數(shù)達到預設(shè)的第一閾值時, 根據(jù)所述進程標識記錄模塊記錄的進程的標識確定最先創(chuàng)建的進程;卸載子模塊,用于卸載所述進程確定子模塊確定的最先創(chuàng)建的進程中的引擎; 升級包下載子模塊,用于在所述卸載子模塊卸載所述進程確定子模塊確定的最先創(chuàng)建 的進程中的引擎之后,在所述進程確定子模塊確定的最先創(chuàng)建的進程中下載對所述入侵防 御系統(tǒng)進行升級的升級包。
11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,若僅需對所述入侵防御系統(tǒng)的特征庫 進行升級,則所述進程確定子模塊根據(jù)所述進程標識記錄模塊記錄的進程的標識確定最新 創(chuàng)建的進程;所述升級包下載子模塊在所述進程確定子模塊確定的最新創(chuàng)建的進程中下載 對所述特征庫進行升級的升級包;所述編譯模塊通過所述最新創(chuàng)建的進程中加載的引擎, 加載并編譯所述升級包下載子模塊下載的升級包中的特征庫,生成狀態(tài)機。
全文摘要
本發(fā)明實施例公開了一種入侵防御系統(tǒng)的升級方法和裝置,所述入侵防御系統(tǒng)的升級方法包括創(chuàng)建進程,在創(chuàng)建的進程中下載對入侵防御系統(tǒng)進行升級的升級包;在所述進程中,加載所述升級包中的引擎,設(shè)置并記錄加載的引擎的標識;通過所述加載的引擎加載并編譯所述升級包中的特征庫,生成狀態(tài)機,升級所述入侵防御系統(tǒng)。本發(fā)明實施例實現(xiàn)了在入侵防御系統(tǒng)的升級過程中加載多個引擎,編譯出多組狀態(tài)機同時工作,實現(xiàn)了在對入侵防御系統(tǒng)升級的同時最大限度地不中斷升級操作前的數(shù)據(jù)流的報文檢測業(yè)務。
文檔編號H04L29/06GK101695031SQ20091020705
公開日2010年4月14日 申請日期2009年10月27日 優(yōu)先權(quán)日2009年10月27日
發(fā)明者廉蓮 申請人:成都市華為賽門鐵克科技有限公司;
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1