一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新方法及裝置,屬于計算機網(wǎng)絡通信安全領域,所述方法包括:對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù);將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測引擎采用所述新的引擎檢測數(shù)據(jù)。本發(fā)明先在內(nèi)存中生成新的引擎檢測數(shù)據(jù),然后直接將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),便可實現(xiàn)通過檢測引擎的報文所采用的是新的引擎檢測數(shù)據(jù),從而實現(xiàn)了引擎檢測數(shù)據(jù)更新的無縫切換,避免了入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新過程中需要暫停報文通過檢測引擎,從而有效防止病毒攻擊。
【專利說明】一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新方法及裝置
【技術領域】
[0001]本發(fā)明屬于計算機網(wǎng)絡通信安全領域,尤其涉及一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新方法及裝置。
【背景技術】
[0002]隨著電腦的廣泛應用和網(wǎng)絡的不斷普及,來自網(wǎng)絡內(nèi)部和外部的危險和犯罪也日益增多。如今,不僅病毒數(shù)量劇增,質(zhì)量提高,而且通過網(wǎng)絡快速傳播,在短短的幾小時內(nèi)就能傳遍全世界。有的病毒還會在傳播過程中改變形態(tài),使防毒軟件失效。傳統(tǒng)防火墻加入侵檢測系統(tǒng)(Intrus1n Detect1n Systems,簡稱IDS)的技術已經(jīng)無法應對一些新的網(wǎng)絡威脅。在這種情況下,入侵防御系統(tǒng)(Intrus1n Prevent1n System,簡稱IPS)技術應運而生,IPS可以深度感知并主動檢測流經(jīng)該IPS的報文,對惡意報文進行丟棄以阻斷攻擊,對濫用報文進行限流以保護網(wǎng)絡帶寬資源。
[0003]入侵防御系統(tǒng)主要有兩個部分組成:檢測引擎和規(guī)則庫,前者是報文深度檢測的框架流程,后者被解析加載生成引擎檢測數(shù)據(jù),作為插件嵌入檢測引擎中。入侵防御系統(tǒng)的攻擊事件識別率取決于規(guī)則庫的完備性,規(guī)則庫根據(jù)新漏洞的出現(xiàn)需要不定期更新升級。目前的入侵防護系統(tǒng)在引擎檢測數(shù)據(jù)更新時,需要在入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新過程中暫停報文通過檢測引擎,等引擎檢測數(shù)據(jù)更新完成后,再開啟引擎檢測功能,這將使設備在這段時間處于無防御狀態(tài),有可能在引擎檢測數(shù)據(jù)更新期間放過攻擊事件,造成入侵攻擊。
【發(fā)明內(nèi)容】
[0004]為解決入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新過程中需要暫停報文通過檢測引擎有可能造成病毒攻擊的問題,本發(fā)明提供了一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新方法,所述方法包括:
[0005]對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù);
[0006]將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測弓I擎采用所述新的引擎檢測數(shù)據(jù)。
[0007]其中,將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)后,還包括:
[0008]釋放所述原弓I擎檢測數(shù)據(jù)。
[0009]其中,將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)后,還包括:
[0010]先等待預設時間,再釋放所述原引擎檢測數(shù)據(jù)。
[0011]其中,在內(nèi)存中生成新的引擎檢測數(shù)據(jù)后,還包括:
[0012]通過第一指針指向所述新的引擎檢測數(shù)據(jù);
[0013]將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)具體包括:
[0014]將所述第一指針的值賦給所述全局指針。
[0015]其中,將所述第一指針的值賦給所述全局指針前,還包括:
[0016]將所述全局指針的值賦給第二指針;
[0017]釋放所述原引擎檢測數(shù)據(jù)具體包括:
[0018]釋放所述第二指針所指向地址中的數(shù)據(jù)。
[0019]本發(fā)明還公開了一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新裝置,所述裝置包括:
[0020]解析生成模塊,用于對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù);
[0021]指向修改模塊,用于將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測弓I擎采用所述新的引擎檢測數(shù)據(jù)。
[0022]其中,所述指向修改模塊,還用于釋放所述原弓I擎檢測數(shù)據(jù)。
[0023]其中,所述指向修改模塊,還用于先等待預設時間,再釋放所述原引擎檢測數(shù)據(jù)。
[0024]其中,所述解析生成模塊,還用于通過第一指針指向所述新的引擎檢測數(shù)據(jù);
[0025]所述指向修改模塊包括:
[0026]指針賦值子模塊,用于將所述第一指針的值賦給所述全局指針。
[0027]其中,所述解析生成模塊,還用于將所述全局指針的值賦給第二指針;
[0028]所述指向修改模塊包括:
[0029]地址釋放子模塊,用于釋放所述第二指針所指向地址中的數(shù)據(jù)。
[0030]本發(fā)明先在內(nèi)存中生成新的引擎檢測數(shù)據(jù),然后直接將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),便可實現(xiàn)通過檢測引擎的報文所采用的是新的引擎檢測數(shù)據(jù),從而實現(xiàn)了引擎檢測數(shù)據(jù)更新的無縫切換,避免了入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新過程中需要暫停報文通過檢測引擎,從而有效防止病毒攻擊。
【專利附圖】
【附圖說明】
[0031]通過參考附圖會更加清楚的理解本發(fā)明的特征和優(yōu)點,附圖是示意性的而不應理解為對本發(fā)明進行任何限制,在附圖中:
[0032]圖1是本發(fā)明一種實施方式的引擎檢測數(shù)據(jù)更新方法的流程圖;
[0033]圖2是本發(fā)明一種實施例的全局指針切換之前指向示意圖;
[0034]圖3是本發(fā)明一種實施例的全局指針切換之后指向示意圖;
[0035]圖4是本發(fā)明一種實施方式的引擎檢測數(shù)據(jù)更新裝置的結構框圖
【具體實施方式】
[0036]下面結合附圖和實施例,對本發(fā)明的【具體實施方式】作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0037]圖1是本發(fā)明一種實施方式的引擎檢測數(shù)據(jù)更新方法的流程圖;參照圖1,所述方法包括以下步驟:
[0038]101:對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù);
[0039]本實施方式中,在執(zhí)行步驟101時,檢測引擎仍采用原引擎檢測數(shù)據(jù)對報文進行檢測。
[0040]102:將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測弓I擎采用所述新的引擎檢測數(shù)據(jù)。
[0041]為便于對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在本實施方式中,步驟101中,對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析之前,還包括:接收待更新規(guī)則文件,并通過所述待更新規(guī)則文件對入侵防御系統(tǒng)的規(guī)則庫進行更新。
[0042]在檢測引擎采用所述新的引擎檢測數(shù)據(jù)后,原引擎檢測數(shù)據(jù)仍然存在于內(nèi)存中,占用了一定的內(nèi)存空間,為提高內(nèi)存使用率,優(yōu)選地,步驟101中,將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的弓I擎檢測數(shù)據(jù)后,還包括:
[0043]釋放所述原弓I擎檢測數(shù)據(jù)。
[0044]特別的,對于多核架構的設備,在釋放所述原引擎檢測數(shù)據(jù)之前需要睡眠一段時間,例如I秒鐘,以便可以讓全局指針修改為指向所述新的引擎檢測數(shù)據(jù)之前,已經(jīng)開始通過檢測引擎的報文能夠完全檢測完成,從而避免訪問空指針,造成報文漏檢,優(yōu)選地,步驟101中,將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)后,還包括:
[0045]先等待預設時間,再釋放所述原弓I擎檢測數(shù)據(jù)。
[0046]為便于實現(xiàn)全局指針修改為指向所述新的引擎檢測數(shù)據(jù),優(yōu)選地,
[0047]步驟101中,在內(nèi)存中生成新的引擎檢測數(shù)據(jù)后,還包括:
[0048]通過第一指針指向所述新的引擎檢測數(shù)據(jù);
[0049]步驟102中,將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)具體包括:
[0050]將所述第一指針的值賦給所述全局指針。
[0051]為便于釋放所述原引擎檢測數(shù)據(jù),優(yōu)選地,步驟102中,將所述第一指針的值賦給所述全局指針前,還包括:
[0052]將所述全局指針的值賦給第二指針;
[0053]步驟102中,釋放所述原引擎檢測數(shù)據(jù)具體包括:
[0054]釋放所述第二指針所指向地址中的數(shù)據(jù)。
[0055]通常的,規(guī)則庫中的規(guī)則協(xié)議包括TCP、UDP、ICMP和IP協(xié)議等。相應的,上述全局指針也為對應不同的規(guī)則協(xié)議的多個全局指針。例如,TCP協(xié)議對應的全局指針為8_pstPrmTcpRTNX、UDP協(xié)議對應的全局指針為g_pstPrmUdpRTNX、ICMP協(xié)議對應的全局指針為g_pstPrmIcmpRTNX、IP協(xié)議對應的全局指針為g_pstPrmIpRTNX。本實施方式僅為舉例說明,不對其進行限定。
[0056]下面以TCP協(xié)議為例來說明本發(fā)明,但不限定本發(fā)明的保護范圍。設TCP協(xié)議對應的全局指針為g_pstPrmTcpRTNX,該全局指針g_pstPrmTcpRTNX指向TCP協(xié)議對應的原引擎檢測數(shù)據(jù)。規(guī)則庫中所有TCP協(xié)議的規(guī)則都被解析到全局指針g_pStPrmTCpRTNX指向的引擎檢測數(shù)據(jù)中,所述引擎檢測數(shù)據(jù)包含端口組,端口組包括由規(guī)則庫解析得到包含特定端口信息的規(guī)則生成的規(guī)則樹節(jié)點(Rule Tree Node,RTN)和選項樹節(jié)點(Opt1n TreeNode, OTN)結構。該引擎檢測數(shù)據(jù)占用的內(nèi)存都是動態(tài)分配的。
[0057]如圖2所示,檢測引擎根據(jù)全局指針g_pStPrmTCpRTNX采用原引擎檢測數(shù)據(jù)對報文進行檢測。若此時入侵防御系統(tǒng)的規(guī)則庫被更新,則對更新后的數(shù)據(jù)庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù),并由第一指針g_pstPrmTcpRTNXNew指向所述新的引擎檢測數(shù)據(jù)。
[0058]新的引擎檢測數(shù)據(jù)生成之后,通過以下步驟將全局指針g_p StPrmTcpRTNX修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測引擎采用所述新的引擎檢測數(shù)據(jù),其中g_pstPrmTcpRTNXOld為臨時指針變量:
[0059]I)將所述全局指針 g_pstPrmTcpRTNX 的值賦給第二指針 g_pstPrmTcpRTNX01d,即:
[0060]g_pstPrmTcpRTNX01d = g_pstPrmTcpRTNX ;
[0061]2)將所述第一指針g_pstPrmTcpRTNXNew的值賦給所述全局指針g_pstPrmTcpRTNX,即:
[0062]g_pstPrmTcpRTNX = g_pstPrmTcpRTNXNew ;
[0063]將全局指針g_pstPrmTcpRTNX修改為指向所述新的引擎檢測數(shù)據(jù)之后,指針指向如圖3所示,報文經(jīng)過入侵防御系統(tǒng)的檢測引擎時,檢測引擎所采用的引擎檢測數(shù)據(jù)已經(jīng)變?yōu)橛蒰_pstPrmTcpRTNX指向的新的引擎檢測數(shù)據(jù)。最后,釋放由g_pstPrmTcpRTNX01d指向地址中的原引擎檢測數(shù)據(jù)。
[0064]其它協(xié)議如UDP、ICMP及IP和TCP協(xié)議規(guī)則切換方式相同。
[0065]本發(fā)明還公開了一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新裝置,參照圖4,所述裝置包括:
[0066]解析生成模塊,用于對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù);
[0067]指向修改模塊,用于將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測弓I擎采用所述新的引擎檢測數(shù)據(jù)。
[0068]優(yōu)選地,所述指向修改模塊,還用于釋放所述原弓丨擎檢測數(shù)據(jù)。
[0069]優(yōu)選地,所述指向修改模塊,還用于先等待預設時間,再釋放所述原引擎檢測數(shù)據(jù)。
[0070]優(yōu)選地,所述解析生成模塊,還用于通過第一指針指向所述新的引擎檢測數(shù)據(jù);[0071 ] 所述指向修改模塊包括:
[0072]指針賦值子模塊,用于將所述第一指針的值賦給所述全局指針。
[0073]優(yōu)選地,所述解析生成模塊,還用于將所述全局指針的值賦給第二指針;
[0074]所述指向修改模塊包括:
[0075]地址釋放子模塊,用于釋放所述第二指針所指向地址中的數(shù)據(jù)。
[0076]以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關【技術領域】的普通技術人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護范圍應由權利要求限定。
【權利要求】
1.一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新方法,其特征在于,所述方法包括: 對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù); 將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測引擎采用所述新的引擎檢測數(shù)據(jù)。
2.根據(jù)權利要求1所述方法,其特征在于,將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)后,還包括: 釋放所述原引擎檢測數(shù)據(jù)。
3.根據(jù)權利要求2所述方法,其特征在于,將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)后,還包括: 先等待預設時間,再釋放所述原引擎檢測數(shù)據(jù)。
4.根據(jù)權利要求2或3所述方法,其特征在于,在內(nèi)存中生成新的引擎檢測數(shù)據(jù)后,還包括: 通過第一指針指向所述新的引擎檢測數(shù)據(jù); 將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù)具體包括: 將所述第一指針的值賦給所述全局指針。
5.根據(jù)權利要求4所述方法,其特征在于,將所述第一指針的值賦給所述全局指針前,還包括: 將所述全局指針的值賦給第二指針; 釋放所述原引擎檢測數(shù)據(jù)具體包括: 釋放所述第二指針所指向地址中的數(shù)據(jù)。
6.一種入侵防御系統(tǒng)的引擎檢測數(shù)據(jù)更新裝置,其特征在于,所述裝置包括: 解析生成模塊,用于對入侵防御系統(tǒng)更新后的規(guī)則庫進行解析,在內(nèi)存中生成新的引擎檢測數(shù)據(jù); 指向修改模塊,用于將指向原引擎檢測數(shù)據(jù)的全局指針修改為指向所述新的引擎檢測數(shù)據(jù),使得檢測弓I擎采用所述新的引擎檢測數(shù)據(jù)。
7.根據(jù)權利要求6所述裝置,其特征在于,所述指向修改模塊,還用于釋放所述原引擎檢測數(shù)據(jù)。
8.根據(jù)權利要求7所述裝置,其特征在于,所述指向修改模塊,還用于先等待預設時間,再釋放所述原引擎檢測數(shù)據(jù)。
9.根據(jù)權利要求7或8所述裝置,其特征在于,所述解析生成模塊,還用于通過第一指針指向所述新的引擎檢測數(shù)據(jù); 所述指向修改模塊包括: 指針賦值子模塊,用于將所述第一指針的值賦給所述全局指針。
10.根據(jù)權利要求9所述裝置,其特征在于,所述解析生成模塊,還用于將所述全局指針的值賦給第二指針; 所述指向修改模塊包括: 地址釋放子模塊,用于釋放所述第二指針所指向地址中的數(shù)據(jù)。
【文檔編號】G06F21/55GK104184725SQ201410369612
【公開日】2014年12月3日 申請日期:2014年7月25日 優(yōu)先權日:2014年7月25日
【發(fā)明者】胡波 申請人:漢柏科技有限公司