中文字幕无码日韩视频无码三区

一種自學習協議規則的入侵檢測方法

文檔序號:10515514閱讀:483來(lai)源:國知局(ju)
一種自學習協議規則的入侵檢測方法
【專利摘要】本發明涉及一種自學習協議規則的入侵檢測方法,其主要步驟包括:對正常數據流的采集,劃分,聚類,協議格式的提取。生成五元組協議規則,并且進行持久化保存。檢測時讀取規則信息,生成五元組規則映射表,數據包依次與各規則進行比對,進行數據包深度包解析。本發明與現有的技術比,不依賴特定的協議,可以自學習出需要檢測的協議格式,進行深度包解析,準確率高,技術簡單,易于推廣。
【專利說明】
-種自學習協議規則的入侵檢測方法
技術領域
[0001] 本發明設及協議逆向分析與入侵檢測領域,具體設及一種自學習協議規則的入侵 檢測方法,屬計算機互聯網技術領域。
【背景技術】
[0002] 隨著信息技術的普及,網絡帶來的安全問題愈發突出。網絡攻擊的種類越來越多, 帶來的危害也越來越大。網絡安全作為信息安全的重要組成部分,關系到國家安全與社會 穩定,并且其重要性隨著全球信息化步伐的加快而日趨突出。
[0003] 現階段,互聯網采用因特網四層協議,即應用層、傳輸層、網絡層、物理層。其中應 用層的信息傳送的協議數據單元稱為段或報文。通過使用數據包嗅探技術能夠獲取應用層 數據包的信息,通過分析數據包的情況,判斷系統是否遭到入侵。
[0004] libpcap/winpcap是Windows和Linux下常用的數據包嗅探技術,通過調用 libpcap/winpcap動態庫的接口接收網絡設備發送的報文,能夠很便捷的實現應用層的數 據包獲取與分析。
[0005] 通過檢索發現專利CN104702584A提供了一種自學習通訊對象的方法,該方法通過 預先設定特定的功能碼,實現了通訊對象間的訪問控制,但并不能解決自學習報文通訊格 式的問題,無法根據網絡中捕獲的信息數據自動生成關鍵字段規則。

【發明內容】

