專利名稱:網(wǎng)絡(luò)攻擊檢測(cè)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)安全領(lǐng)域,尤其是一種利用預(yù)設(shè)的規(guī)則庫(kù)對(duì)數(shù)據(jù)報(bào)文進(jìn)行攻擊檢測(cè)的方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)安全風(fēng)險(xiǎn)系數(shù)不斷提高,曾經(jīng)作為最主要的安全防范手段的防火墻,已經(jīng)不能滿足人們對(duì)網(wǎng)絡(luò)安全的需求。作為對(duì)防火墻及其有益的補(bǔ)充,入侵檢測(cè)系統(tǒng)/入侵抵御系統(tǒng)(Intrusion Detection Systcm/IntrusionPrevention system,簡(jiǎn)稱IDS/IPS)能夠幫助網(wǎng)絡(luò)系統(tǒng)快速發(fā)現(xiàn)攻擊的發(fā)生并進(jìn)行積極的防御,擴(kuò)展了系統(tǒng)管理員的安全管理能力。
IDS/IPS是基于特征檢測(cè)的方式來(lái)進(jìn)行攻擊檢測(cè)的。在系統(tǒng)數(shù)據(jù)庫(kù)中存儲(chǔ)有多條攻擊規(guī)則,這些攻擊規(guī)則可被用于對(duì)數(shù)據(jù)報(bào)文進(jìn)行逐一過(guò)濾,一旦發(fā)現(xiàn)數(shù)據(jù)報(bào)文中有相關(guān)特征,則發(fā)出警告信息或阻止該數(shù)據(jù)報(bào)文。如圖1所示,為現(xiàn)有基于特征檢測(cè)的IDS/IPS工作原理示意圖,IDS/IPS系統(tǒng)1包托接收?qǐng)?bào)文部分4、規(guī)則庫(kù)5和處理策略部分6,如果當(dāng)前網(wǎng)絡(luò)流量為正常的網(wǎng)絡(luò)流量2,則可以順利通過(guò)接收?qǐng)?bào)文部分4、規(guī)則庫(kù)5和處理策略部分6;如果是網(wǎng)絡(luò)攻擊或病毒,則會(huì)被規(guī)則庫(kù)5命中,并在處理策略部分6執(zhí)行相應(yīng)處理以阻止該網(wǎng)絡(luò)攻擊或病毒。
在IDS/IPS系統(tǒng)中經(jīng)常采用一種典型的基于特征檢測(cè)的軟件(snort),其規(guī)則格式如下表
其支持的協(xié)議僅包括IP、TCP、UDP、ICMP。以下為Snort的規(guī)則實(shí)例
Alert tcp any any->192.168.1.0/24 80(content“cgi-bin/phf”;offset3;depth22;msg“CGI-PHF access”;)其中Alert表示匹配規(guī)則后執(zhí)行的動(dòng)作,tcp表示該規(guī)則適用的協(xié)議,any any->192.168.1.0/24 80表示源IP地址和端口向目標(biāo)IP地址和端口發(fā)送,content“cgi-bin/phf”表示包含“cgi-bin/phf”的字符串,offset3表示檢測(cè)的起始位置從第三個(gè)字符開(kāi)始,depth22表示檢測(cè)的深度,msg“CGI-PHF access”表示執(zhí)行Alert時(shí)發(fā)出的警示信息。
可以看出Snort的檢測(cè)方式是基于單包檢測(cè)的,并不考慮協(xié)議層次上的相關(guān)性,在檢測(cè)時(shí)只對(duì)負(fù)載部分和部分第四層協(xié)議頭進(jìn)行檢測(cè),例如檢測(cè)TCP或UDP的協(xié)議頭信息,而攻擊規(guī)則中缺少對(duì)報(bào)文所屬的會(huì)話流更高協(xié)議層次的判斷,因此可能會(huì)出現(xiàn)較高協(xié)議層次的會(huì)話流雖然與攻擊規(guī)則中的異常信息無(wú)關(guān),但其負(fù)載部分以及TCP/UDP文件頭符合,仍然認(rèn)為命中攻擊規(guī)則,導(dǎo)致誤報(bào)。
另外,基于特征檢測(cè)的攻擊檢測(cè)方式還有其他一些缺點(diǎn)1、支持上層協(xié)議較少,例如Snort只支持TCP/UDP/ICMP等協(xié)議,不能支持HTTP或FTP等上層協(xié)議;2、只可對(duì)TCP連接建立的狀態(tài)進(jìn)行定義,而不能定義會(huì)話流的狀態(tài);3、攻擊規(guī)則之間的相關(guān)性差,難以重用;4、攻擊規(guī)則采用邏輯行的形式表述,較難解析和維護(hù)。
發(fā)明內(nèi)容
本發(fā)明的目的提出一種網(wǎng)絡(luò)攻擊檢測(cè)方法,能夠基于數(shù)據(jù)報(bào)文的會(huì)話狀態(tài)進(jìn)行匹配,從而實(shí)現(xiàn)上下文檢測(cè),降低誤報(bào)率。
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種網(wǎng)絡(luò)攻擊檢測(cè)方法,包括以下步驟步驟10、接收會(huì)話流的數(shù)據(jù)報(bào)文,并將當(dāng)前數(shù)據(jù)報(bào)文與預(yù)設(shè)的特征庫(kù)中的特征進(jìn)行逐一比對(duì);
步驟20、當(dāng)所述當(dāng)前數(shù)據(jù)報(bào)文匹配所述特征時(shí),在預(yù)設(shè)的規(guī)則庫(kù)中查詢引用該匹配特征的攻擊規(guī)則,所述攻擊規(guī)則中包括一個(gè)或數(shù)個(gè)特征、與特征對(duì)應(yīng)的狀態(tài)和定義的操作;步驟30、判斷所述攻擊規(guī)則是否已被記錄在會(huì)話狀態(tài)記錄表中,是則執(zhí)行步驟40,否則執(zhí)行步驟50;步驟40、根據(jù)所述會(huì)話狀態(tài)記錄表中的攻擊規(guī)則中特征之間的關(guān)系,判斷是否滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),是則執(zhí)行步驟60,并結(jié)束操作;否則使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作;步驟50、在所述會(huì)話狀態(tài)記錄表中添加所述攻擊規(guī)則,并為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài),然后使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作;步驟60、根據(jù)該攻擊規(guī)則定義的操作對(duì)當(dāng)前數(shù)據(jù)報(bào)文或會(huì)話流執(zhí)行所述攻擊規(guī)則中定義的操作。
當(dāng)數(shù)據(jù)報(bào)文與所述特征庫(kù)中所有特征都無(wú)法匹配時(shí),則意味著當(dāng)前數(shù)據(jù)報(bào)文為安全報(bào)文,故使當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作。
在上述技術(shù)方案中,IDS/IPS中設(shè)有會(huì)話狀態(tài)記錄表,可以記錄會(huì)話的狀態(tài),會(huì)話的狀態(tài)變遷由該會(huì)話命中的特征進(jìn)行推導(dǎo),當(dāng)上下文的會(huì)話狀態(tài)完全滿足攻擊規(guī)則中各個(gè)特征的狀態(tài)時(shí),則認(rèn)為攻擊規(guī)則與截取的網(wǎng)絡(luò)會(huì)話相匹配,然后執(zhí)行相應(yīng)的處理操作,例如告警、記錄日志或丟棄數(shù)據(jù)包等。
在上述技術(shù)方案中,IDS/IPS中設(shè)有預(yù)設(shè)的特征庫(kù)和規(guī)則庫(kù),規(guī)則庫(kù)中的攻擊規(guī)則引用特征庫(kù)中的一個(gè)或數(shù)個(gè)特征,可通過(guò)組合不同的特征和特征之間的關(guān)系獲得攻擊規(guī)則,因此可重用性較高。
進(jìn)一步地,可以在步驟20和步驟30之間加入以下步驟當(dāng)查詢到攻擊規(guī)則后,判斷該攻擊規(guī)則對(duì)應(yīng)的規(guī)則體中是否具有所述匹配特征對(duì)應(yīng)的狀態(tài)條件,是則執(zhí)行步驟30,否則直接執(zhí)行步驟60。
進(jìn)一步地,在步驟10中比對(duì)操作具體為將所述當(dāng)前數(shù)據(jù)報(bào)文與預(yù)設(shè)的特征庫(kù)中的特征進(jìn)行逐一比對(duì),比對(duì)內(nèi)容包括所述當(dāng)前數(shù)據(jù)報(bào)文的凈荷部分和/或協(xié)議頭信息,當(dāng)所述當(dāng)前數(shù)據(jù)報(bào)文符合所述特征時(shí),進(jìn)一步對(duì)當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配進(jìn)行判斷,是則執(zhí)行步驟20,否則使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作。
在步驟10中特征包括凈荷部分和協(xié)議頭信息,還包括協(xié)議層次信息,凈荷部分是指去掉各種協(xié)議頭后的凈荷,而協(xié)議層次信息可以為一些會(huì)話協(xié)議,例如HTTP、FTP和SIP等協(xié)議,并且不局限于以上列舉的幾種。
在所述步驟50中所述為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài)的操作具體為為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài),該會(huì)話狀態(tài)為無(wú)狀態(tài)、請(qǐng)求、應(yīng)答、可選、并列、順序、結(jié)束、持續(xù)和釋放中狀態(tài)之一。
所述進(jìn)一步對(duì)當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配進(jìn)行判斷的操作具體為根據(jù)當(dāng)前數(shù)據(jù)報(bào)文中的端口信息或確認(rèn)標(biāo)志獲得當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次,并判斷所述協(xié)議層次與該特征中的協(xié)議層次信息是否匹配。
在所述步驟10之前,包括構(gòu)造XML格式的攻擊規(guī)則和特征的步驟,具體為將攻擊規(guī)則和特征以XML格式進(jìn)行表示,并分別預(yù)先存儲(chǔ)在規(guī)則庫(kù)和特征庫(kù)中。其中用XML格式進(jìn)行表示的攻擊規(guī)則包括規(guī)則頭、規(guī)則體和規(guī)則策略。XML文件格式是攻擊規(guī)則的外在表現(xiàn)形式,采用這種格式便于規(guī)則的管理和擴(kuò)充。在IDS/IPS系統(tǒng)啟動(dòng)時(shí),IDS/IPS系統(tǒng)會(huì)從文件或者數(shù)據(jù)庫(kù)中將攻擊規(guī)則和特征讀出來(lái),重新組織后放到內(nèi)存中。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供了一種網(wǎng)絡(luò)攻擊檢測(cè)裝置,包括報(bào)文接收模塊,用于接收會(huì)話流中的數(shù)據(jù)報(bào)文;特征存儲(chǔ)模塊,用于存儲(chǔ)特征,該特征包括負(fù)載部分和協(xié)議層次信息;規(guī)則存儲(chǔ)模塊,與所述特征存儲(chǔ)模塊相連,用于存儲(chǔ)攻擊規(guī)則,該攻擊規(guī)則包括引用的特征存儲(chǔ)模塊中存儲(chǔ)的一個(gè)或數(shù)個(gè)特征、所述一個(gè)或數(shù)個(gè)特征的狀態(tài)和處理策略;特征匹配模塊,與所述報(bào)文接收模塊和特征存儲(chǔ)模塊相連,用于將所述數(shù)據(jù)報(bào)文與特征存儲(chǔ)模塊中的特征進(jìn)行逐一比對(duì);會(huì)話狀態(tài)記錄模塊,用于存儲(chǔ)數(shù)據(jù)報(bào)文所屬對(duì)話所匹配的規(guī)則;會(huì)話狀態(tài)匹配模塊,與所述特征匹配模塊、會(huì)話狀態(tài)記錄模塊和規(guī)則存儲(chǔ)模塊相連,用于在規(guī)則存儲(chǔ)模塊中查詢引用所述匹配特征的攻擊規(guī)則,判斷所述攻擊規(guī)則是否已被記錄在會(huì)話狀態(tài)記錄模塊中,是則根據(jù)所述會(huì)話狀態(tài)記錄模塊中的攻擊規(guī)則中特征之間的關(guān)系,并判斷是否滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài);否則在所述會(huì)話狀態(tài)記錄模塊中添加所述攻擊規(guī)則,并為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài),然后由報(bào)文處理模塊使所述數(shù)據(jù)報(bào)文通過(guò)。
報(bào)文處理模塊,與所述會(huì)話狀態(tài)匹配模塊相連,用于在所述會(huì)話狀態(tài)匹配模塊中如果滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),則對(duì)數(shù)據(jù)報(bào)文執(zhí)行所述攻擊規(guī)則中定義的操作;如果不滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),則使所述數(shù)據(jù)報(bào)文通過(guò)。在上述技術(shù)方案中,所述特征匹配模塊進(jìn)一步包括第一匹配單元,與所述報(bào)文接收模塊和特征存儲(chǔ)模塊相連,用于將當(dāng)前數(shù)據(jù)報(bào)文與特征存儲(chǔ)模塊中的特征進(jìn)行逐一比對(duì),比對(duì)內(nèi)容包括所述當(dāng)前數(shù)據(jù)報(bào)文的凈荷部分和協(xié)議頭信息;第二匹配單元,與所述第一匹配單元和特征存儲(chǔ)模塊相連,用于在當(dāng)前數(shù)據(jù)報(bào)文符合所述特征時(shí),進(jìn)一步對(duì)當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配進(jìn)行判斷,是則將當(dāng)前數(shù)據(jù)報(bào)文匹配的特征發(fā)送給會(huì)話狀態(tài)匹配模塊,否則使所述數(shù)據(jù)報(bào)文通過(guò)。
基于上述技術(shù)方案,本發(fā)明具有以下優(yōu)點(diǎn)1、本發(fā)明基于會(huì)話狀態(tài)的上下文進(jìn)行攻擊檢測(cè),當(dāng)一個(gè)會(huì)話中多個(gè)數(shù)據(jù)包分別與一條規(guī)則中的所有特征的狀態(tài)匹配時(shí),才認(rèn)為該條規(guī)則被匹配,從而降低了誤報(bào)率,提高了攻擊規(guī)則的準(zhǔn)確率;2、本發(fā)明在特征或規(guī)則判斷時(shí),將匹配內(nèi)容擴(kuò)展到協(xié)議層次,使攻擊規(guī)則和協(xié)議相關(guān),從而減少攻擊規(guī)則的誤報(bào)率;
3、本發(fā)明攻擊規(guī)則由一個(gè)或數(shù)個(gè)特征引用構(gòu)成,具有良好的可重用性;4、本發(fā)明采用XML格式定義攻擊規(guī)則和特征,便于攻擊規(guī)則的補(bǔ)充和特征庫(kù)和規(guī)則庫(kù)的維護(hù),并且便于解析和存?。幌旅嫱ㄟ^(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為現(xiàn)有基于特征檢測(cè)的IDS/IPS工作原理示意圖。
圖2為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第一實(shí)施例的流程示意圖。
圖3為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第二實(shí)施例的流程示意圖。
圖4為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第三實(shí)施例的流程示意圖。
圖5為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第四實(shí)施例的流程示意圖。
圖6為本發(fā)明攻擊規(guī)則的構(gòu)成示意圖。
圖7為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)裝置的第一實(shí)施例的流程示意圖。
圖8為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)裝置的第二實(shí)施例的流程示意圖。
具體實(shí)施例方式
本發(fā)明提出了基于會(huì)話狀態(tài)的上下文檢測(cè),當(dāng)一個(gè)會(huì)話中多個(gè)數(shù)據(jù)包分別與一條規(guī)則中的所有特征的狀態(tài)匹配時(shí),才認(rèn)為該條規(guī)則被匹配,從而使攻擊檢測(cè)的誤報(bào)率進(jìn)一步降低。
如圖2所示,其為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第一實(shí)施例的流程示意圖。該實(shí)施例包括以下步驟步驟10、接收會(huì)話流的數(shù)據(jù)報(bào)文,并將當(dāng)前數(shù)據(jù)報(bào)文與預(yù)設(shè)的特征庫(kù)中的特征進(jìn)行逐一比對(duì);步驟20、當(dāng)所述當(dāng)前數(shù)據(jù)報(bào)文匹配所述特征時(shí),在預(yù)設(shè)的規(guī)則庫(kù)中查詢引用該匹配特征的攻擊規(guī)則,所述攻擊規(guī)則中包括一個(gè)或數(shù)個(gè)特征、與特征對(duì)應(yīng)的狀態(tài)和定義的操作;
步驟30、判斷所述攻擊規(guī)則是否已被記錄在會(huì)話狀態(tài)記錄表中,是則執(zhí)行步驟40,否則執(zhí)行步驟50;步驟40、根據(jù)所述會(huì)話狀態(tài)記錄表中的攻擊規(guī)則中特征之間的關(guān)系,判斷是否滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),是則執(zhí)行步驟60,并結(jié)束操作;否則使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作;步驟50、在所述會(huì)話狀態(tài)記錄表中添加所述攻擊規(guī)則,并為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài),然后使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作;步驟60、根據(jù)該攻擊規(guī)則定義的操作對(duì)當(dāng)前數(shù)據(jù)報(bào)文或會(huì)話流執(zhí)行所述攻擊規(guī)則中定義的操作。
在本實(shí)施例中,可以在會(huì)話狀態(tài)記錄表中存儲(chǔ)整條攻擊規(guī)則的內(nèi)容;也可以只將攻擊規(guī)則的標(biāo)識(shí)記錄在會(huì)話狀態(tài)記錄表中;或者將攻擊規(guī)則中的特征標(biāo)識(shí)和攻擊策略標(biāo)識(shí)記錄在會(huì)話狀態(tài)記錄表中。所以步驟30中“攻擊規(guī)則是否已被記錄在會(huì)話狀態(tài)記錄表中”包括上述的幾種情況,實(shí)際上只要根據(jù)會(huì)話狀態(tài)記錄表的記錄的內(nèi)容能判斷對(duì)應(yīng)的數(shù)據(jù)報(bào)文該執(zhí)行何種操作的記錄方式都是可以的。
如圖3所示,其為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第二實(shí)施例的流程示意圖。步驟10接收數(shù)據(jù)報(bào)文,并將當(dāng)前數(shù)據(jù)報(bào)文與預(yù)設(shè)的特征庫(kù)中的特征進(jìn)行逐一比對(duì)。在接收數(shù)據(jù)報(bào)文前,需要先對(duì)網(wǎng)絡(luò)中攔截的數(shù)據(jù)報(bào)文進(jìn)行分流和保序以形成會(huì)話流。在比對(duì)時(shí)需要與特征庫(kù)中的特征進(jìn)行一一比對(duì),直到將所有的特征都比對(duì)完畢。特征庫(kù)是包括有數(shù)個(gè)特征的集合,可以在物理上分別存儲(chǔ),也可以集中存儲(chǔ)。
步驟20在預(yù)設(shè)的規(guī)則庫(kù)中查詢引用上一步驟中匹配特征的攻擊規(guī)則。該攻擊規(guī)則包含有一個(gè)或數(shù)個(gè)特征以及這些特征對(duì)應(yīng)的攻擊策略,另外攻擊規(guī)則除了包含上述內(nèi)容外還可以包含有與特征對(duì)應(yīng)的狀態(tài)。這種狀態(tài)包括無(wú)狀態(tài)(default)、請(qǐng)求(request)、應(yīng)答(response)、可選(or)、并列(and)、順序(sequence)、結(jié)束(end)、持續(xù)(keep)和釋放(release)等。其中請(qǐng)求表示當(dāng)前報(bào)文為發(fā)起方的請(qǐng)求消息,應(yīng)答表示當(dāng)前報(bào)文為請(qǐng)求方的回應(yīng)消息,可選表示跳到下一狀態(tài)的可選消息,并列表示必須收到當(dāng)前報(bào)文后才能跳到下一個(gè)狀態(tài),順序表示當(dāng)前消息必須緊接著上一個(gè)消息,結(jié)束表示當(dāng)前消息為結(jié)束消息,持續(xù)表示當(dāng)前消息發(fā)現(xiàn)后完全占有本協(xié)議層次的會(huì)話,釋放表示發(fā)現(xiàn)當(dāng)前消息后釋放占有的會(huì)話。
步驟21當(dāng)查詢到攻擊規(guī)則以后,判斷該攻擊規(guī)則對(duì)應(yīng)的規(guī)則體中是否有所述特征對(duì)應(yīng)的狀態(tài)條件,若沒(méi)有,直接執(zhí)行步驟60;若有,則執(zhí)行步驟30;步驟30判斷所述匹配特征對(duì)應(yīng)的攻擊規(guī)則中包含的之前的狀態(tài)信息是否已被記錄在會(huì)話狀態(tài)記錄表中,是則執(zhí)行步驟40,否則執(zhí)行步驟50。
步驟40判斷是否滿足攻擊規(guī)則中所有特征對(duì)應(yīng)的會(huì)話狀態(tài),是則執(zhí)行步驟60,并結(jié)束操作;否則執(zhí)行步驟50;步驟50將該特征及對(duì)應(yīng)的狀態(tài)添加到會(huì)話狀態(tài)記錄表中,并使當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作。
步驟60根據(jù)該攻擊規(guī)則的攻擊策略對(duì)當(dāng)前數(shù)據(jù)報(bào)文或會(huì)話流執(zhí)行相應(yīng)的操作。這些定義的操作可能是針對(duì)當(dāng)前數(shù)據(jù)報(bào)文,也可能是對(duì)整個(gè)會(huì)話流,攻擊策略包括拋棄當(dāng)前的數(shù)據(jù)報(bào)文、報(bào)警、關(guān)閉會(huì)話流等。
在這個(gè)實(shí)施例中,規(guī)則庫(kù)中包括兩種攻擊規(guī)則,一種是包含具有狀態(tài)的特征的攻擊規(guī)則,一種是只有單一特征,且不具有狀態(tài)的攻擊規(guī)則,本實(shí)施例可以對(duì)這兩種規(guī)則進(jìn)行選擇,以適配攻擊的復(fù)雜程度,當(dāng)某種攻擊較容易判別,就可以采用單一特征的攻擊規(guī)則,如果某種攻擊誤報(bào)率高,則適合于采用會(huì)話上下文進(jìn)行識(shí)別。
如圖4所示,其為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第三實(shí)施例的流程示意圖,在這個(gè)實(shí)施例中對(duì)上一實(shí)施例中的特征比對(duì)進(jìn)行細(xì)化。
步驟11將當(dāng)前數(shù)據(jù)報(bào)文與預(yù)設(shè)的特征庫(kù)中的特征進(jìn)行逐一比對(duì),比對(duì)內(nèi)容包括當(dāng)前數(shù)據(jù)報(bào)文的凈荷部分和/或協(xié)議頭信息;
步驟12若當(dāng)前數(shù)據(jù)報(bào)文符合特征時(shí),進(jìn)一步判斷當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配,是則執(zhí)行步驟20,否則使當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作。
在比較時(shí)先對(duì)特征中的凈荷部分和/或協(xié)議頭進(jìn)行比對(duì),例如TCP報(bào)文中包括IP和TCP的協(xié)議頭以及負(fù)載部分,當(dāng)這些協(xié)議頭和負(fù)載部分都被特征命中時(shí),才進(jìn)行進(jìn)一步的協(xié)議層次匹配。當(dāng)前數(shù)據(jù)報(bào)文所屬的會(huì)話的協(xié)議層次的判斷方法有很多種,例如利用端口判斷上層的應(yīng)用協(xié)議,比如HTTP協(xié)議的端口一般為80,F(xiàn)TP協(xié)議的端口一般為21,當(dāng)報(bào)文中記錄的端口號(hào)為21時(shí),則推算該會(huì)話的報(bào)文為FTP協(xié)議,然后將這個(gè)協(xié)議層次與特征中的協(xié)議層次信息進(jìn)行匹配,只有都符合時(shí)才認(rèn)為特征匹配。
如圖5所示,其為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)方法的第四實(shí)施例的流程示意圖,與前兩個(gè)實(shí)施例相比,這個(gè)實(shí)施例在步驟10之前加入步驟10a,預(yù)先對(duì)特征和攻擊規(guī)則按照XML格式進(jìn)行定義。其中攻擊規(guī)則包括規(guī)則頭、規(guī)則體和規(guī)則策略,其中規(guī)則頭包含了該條攻擊規(guī)則的自身信息,例如規(guī)則名、規(guī)則描述以及規(guī)則版本等;規(guī)則體包含有一個(gè)或數(shù)個(gè)特征,另外規(guī)則體還可以包含有與特征對(duì)應(yīng)的狀態(tài),特征的狀態(tài)代表著特征之間的關(guān)聯(lián)關(guān)系。規(guī)則策略,即定義的操作,表示滿足攻擊規(guī)則的條件后執(zhí)行的操作。
對(duì)于攻擊規(guī)則可以用XML格式進(jìn)行設(shè)計(jì),這種XML格式定義的攻擊規(guī)則便于維護(hù)和擴(kuò)展。XML格式的攻擊規(guī)則如下<rule>
<!--規(guī)則頭部分-->
<header>
</header>
<!--規(guī)則體部分-->
<body>
</body>
<!--規(guī)則策略部分-->
<action>
</action>
</rule>
其中規(guī)則體部分XML格式如下<body>
<signature state=””>
</signature>
</body>
其中signature表示特征,其狀態(tài)(state)可以取不同的狀態(tài)值。特征(signature)也可以采用XML格式進(jìn)行定義,特征包括協(xié)議部分和負(fù)載部分,其中負(fù)載部分是指的除掉所有協(xié)議頭剩下的凈荷,協(xié)議部分包括協(xié)議層次信息和協(xié)議頭信息。其中協(xié)議部分可以采用參數(shù)化模板的方式實(shí)現(xiàn),所謂參數(shù)化模板是由一個(gè)或多個(gè)字段組合而成,只需要對(duì)其中的字段進(jìn)行參數(shù)化就可獲得該參數(shù)化模板的實(shí)例。在定義特征時(shí)就需要對(duì)模板中的內(nèi)容進(jìn)行賦值。以下給出一個(gè)具體實(shí)例進(jìn)行說(shuō)明,XML格式表示的特征定義為<!--定義特征,并指明其 id-->
<signature id=”060201”name=”httprequest”>
<!--定義該特征的協(xié)議層次信息,引用HTTP協(xié)議的協(xié)議號(hào)-->
<protocol>000220</protocol>
<!--定義該特征引用的參數(shù)化模板-->
<templates>
</templates>
<!--定義該特征的負(fù)載模板-->
<payloads>
</payloads>
</signature>
在上述定義中,參數(shù)化模板在<template></template>中進(jìn)行定義,例如預(yù)先定義一種IP模板,在這個(gè)模板上設(shè)有源IP地址、目的IP地址、TTL參數(shù)以及TOS參數(shù)等,在特征引用該模板時(shí),需要對(duì)以上參數(shù)進(jìn)行賦值,從而獲得一個(gè)特征實(shí)例,下面是該特征實(shí)例的XML格式表示<signature>
<!--特征所引用的IP模板-->
<templates>
<IP>
<!--對(duì)引用的模板的參數(shù)進(jìn)行賦值-->
<saddr><eq>10.1.1.1</eq></saddr>
<!--對(duì)引用的模板的參數(shù)tos進(jìn)行賦值-->
<tos><eq>20</eq></tos>
<IP>
</templates>
</signature>
在本實(shí)施例中,當(dāng)系統(tǒng)啟動(dòng)時(shí),在步驟10a之后,將XML格式表示的攻擊規(guī)則和特征讀入到內(nèi)存中,以供使用。
下面舉出一個(gè)具體實(shí)例進(jìn)行說(shuō)明在會(huì)話流中有先后兩個(gè)TCP報(bào)文,第一個(gè)報(bào)文源IP地址為“10.1.1.1”,目的端口為“80”,負(fù)載包含“%25%25../dir”,第二個(gè)報(bào)文源IP地址為“10.1.1.17”,包含負(fù)載“404not found”。在規(guī)則庫(kù)中有這樣兩條規(guī)則,如下rule httpunicode<header>Http Unicode attack.</header>
<body>
<signature1 state=“request”>
<protocol>http</protocol>
<IP><sip>10.1.1.1</sip></IP>
<TCP><dport>80</dport></TCP>
<content>%25%25../dir</content>
</signature1>
<signature2 state=“response”>
<protocol>http</protocol>
<IP><sip>10.1.1.20</sip></IP>
<content>404 not found</content>
</signature2>
</body>
<action>block<action>
規(guī)則httpunicode的規(guī)則體(body)中包含兩個(gè)特征(signature)signature1和signature2,其中signature1為HTTP請(qǐng)求,signature2為HTTP應(yīng)答;signature1指定的協(xié)議層次為HTTP,其引用了IP模板的源IP地址,并為其賦值“10.1.1.1”,此外,還引用了TCP模板的目的IP端口參數(shù),并為其賦值為“80”,signature1的負(fù)載為“%25%25../dir”;signature2指定的協(xié)議層次為HTTP,其引用了IP模板的源IP地址,并為其賦值“10.1.1.17”,signature1的負(fù)載為“404 not found”。
會(huì)話管理模塊(會(huì)話管理模塊主要是進(jìn)行會(huì)話管理,建立、刪除和維護(hù)會(huì)話信息)將報(bào)文1發(fā)送到IDS/IPS時(shí),對(duì)特征進(jìn)行匹配,并查找匹配的攻擊規(guī)則,這時(shí)會(huì)發(fā)現(xiàn)報(bào)文1與signature1相匹配,在這個(gè)過(guò)程中要對(duì)該報(bào)文所屬會(huì)話上的協(xié)議層次進(jìn)行匹配(一般會(huì)話管理模塊在會(huì)話建立時(shí)就能判斷該會(huì)話的協(xié)議層次,比如通過(guò)端口識(shí)別或者固定模式識(shí)別等),如果該會(huì)話上的協(xié)議層次也為http協(xié)議,那么表明該報(bào)文命中signature1,然后相應(yīng)的查找到對(duì)應(yīng)的攻擊規(guī)則httpunicode。
此時(shí),在該會(huì)話的會(huì)話記錄表查找該攻擊規(guī)則,如果沒(méi)有,則添加攻擊規(guī)則httpunicode的記錄,并記錄該攻擊規(guī)則已經(jīng)命中了signature1,同時(shí)設(shè)定該特征的狀態(tài)為request,然后讓報(bào)文1通過(guò)。
當(dāng)報(bào)文2通過(guò)會(huì)話管理模塊送入時(shí),發(fā)現(xiàn)與signature2匹配,再次查找到對(duì)應(yīng)的攻擊規(guī)則httpunicode。然后在該會(huì)話的會(huì)話記錄表中查找該條攻擊規(guī)則,當(dāng)發(fā)現(xiàn)了攻擊規(guī)則httpunicode的記錄時(shí),而且已匹配了signature1,這就表明該會(huì)話流中的報(bào)文已經(jīng)完全匹配了攻擊規(guī)則httpunicode中所有特征對(duì)應(yīng)的狀態(tài),從而認(rèn)為該會(huì)話流符合攻擊規(guī)則httpunicode。然后根據(jù)規(guī)則httpunicode的攻擊策略,執(zhí)行動(dòng)作,將該報(bào)文丟棄,并告知會(huì)話管理模塊刪除該會(huì)話,不允許后續(xù)報(bào)文發(fā)送。
如圖7所示,為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)的裝置的第一實(shí)施例,該裝置包括報(bào)文接收模塊101、特征匹配模塊102、報(bào)文處理模塊103、特征存儲(chǔ)模塊104、規(guī)則存儲(chǔ)模塊105,會(huì)話狀態(tài)記錄模塊106和會(huì)話狀態(tài)匹配模塊107。其中報(bào)文接收模塊101接收會(huì)話流中的數(shù)據(jù)報(bào)文,特征匹配模塊102與報(bào)文接收模塊101和特征存儲(chǔ)模塊104相連,將所述數(shù)據(jù)報(bào)文與特征存儲(chǔ)模塊104中的特征進(jìn)行逐一比對(duì)。在會(huì)話狀態(tài)記錄模塊106中存儲(chǔ)有數(shù)據(jù)報(bào)文所屬對(duì)話所匹配的攻擊規(guī)則,會(huì)話狀態(tài)匹配模塊107在規(guī)則存儲(chǔ)模塊104中查詢引用匹配特征的攻擊規(guī)則,判斷攻擊規(guī)則是否已被記錄在會(huì)話狀態(tài)記錄模塊106中,是則根據(jù)會(huì)話狀態(tài)記錄模塊中的攻擊規(guī)則中特征之間的關(guān)系,并判斷是否滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài);否則在會(huì)話狀態(tài)記錄模塊中添加攻擊規(guī)則,并為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài)。報(bào)文處理模塊103與會(huì)話狀態(tài)匹配模塊107相連,在會(huì)話狀態(tài)匹配模塊107中如果滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),則對(duì)數(shù)據(jù)報(bào)文執(zhí)行攻擊規(guī)則中定義的操作;如果不滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),則使數(shù)據(jù)報(bào)文通過(guò)。
如圖8所示,為本發(fā)明網(wǎng)絡(luò)攻擊檢測(cè)的裝置的第二實(shí)施例,與上一實(shí)施例相比,本實(shí)施例中特征匹配模塊104進(jìn)一步包括第一匹配單元108和第二匹配單元109,其中第一匹配單元108與報(bào)文接收模塊101和特征存儲(chǔ)模塊104相連,可將當(dāng)前數(shù)據(jù)報(bào)文與特征存儲(chǔ)模塊中的特征進(jìn)行逐一比對(duì),比對(duì)內(nèi)容包括所述當(dāng)前數(shù)據(jù)報(bào)文的凈荷部分和協(xié)議頭信息。第二匹配單元109與第一匹配單元108和特征存儲(chǔ)模塊104相連,可在當(dāng)前數(shù)據(jù)報(bào)文符合特征時(shí),進(jìn)一步對(duì)當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配進(jìn)行判斷,是則將當(dāng)前數(shù)據(jù)報(bào)文匹配的特征發(fā)送給會(huì)話狀態(tài)匹配模塊,否則使所述數(shù)據(jù)報(bào)文通過(guò)。
最后應(yīng)當(dāng)說(shuō)明的是以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其限制;盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解依然可以對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行修改或者對(duì)部分技術(shù)特征進(jìn)行等同替換;而不脫離本發(fā)明技術(shù)方案的精神,其均應(yīng)涵蓋在本發(fā)明請(qǐng)求保護(hù)的技術(shù)方案范圍當(dāng)中。
權(quán)利要求
1.一種網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,包括以下步驟步驟10、接收會(huì)話流的數(shù)據(jù)報(bào)文,并將當(dāng)前數(shù)據(jù)報(bào)文與預(yù)設(shè)的特征庫(kù)中的特征進(jìn)行逐一比對(duì);步驟20、當(dāng)所述當(dāng)前數(shù)據(jù)報(bào)文匹配所述特征時(shí),在預(yù)設(shè)的規(guī)則庫(kù)中查詢引用該匹配特征的攻擊規(guī)則,所述攻擊規(guī)則中包括一個(gè)或數(shù)個(gè)特征、與特征對(duì)應(yīng)的狀態(tài)和定義的操作;步驟30、判斷所述攻擊規(guī)則是否已被記錄在會(huì)話狀態(tài)記錄表中,是則執(zhí)行步驟40,否則執(zhí)行步驟50;步驟40、根據(jù)所述會(huì)話狀態(tài)記錄表中的攻擊規(guī)則中特征之間的關(guān)系,判斷是否滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),是則執(zhí)行步驟60,并結(jié)束操作;否則使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作;步驟50、在所述會(huì)話狀態(tài)記錄表中添加所述攻擊規(guī)則,并為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài),然后使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作;步驟60、根據(jù)該攻擊規(guī)則定義的操作對(duì)當(dāng)前數(shù)據(jù)報(bào)文或會(huì)話流執(zhí)行所述攻擊規(guī)則中定義的操作。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,在步驟20和步驟30之間,還包括以下步驟當(dāng)查詢到攻擊規(guī)則后,判斷該攻擊規(guī)則對(duì)應(yīng)的規(guī)則體中是否具有所述匹配特征對(duì)應(yīng)的狀態(tài)條件,是則執(zhí)行步驟30,否則直接執(zhí)行步驟60。
3.根據(jù)權(quán)利要求1或2所述的網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,在步驟10中比對(duì)操作具體為將所述當(dāng)前數(shù)據(jù)報(bào)文與預(yù)設(shè)的特征庫(kù)中的特征進(jìn)行逐一比對(duì),比對(duì)內(nèi)容包括所述當(dāng)前數(shù)據(jù)報(bào)文的凈荷部分和/或協(xié)議頭信息,當(dāng)所述當(dāng)前數(shù)據(jù)報(bào)文符合所述特征時(shí),進(jìn)一步對(duì)當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配進(jìn)行判斷,是則執(zhí)行步驟20,否則使所述當(dāng)前數(shù)據(jù)報(bào)文通過(guò),并結(jié)束操作。
4.根據(jù)權(quán)利要求1或2所述的網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,所述步驟50中所述為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài)的操作具體為為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài),該會(huì)話狀態(tài)為無(wú)狀態(tài)、請(qǐng)求、應(yīng)答、可選、并列、順序、結(jié)束、持續(xù)和釋放中狀態(tài)之一。
5.根據(jù)權(quán)利要求3所述的網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,所述進(jìn)一步對(duì)當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配進(jìn)行判斷的操作具體為根據(jù)當(dāng)前數(shù)據(jù)報(bào)文中記錄的端口信息或確認(rèn)標(biāo)志獲得當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次,并判斷所述協(xié)議層次與該特征中的協(xié)議層次信息是否匹配。
6.根據(jù)權(quán)利要求1或2所述的網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,在所述步驟10之前,包括構(gòu)造XML格式的攻擊規(guī)則和特征的步驟,具體為將攻擊規(guī)則和特征以XML格式進(jìn)行表示,并分別預(yù)先存儲(chǔ)在規(guī)則庫(kù)和特征庫(kù)中。
7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,用XML格式進(jìn)行表示的攻擊規(guī)則包括規(guī)則頭、規(guī)則體和規(guī)則策略。
8.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò)攻擊檢測(cè)方法,其特征在于,在所述步驟10之前,構(gòu)造XML格式的攻擊規(guī)則和特征之后,還包括下列步驟將XML格式的攻擊規(guī)則和特征讀入內(nèi)存。
9.一種網(wǎng)絡(luò)攻擊檢測(cè)裝置,其特征在于,包括報(bào)文接收模塊,用于接收會(huì)話流中的數(shù)據(jù)報(bào)文;特征存儲(chǔ)模塊,用于存儲(chǔ)特征,該特征包括負(fù)載部分和協(xié)議層次信息;規(guī)則存儲(chǔ)模塊,與所述特征存儲(chǔ)模塊相連,用于存儲(chǔ)攻擊規(guī)則,該攻擊規(guī)則包括引用的特征存儲(chǔ)模塊中存儲(chǔ)的一個(gè)或數(shù)個(gè)特征、所述一個(gè)或數(shù)個(gè)特征的狀態(tài)和處理策略;特征匹配模塊,與所述報(bào)文接收模塊和特征存儲(chǔ)模塊相連,用于將所述數(shù)據(jù)報(bào)文與特征存儲(chǔ)模塊中的特征進(jìn)行逐一比對(duì);會(huì)話狀態(tài)記錄模塊,用于存儲(chǔ)數(shù)據(jù)報(bào)文所屬對(duì)話所匹配的攻擊規(guī)則;會(huì)話狀態(tài)匹配模塊,與所述特征匹配模塊、會(huì)話狀態(tài)記錄模塊和規(guī)則存儲(chǔ)模塊相連,用于在規(guī)則存儲(chǔ)模塊中查詢引用所述匹配特征的攻擊規(guī)則,判斷所述攻擊規(guī)則是否已被記錄在會(huì)話狀態(tài)記錄模塊中,是則根據(jù)所述會(huì)話狀態(tài)記錄模塊中的攻擊規(guī)則中特征之間的關(guān)系,并判斷是否滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài);否則在所述會(huì)話狀態(tài)記錄模塊中添加所述攻擊規(guī)則,并為當(dāng)前數(shù)據(jù)報(bào)文匹配的特征設(shè)置會(huì)話狀態(tài);報(bào)文處理模塊,與所述會(huì)話狀態(tài)匹配模塊相連,用于在所述會(huì)話狀態(tài)匹配模塊中如果滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),則對(duì)數(shù)據(jù)報(bào)文執(zhí)行所述攻擊規(guī)則中定義的操作;如果不滿足所有特征對(duì)應(yīng)的會(huì)話狀態(tài),則使所述數(shù)據(jù)報(bào)文通過(guò)。
10.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)攻擊檢測(cè)裝置,其特征在于,所述特征匹配模塊進(jìn)一步包括第一匹配單元,與所述報(bào)文接收模塊和特征存儲(chǔ)模塊相連,用于將當(dāng)前數(shù)據(jù)報(bào)文與特征存儲(chǔ)模塊中的特征進(jìn)行逐一比對(duì),比對(duì)內(nèi)容包括所述當(dāng)前數(shù)據(jù)報(bào)文的凈荷部分和協(xié)議頭信息;第二匹配單元,與所述第一匹配單元、會(huì)話狀態(tài)匹配模塊和特征存儲(chǔ)模塊相連,用于在當(dāng)前數(shù)據(jù)報(bào)文符合所述特征時(shí),進(jìn)一步對(duì)當(dāng)前數(shù)據(jù)報(bào)文所屬會(huì)話的協(xié)議層次與該特征中的協(xié)議層次信息是否匹配進(jìn)行判斷,是則將當(dāng)前數(shù)據(jù)報(bào)文匹配的特征發(fā)送給會(huì)話狀態(tài)匹配模塊,否則使所述數(shù)據(jù)報(bào)文通過(guò)。
全文摘要
本發(fā)明涉及一種網(wǎng)絡(luò)攻擊檢測(cè)方法,包括接收會(huì)話流的數(shù)據(jù)報(bào)文,找出與當(dāng)前數(shù)據(jù)報(bào)文匹配的特征和攻擊規(guī)則,然后判斷攻擊規(guī)則中所有特征對(duì)應(yīng)的會(huì)話狀態(tài)是否都滿足,是則根據(jù)該攻擊規(guī)則定義的操作對(duì)當(dāng)前數(shù)據(jù)報(bào)文或會(huì)話流執(zhí)行所述攻擊規(guī)則中定義的操作。本發(fā)明還涉及一種網(wǎng)絡(luò)攻擊檢測(cè)裝置,包括報(bào)文接收模塊、特征存儲(chǔ)模塊、規(guī)則存儲(chǔ)模塊、特征匹配模塊、會(huì)話狀態(tài)記錄模塊、會(huì)話狀態(tài)匹配模塊和報(bào)文處理模塊。本發(fā)明提出了基于會(huì)話狀態(tài)的上下文檢測(cè),并將特征或攻擊規(guī)則與協(xié)議層次相關(guān)聯(lián),提高攻擊檢測(cè)規(guī)則的準(zhǔn)確性,使攻擊規(guī)則的誤報(bào)率降低。
文檔編號(hào)H04L12/56GK1996892SQ20061016960
公開(kāi)日2007年7月11日 申請(qǐng)日期2006年12月25日 優(yōu)先權(quán)日2006年12月25日
發(fā)明者雷公武, 胡華強(qiáng) 申請(qǐng)人:杭州華為三康技術(shù)有限公司