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