[0006] 為了克服現有技術的不足,本發明目的在于提供一種自學習協議規則的入侵檢測 方法,能夠通過自學習協議中的各字段信息,判斷數據包的異常,實現入侵檢測。
[0007] 本發明的自學習協議規則的入侵檢測,方法,其步驟主要包括:
[000引1)采集數據包信息:捜集應用層的數據包信息(利用libpcap/winpcap捜集信息), 并進行五元組劃分;所述五元組包括源IP、目的IP、源端口、目的端口、協議類型;
[0009] 2)協議結構提取:通過W序號位為主要判斷依據,進行數據包的劃分,提取協議的 格式信息;
[0010] 3)檢測模型生成:通過對劃分后的數據包進行協議格式信息的歸納與保存,生成 相應的包含規則信息的配置文件;
[0011] 4)協議格式檢測:讀取所述配置文件,生成檢測接口,然后讀取網絡中的數據包并 與配置文件中的檢測規則作比對,判斷是否符合規則信息,進而判斷該數據包是否為正常 數據包。
[0012] 本發明應用領域為網絡入侵檢測領域,在傳統的網絡深度包解析的基礎上,提出 了網絡協議編碼自學習方法。通過捜集系統正常工作時的數據流,獲取通訊協議的特征,根 據運些特征進行深度包檢測,并進行了實驗結果測試與分析。該方案不依賴協議本身,對協 議格式的檢測具有良好的效果,易于推廣,通用性強,檢測率高;
【附圖說明】
[0013] 圖1是本發明方法的總體流程示意圖。
[0014] 圖2是采集過程流程示意圖。
[0015] 圖3是協議結構提取的流程示意圖。
[0016] 圖4是檢測模型的流程示意圖。
[0017] 圖5是協議格式檢測的流程示意圖。
[0018] 圖6是實施例中仿真系統的網絡拓撲情況示意圖。
[0019] 圖7是實施例中部分報文格式示意圖。
【具體實施方式】
[0020] 為使本發明的上述目的、特征和優點能夠更加明顯易懂,下面通過具體實施例和 附圖,對本發明做進一步說明。
[0021] 本發明的自學習協議規則的入侵檢測方法,其總體流程如圖1所示,具體包括如下 步驟:
[00剖 1.數據包采集
[0023] 基于libpcap/wi叩cap動態庫的接口接收網絡設備發送的報文,將網卡開啟混雜 模式,采集一整套正常工作流程數據。將數據包按源IP、目的IP、源端口、目的端口、協議類 型(TCP、UDP或者ICMP)信息劃分成"組類",對于每個組中的數據包,按接受到的先后順序進 行排序。圖2是采集過程流程示意圖,具體采集方法如下:
[0024] a).獲取網卡信息列表;
[0025] b).設置過濾信息,為每個網卡開啟一個嗅探線程,分別進行嗅探,獲取信息;
[00%] C).獲取下一條數據包,獲取數據包的源IP、目的IP、源端口、目的端口、協議類型 (TCP、UDP或者ICMP)信息,判斷之前是否存在該"組類",如果存在則轉到步驟d),如果不存 在則轉到步驟e);
[0027] d).存在該組類,在字典中獲取該"組類"的列表,將數據包的應用層信息加入到列 表的最后;然后轉到步驟f);
[0028] e).不存在該"組類",將組類的五元組轉化成字符串作為字典的key,將一個空的 列表作為value,存入字典中,將該數據包的應用層信息存入到新的列表中,然后轉到步驟 f);
[0029] f).是否結束嗅探,不結束則轉到步驟C),否則結束。
[0030] 2.協議結構提取
[0031] 對每個"組類"的中的信息分別進行結構獲取。圖3是協議結構提取的流程示意圖, 具體提取方法如下:
[0032] a).若組類中的報文比較少,低于某一限定值/臨界值(如:只有5條),則不進行分 析,直接作為靜態"組類"。所述靜態"組類"是指將組類中的每條報文都當做一條規則,將數 據的每一位都當做常量位處理,只有當數據包與該類中的某數據包完全一致時,才能當做 一致。
[0033] b).若組類中的報文數量大于臨界值,則將每個"組類"的數據包按數據包長度進 行預劃分,同長度的數據包劃分為"小組"。
[0034] C).對每個"小組"進行"再劃分"。定義"協議的頭部":某小組中,前N個相同的字 節;假設小組中數據包的頭長度為N(N大于等于1),將具有相同的頭部的數據包劃分為一個 "小組",對每個"小組"中的報文從左往右進行字節比對判斷,若該小組中存在序號位,運停 止對小組的劃分,聚合為一組。若該小組中不存在序號位,則假設數據包頭長度為N+1繼續 劃分。其中,判斷序號位的方法:當某一位呈現循環等差數列,則判斷為序號位,例如序列: 1、2、3、4、5、1、2、3、4、5.......
[0035] d).對每個"再劃分"后的小組進行其他位信息的提取,小組中,某個位置的值一 樣,則判定為常量位,某個位置的值不一樣,則判定為變量位。
[0036] 3.檢測模型生成
[0037] 對某個小組中生成的協議格式進行規則的生成,包括:源IP,目的IP,源端口,目的 端口,協議類型,數據包長度,各變量位、常量位、序號位。對于生成的規則,W字典作為規則 存儲結構,字典中的key為源IP、源端口、目的IP、目的端口、協議類型五元組;規則信息包 含:數據包長度、常量位信息、常量位掩碼信息、序號位的位置、當前序號位的報文值。據此 生成檢測的配置信息,Wjson方式保存到配置文件中。生成的規則Wjson數據方式做規則 的持久化保存方式。
[0038] 1)常量位的提取方式:利用步驟2)中對小組的劃分結果,在小組中,從左往右依次 判斷當前位置的各位是否相同,若當前位置相同,則認定為常量位或者長度位,否則認定為 變量位或者序號位。
[0039] 2)長度位的提取方式:利用對常量位判斷的結果,在常量位中,依次判斷是否符 合:1字節長度位,2字節長度位,4字節長度位。若不符合長度位信息,則判斷該位置為一般 常量位。下面具體說明長度位的提取方式:
[0040] a)在單字節常量位X中,1字節長度位提取方式:判斷X是否等于整個報文長度,若 相等記為"單字節全長度位";判斷X是否等于當前位置之后的報文長度,若相等記為"單字 節后長度位";判斷X是否等于當前位置之后的報文長度加1,若相等記為"單字節包含長度 位"。
[0041] b)在兩相鄰的常量位XY中,2字節長度位提取方式:判斷X+256巧是否等于整個報 文長度,若相等記為"兩字節低位全長度位";判斷X+256巧是否等于當前位置之后的報文長 度,若相等記為"兩字節低位后長度位";判斷X+256巧是否等于當前位置之后的報文長度加 2,若相等記為"兩字節低位包含長度位";判斷256林巧是否等于整個報文長度,若相等記為 "兩字節高位全長度位";判斷256林巧是否等于當前位置之后的報文長度,若相等記為"兩 字節高位后長度位";判斷256林巧是否等于當前位置之后的報文長度加2,若相等記為"兩 字節高位包含長度位"。
[0042] C)在四相鄰的常量位WXYZ中,4字節長度位提取方式:判斷W+256林+Υ+256*Ζ是否 等于當前位置之后的報文長度,若相等記為"四字節低位長度位";判斷256*W+X+256巧+Ζ是 否等于當前位置之后的報文長度,若相等記為"四字節高位長度位";并且將后面的報文部 分劃分為兩段。
[0043] 3)序號位的提取方式:利用對變量位判斷的結果,在變量位中,對各位依次判斷是 否符合序號位信息,若不符合序號信息,則判斷該位置為一般變量位;否則為序號位。具體 地,在該變量位的序列中,需要同時滿足w下四個條件,才表示此位為序號位:條件一,該序 列是循環等差數列;條件二,循環等差數列的公差不為0;條件Ξ,循環等差數列的公差相 等;條件四,循環等差數列的周期大于等于1。
[0044] 圖4是檢測模型生成的流程示意圖,具體方法如下:
[0045] a).讀取保存規則信息的配置文件,獲取下一條規則信息;
[0046] b).將五元組轉化為字符串,判斷存儲規則模型的字典中是否存在該五元組,如果 存在則轉到步驟C),如果不存在則轉到步驟d);
[0047] C).字典中存在該五元組,獲取字典中存儲該五元組規則的列表,將新的規則信息 添加到列表中,規則信息包括報文長度,序號位的位置,當前序號位的報文值,常量位的掩 碼,常量位的值,然后轉到步驟e);
[004引d).字典中不存在該五元組,將五元組的字符串作為key,-個空的列表作為 value,存入字典中,在該列表中添加該規則的信息,規則包括報文長度,序號位的位置,當 前序號位的報文值,常量位的掩碼,常量位的值;
[0049] e).判斷是否還有下一條規則信息,如果存在則轉到步驟a),如果不存在則結束。
[(K)加]4.協議格式檢測
[0051] 在網絡中部署檢測程序,讀取檢測的協議規則,利用libpcap/winpcap動態庫的接 口接收網絡設備發送的報文,與規則依次進行判斷,如果符合某個規則,表示正常數據包, 若全都不符合,表示異常數據包,產生報警。圖5是協議格式檢測的流程示意圖,具體過程如 下:
[0052] a).獲取下一條數據包應用層信息;
[0053] b).查找字典中該數據包五元組對應的規則集,如果不存在該五元組對應的規則 集,則報警,轉到步驟a);如果存在對應的規則,則轉到步驟C);
[0054] C).判斷是否已經讀到規則集中的最后一條規則,如果是最后一條規則,則報警, 轉到步驟a);如果不是最后一條規則,從規則集種讀下一條規則,轉到步驟d);
[0055] d).判斷當前數據包長度是否與規則報文長度相同,不一致則轉到步驟C);一致則 轉到步驟e);
[0056] e).判斷序號位的值是否與當前序號位的值的公差為一致,如果不一致則轉到步 驟C);如果一致則轉到步驟f);
[0057] f).報文的應用層信息與規則的掩碼做與運算,如果結果與規則需要的結果不一 致,轉到步驟C);如果一致則表示該報文符合要求,轉到步驟a)。
[0058] 為驗證發明的有效性,本發明針對浙江中控DCS控制系統仿真平臺下的SCNET協議 進行了協議格式編碼特征提取,如圖6是仿真系統的網絡拓撲情況,該仿真系統包含一個上 位機、兩個DCS控制器和8個溫控箱,上位機用于監視8個溫控箱實時溫度值并且能夠執行對 溫控箱加熱開關的打開和關閉操作。該仿真模型中,本文只考慮上位機與DCS控制器之間的 協議編碼學習。經過實際工程驗證,只需要考慮數據采集組播、命令控制組播、DCS與上位機 之間的數據包,過濾掉了其他干擾的數據包。學習到協議規則后,自動生成深度包檢測規 貝1J,部分報文格式見圖7。
[0059] 然后為驗證學習的協議效果,通過人為構造數據包進行協議格式的驗證,協議中 各字段的識別率見表1。同時在理解了協議規則后我們通過人為構造崎形的數據包,來進行 協議攻擊,判斷檢測效率。自學習深度包解析入侵檢測結果的實驗數據見表2。
[0060] 表1.各字段的識別率
[0061]
[0065] 本發明不限于在TCP/IP網絡環境中實施,也可W實施在不依賴五元組信息應用層 協議中。將五元組信息變更為傳輸對象的特征值即可。本發明的主要精神在于應用層協議 特征提取方法和利用運些特征進行應用層報文的檢測方法。
[0066] 綜上所述,本發明公開了自學習協議規則的入侵檢測方法。上面描述的應用場景 及實施例,并非用于限定本發明,任何本領域技術人員,在不脫離本發明的精神和范圍內, 可作各種更動和潤飾。因此,本發明的保護范圍視權利要求范圍所界定。
【主權項】
1. 一種自學習協議規則的入侵檢測方法,其特征在于,包括以下步驟: 1) 采集應用層的數據包信息,并將數據包按源IP、目的IP、源端口、目的端口、協議類型 劃分組類; 2) 根據序號位對每個組類中的數據包進行劃分,并提取協議的格式信息; 3) 對劃分后的數據包進行協議格式信息的歸納,生成規則信息并保存在配置文件中; 4) 獲取待檢測的網絡數據包的應用層信息,并與配置文件中的規則信息作比對,以判 斷該數據包是否為正常數據包。2. 如權利要求1所述的方法,其特征在于,步驟2)對數據包進行劃分時,假設一個協議 頭部的長度為N,將具有相同的頭部的數據包劃分為一個小組,對每個小組中的報文從左往 右進行字節比對判斷,若該小組中存在序號位,這停止對小組的劃分,生成協議規則;如果 不存在序號位,則假設協議頭部長度為N+1,進行迭代判斷。3. 如權利要求2所述的方法,其特征在于,步驟3)生成的規則信息以字典作為存儲結 構,字典中的key為源IP、源端口、目的IP、目的端口、協議類型五元組,規則信息包含:數據 包長度、常量位信息、常量位掩碼信息、序號位的位置、當前序號位的報文值。4. 如權利要求3所述的方法,其特征在于,步驟3)中常量位的提取方式為:利用步驟2) 中對小組的劃分結果,在小組中從左往右依次判斷當前位置的各位是否相同,若當前位置 相同,則認定為常量位或者長度位,否則認定為變量位或者序號位。5. 如權利要求4所述方法,其特征在于,步驟3)中長度位的提取方式為:利用對常量位 判斷的結果,在常量位中依次判斷是否符合:1字節長度位,2字節長度位,4字節長度位;若 不符合長度位信息,則判斷該位置為一般常量位。6. 如權利要求5所述的方法,其特征在于,所述長度位的提取方式具體包括: a) 在單字節常量位X中,1字節長度位提取方式:判斷X是否等于整個報文長度,若相等 記為"單字節全長度位";判斷X是否等于當前位置之后的報文長度,若相等記為"單字節后 長度位";判斷X是否等于當前位置之后的報文長度加1,若相等記為"單字節包含長度位"; b) 在兩相鄰的常量位XY中,2字節長度位提取方式:判斷X+256*Y是否等于整個報文長 度,若相等記為"兩字節低位全長度位";判斷Χ+256*Υ是否等于當前位置之后的報文長度, 若相等記為"兩字節低位后長度位";判斷Χ+256*Υ是否等于當前位置之后的報文長度加2, 若相等記為"兩字節低位包含長度位";判斷256*Χ+Υ是否等于整個報文長度,若相等記為 "兩字節高位全長度位";判斷256*Χ+Υ是否等于當前位置之后的報文長度,若相等記為"兩 字節高位后長度位";判斷256*Χ+Υ是否等于當前位置之后的報文長度加2,若相等記為"兩 字節高位包含長度位"; c) 在四相鄰的常量位WXYZ中,4字節長度位提取方式:判斷W+256*X+Y+256*Z是否等于 當前位置之后的報文長度,若相等記為"四字節低位長度位";判斷256*W+X+256*Y+Z是否等 于當前位置之后的報文長度,若相等記為"四字節高位長度位";并且將后面的報文部分劃 分為兩段。7. 如權利要求5所述的方法,其特征在于,步驟3)中序號位的提取方式為:利用對變量 位判斷的結果,在變量位中依次判斷是否符合序號位,若不符合序號信息,則判斷該位置為 一般變量位。8. 如權利要求7所述的方法,其特征在于,在變量位的序列中,同時滿足以下四個條件 則表示為序號位:條件一,該序列是循環等差數列;條件二,循環等差數列的公差不為ο;條 件三,循環等差數列的公差相等;條件四,循環等差數列的周期大于等于1。9.如權利要求1所述的方法,其特征在于,步驟4)利用libpcap/winpcap動態庫的接口 接收網絡設備發送的數據包,并與配置文件中的規則信息作比對,如果符合某個規則,表示 該數據包為正常數據包;若全部規則都不符合,則表示該數據包為異常數據包,產生報警。
【文檔編號】H04L29/06GK105871861SQ201610245290
【公開日】2016年8月17日
【申請日】2016年4月19日
【發明人】石志強, 王中杰, 楊安, 孫利民, 朱紅松
【申請人】中國科學院信息工程研究所
網友(you)詢問留言(yan) 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1