CN105871861B - 一种自学习协议规则的入侵检测方法 - Google Patents
一种自学习协议规则的入侵检测方法 Download PDFInfo
- Publication number
- CN105871861B CN105871861B CN201610245290.5A CN201610245290A CN105871861B CN 105871861 B CN105871861 B CN 105871861B CN 201610245290 A CN201610245290 A CN 201610245290A CN 105871861 B CN105871861 B CN 105871861B
- Authority
- CN
- China
- Prior art keywords
- length
- equal
- data packet
- byte
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明涉及一种自学习协议规则的入侵检测方法,其主要步骤包括:对正常数据流的采集,划分,聚类,协议格式的提取。生成五元组协议规则,并且进行持久化保存。检测时读取规则信息,生成五元组规则映射表,数据包依次与各规则进行比对,进行数据包深度包解析。本发明与现有的技术比,不依赖特定的协议,可以自学习出需要检测的协议格式,进行深度包解析,准确率高,技术简单,易于推广。
Description
技术领域
本发明涉及协议逆向分析与入侵检测领域,具体涉及一种自学习协议规则的入侵检测方法,属计算机互联网技术领域。
背景技术
随着信息技术的普及,网络带来的安全问题愈发突出。网络攻击的种类越来越多,带来的危害也越来越大。网络安全作为信息安全的重要组成部分,关系到国家安全与社会稳定,并且其重要性随着全球信息化步伐的加快而日趋突出。
现阶段,互联网采用因特网四层协议,即应用层、传输层、网络层、物理层。其中应用层的信息传送的协议数据单元称为段或报文。通过使用数据包嗅探技术能够获取应用层数据包的信息,通过分析数据包的情况,判断系统是否遭到入侵。
libpcap/winpcap是Windows和Linux下常用的数据包嗅探技术,通过调用libpcap/winpcap动态库的接口接收网络设备发送的报文,能够很便捷的实现应用层的数据包获取与分析。
通过检索发现专利CN104702584A提供了一种自学习通讯对象的方法,该方法通过预先设定特定的功能码,实现了通讯对象间的访问控制,但并不能解决自学习报文通讯格式的问题,无法根据网络中捕获的信息数据自动生成关键字段规则。
发明内容
为了克服现有技术的不足,本发明目的在于提供一种自学习协议规则的入侵检测方法,能够通过自学习协议中的各字段信息,判断数据包的异常,实现入侵检测。
本发明的自学习协议规则的入侵检测,方法,其步骤主要包括:
1)采集数据包信息:搜集应用层的数据包信息(利用libpcap/winpcap搜集信息),并进行五元组划分;所述五元组包括源IP、目的IP、源端口、目的端口、协议类型;
2)协议结构提取:通过以序号位为主要判断依据,进行数据包的划分,提取协议的格式信息;
3)检测模型生成:通过对划分后的数据包进行协议格式信息的归纳与保存,生成相应的包含规则信息的配置文件;
4)协议格式检测:读取所述配置文件,生成检测接口,然后读取网络中的数据包并与配置文件中的检测规则作比对,判断是否符合规则信息,进而判断该数据包是否为正常数据包。
本发明应用领域为网络入侵检测领域,在传统的网络深度包解析的基础上,提出了网络协议编码自学习方法。通过搜集系统正常工作时的数据流,获取通讯协议的特征,根据这些特征进行深度包检测,并进行了实验结果测试与分析。该方案不依赖协议本身,对协议格式的检测具有良好的效果,易于推广,通用性强,检测率高;
附图说明
图1是本发明方法的总体流程示意图。
图2是采集过程流程示意图。
图3是协议结构提取的流程示意图。
图4是检测模型的流程示意图。
图5是协议格式检测的流程示意图。
图6是实施例中仿真系统的网络拓扑情况示意图。
图7是实施例中部分报文格式示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。
本发明的自学习协议规则的入侵检测方法,其总体流程如图1所示,具体包括如下步骤:
1.数据包采集
基于libpcap/winpcap动态库的接口接收网络设备发送的报文,将网卡开启混杂模式,采集一整套正常工作流程数据。将数据包按源IP、目的IP、源端口、目的端口、协议类型(TCP、UDP或者ICMP)信息划分成“组类”,对于每个组中的数据包,按接受到的先后顺序进行排序。图2是采集过程流程示意图,具体采集方法如下:
a).获取网卡信息列表;
b).设置过滤信息,为每个网卡开启一个嗅探线程,分别进行嗅探,获取信息;
c).获取下一条数据包,获取数据包的源IP、目的IP、源端口、目的端口、协议类型(TCP、UDP或者ICMP)信息,判断之前是否存在该“组类”,如果存在则转到步骤d),如果不存在则转到步骤e);
d).存在该组类,在字典中获取该“组类”的列表,将数据包的应用层信息加入到列表的最后;然后转到步骤f);
e).不存在该“组类”,将组类的五元组转化成字符串作为字典的key,将一个空的列表作为value,存入字典中,将该数据包的应用层信息存入到新的列表中,然后转到步骤f);
f).是否结束嗅探,不结束则转到步骤c),否则结束。
2.协议结构提取
对每个“组类”的中的信息分别进行结构获取。图3是协议结构提取的流程示意图,具体提取方法如下:
a).若组类中的报文比较少,低于某一限定值/临界值(如:只有5条),则不进行分析,直接作为静态“组类”。所述静态“组类”是指将组类中的每条报文都当做一条规则,将数据的每一位都当做常量位处理,只有当数据包与该类中的某数据包完全一致时,才能当做一致。
b).若组类中的报文数量大于临界值,则将每个“组类”的数据包按数据包长度进行预划分,同长度的数据包划分为“小组”。
c).对每个“小组”进行“再划分”。定义“协议的头部”:某小组中,前N个相同的字节;假设小组中数据包的头长度为N(N大于等于1),将具有相同的头部的数据包划分为一个“小组”,对每个“小组”中的报文从左往右进行字节比对判断,若该小组中存在序号位,这停止对小组的划分,聚合为一组。若该小组中不存在序号位,则假设数据包头长度为N+1继续划分。其中,判断序号位的方法:当某一位呈现循环等差数列,则判断为序号位,例如序列:1、2、3、4、5、1、2、3、4、5......。
d).对每个“再划分”后的小组进行其他位信息的提取,小组中,某个位置的值一样,则判定为常量位,某个位置的值不一样,则判定为变量位。
3.检测模型生成
对某个小组中生成的协议格式进行规则的生成,包括:源IP,目的IP,源端口,目的端口,协议类型,数据包长度,各变量位、常量位、序号位。对于生成的规则,以字典作为规则存储结构,字典中的key为源IP、源端口、目的IP、目的端口、协议类型五元组;规则信息包含:数据包长度、常量位信息、常量位掩码信息、序号位的位置、当前序号位的报文值。据此生成检测的配置信息,以json方式保存到配置文件中。生成的规则以json数据方式做规则的持久化保存方式。
1)常量位的提取方式:利用步骤2)中对小组的划分结果,在小组中,从左往右依次判断当前位置的各位是否相同,若当前位置相同,则认定为常量位或者长度位,否则认定为变量位或者序号位。
2)长度位的提取方式:利用对常量位判断的结果,在常量位中,依次判断是否符合:1字节长度位,2字节长度位,4字节长度位。若不符合长度位信息,则判断该位置为一般常量位。下面具体说明长度位的提取方式:
a)在单字节常量位X中,1字节长度位提取方式:判断X是否等于整个报文长度,若相等记为“单字节全长度位”;判断X是否等于当前位置之后的报文长度,若相等记为“单字节后长度位”;判断X是否等于当前位置之后的报文长度加1,若相等记为“单字节包含长度位”。
b)在两相邻的常量位XY中,2字节长度位提取方式:判断X+256*Y是否等于整个报文长度,若相等记为“两字节低位全长度位”;判断X+256*Y是否等于当前位置之后的报文长度,若相等记为“两字节低位后长度位”;判断X+256*Y是否等于当前位置之后的报文长度加2,若相等记为“两字节低位包含长度位”;判断256*X+Y是否等于整个报文长度,若相等记为“两字节高位全长度位”;判断256*X+Y是否等于当前位置之后的报文长度,若相等记为“两字节高位后长度位”;判断256*X+Y是否等于当前位置之后的报文长度加2,若相等记为“两字节高位包含长度位”。
c)在四相邻的常量位WXYZ中,4字节长度位提取方式:判断W+256*X+Y+256*Z是否等于当前位置之后的报文长度,若相等记为“四字节低位长度位”;判断256*W+X+256*Y+Z是否等于当前位置之后的报文长度,若相等记为“四字节高位长度位”;并且将后面的报文部分划分为两段。
3)序号位的提取方式:利用对变量位判断的结果,在变量位中,对各位依次判断是否符合序号位信息,若不符合序号信息,则判断该位置为一般变量位;否则为序号位。具体地,在该变量位的序列中,需要同时满足以下四个条件,才表示此位为序号位:条件一,该序列是循环等差数列;条件二,循环等差数列的公差不为0;条件三,循环等差数列的公差相等;条件四,循环等差数列的周期大于等于1。
图4是检测模型生成的流程示意图,具体方法如下:
a).读取保存规则信息的配置文件,获取下一条规则信息;
b).将五元组转化为字符串,判断存储规则模型的字典中是否存在该五元组,如果存在则转到步骤c),如果不存在则转到步骤d);
c).字典中存在该五元组,获取字典中存储该五元组规则的列表,将新的规则信息添加到列表中,规则信息包括报文长度,序号位的位置,当前序号位的报文值,常量位的掩码,常量位的值,然后转到步骤e);
d).字典中不存在该五元组,将五元组的字符串作为key,一个空的列表作为value,存入字典中,在该列表中添加该规则的信息,规则包括报文长度,序号位的位置,当前序号位的报文值,常量位的掩码,常量位的值;
e).判断是否还有下一条规则信息,如果存在则转到步骤a),如果不存在则结束。
4.协议格式检测
在网络中部署检测程序,读取检测的协议规则,利用libpcap/winpcap动态库的接口接收网络设备发送的报文,与规则依次进行判断,如果符合某个规则,表示正常数据包,若全都不符合,表示异常数据包,产生报警。图5是协议格式检测的流程示意图,具体过程如下:
a).获取下一条数据包应用层信息;
b).查找字典中该数据包五元组对应的规则集,如果不存在该五元组对应的规则集,则报警,转到步骤a);如果存在对应的规则,则转到步骤c);
c).判断是否已经读到规则集中的最后一条规则,如果是最后一条规则,则报警,转到步骤a);如果不是最后一条规则,从规则集种读下一条规则,转到步骤d);
d).判断当前数据包长度是否与规则报文长度相同,不一致则转到步骤c);一致则转到步骤e);
e).判断序号位的值是否与当前序号位的值的公差为一致,如果不一致则转到步骤c);如果一致则转到步骤f);
f).报文的应用层信息与规则的掩码做与运算,如果结果与规则需要的结果不一致,转到步骤c);如果一致则表示该报文符合要求,转到步骤a)。
为验证发明的有效性,本发明针对浙江中控DCS控制系统仿真平台下的SCNET协议进行了协议格式编码特征提取,如图6是仿真系统的网络拓扑情况,该仿真系统包含一个上位机、两个DCS控制器和8个温控箱,上位机用于监视8个温控箱实时温度值并且能够执行对温控箱加热开关的打开和关闭操作。该仿真模型中,本文只考虑上位机与DCS控制器之间的协议编码学习。经过实际工程验证,只需要考虑数据采集组播、命令控制组播、DCS与上位机之间的数据包,过滤掉了其他干扰的数据包。学习到协议规则后,自动生成深度包检测规则,部分报文格式见图7。
然后为验证学习的协议效果,通过人为构造数据包进行协议格式的验证,协议中各字段的识别率见表1。同时在理解了协议规则后我们通过人为构造畸形的数据包,来进行协议攻击,判断检测效率。自学习深度包解析入侵检测结果的实验数据见表2。
表1.各字段的识别率
表2.检测结果
本发明不限于在TCP/IP网络环境中实施,也可以实施在不依赖五元组信息应用层协议中。将五元组信息变更为传输对象的特征值即可。本发明的主要精神在于应用层协议特征提取方法和利用这些特征进行应用层报文的检测方法。
综上所述,本发明公开了自学习协议规则的入侵检测方法。上面描述的应用场景及实施例,并非用于限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,可作各种更动和润饰。因此,本发明的保护范围视权利要求范围所界定。
Claims (4)
1.一种自学习协议规则的入侵检测方法,其特征在于,包括以下步骤:
1)采集应用层的数据包信息,并将数据包按源IP、目的IP、源端口、目的端口、协议类型划分组类;
2)根据序号位对每个组类中的数据包进行划分,并提取协议的格式信息;对数据包进行划分时,假设一个协议头部的长度为N,将具有相同的头部的数据包划分为一个小组,对每个小组中的报文从左往右进行字节比对判断,若该小组中存在序号位,这停止对小组的划分,生成协议规则;如果不存在序号位,则假设协议头部长度为N+1,进行迭代判断;
3)对划分后的数据包进行协议格式信息的归纳,生成规则信息并保存在配置文件中;生成的规则信息以字典作为存储结构,字典中的key为源IP、源端口、目的IP、目的端口、协议类型五元组,规则信息包含:数据包长度、常量位信息、常量位掩码信息、序号位的位置、当前序号位的报文值;
其中,常量位的提取方式为:利用步骤2)中对小组的划分结果,在小组中从左往右依次判断当前位置的各位是否相同,若当前位置相同,则认定为常量位或者长度位,否则认定为变量位或者序号位;
其中,长度位的提取方式为:利用对常量位判断的结果,在常量位中依次判断是否符合:1字节长度位,2字节长度位,4字节长度位;若不符合长度位信息,则判断该位置为一般常量位;
所述长度位的提取方式具体包括:
a)在单字节常量位X中,1字节长度位提取方式:判断X是否等于整个报文长度,若相等记为“单字节全长度位”;判断X是否等于当前位置之后的报文长度,若相等记为“单字节后长度位”;判断X是否等于当前位置之后的报文长度加1,若相等记为“单字节包含长度位”;
b)在两相邻的常量位XY中,2字节长度位提取方式:判断X+256*Y是否等于整个报文长度,若相等记为“两字节低位全长度位”;判断X+256*Y是否等于当前位置之后的报文长度,若相等记为“两字节低位后长度位”;判断X+256*Y是否等于当前位置之后的报文长度加2,若相等记为“两字节低位包含长度位”;判断256*X+Y是否等于整个报文长度,若相等记为“两字节高位全长度位”;判断256*X+Y是否等于当前位置之后的报文长度,若相等记为“两字节高位后长度位”;判断256*X+Y是否等于当前位置之后的报文长度加2,若相等记为“两字节高位包含长度位”;
c)在四相邻的常量位WXYZ中,4字节长度位提取方式:判断W+256*X+Y+256*Z是否等于当前位置之后的报文长度,若相等记为“四字节低位长度位”;判断256*W+X+256*Y+Z是否等于当前位置之后的报文长度,若相等记为“四字节高位长度位”;并且将后面的报文部分划分为两段;
4)获取待检测的网络数据包的应用层信息,并与配置文件中的规则信息作比对,以判断该数据包是否为正常数据包。
2.如权利要求1所述的方法,其特征在于,步骤3)中序号位的提取方式为:利用对变量位判断的结果,在变量位中依次判断是否符合序号位,若不符合序号信息,则判断该位置为一般变量位。
3.如权利要求2所述的方法,其特征在于,在变量位的序列中,同时满足以下四个条件则表示为序号位:条件一,该序列是循环等差数列;条件二,循环等差数列的公差不为0;条件三,循环等差数列的公差相等;条件四,循环等差数列的周期大于等于1。
4.如权利要求1所述的方法,其特征在于,步骤4)利用libpcap/winpcap动态库的接口接收网络设备发送的数据包,并与配置文件中的规则信息作比对,如果符合某个规则,表示该数据包为正常数据包;若全部规则都不符合,则表示该数据包为异常数据包,产生报警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610245290.5A CN105871861B (zh) | 2016-04-19 | 2016-04-19 | 一种自学习协议规则的入侵检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610245290.5A CN105871861B (zh) | 2016-04-19 | 2016-04-19 | 一种自学习协议规则的入侵检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105871861A CN105871861A (zh) | 2016-08-17 |
CN105871861B true CN105871861B (zh) | 2019-04-16 |
Family
ID=56633476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610245290.5A Active CN105871861B (zh) | 2016-04-19 | 2016-04-19 | 一种自学习协议规则的入侵检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105871861B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270779B (zh) * | 2017-12-29 | 2020-08-21 | 湖南优利泰克自动化系统有限公司 | 一种入侵检测系统安全规则的自动生成方法 |
CN109347853B (zh) * | 2018-11-07 | 2020-10-30 | 华东师范大学 | 基于深度包解析的面向综合电子系统的异常检测方法 |
CN109379375B (zh) * | 2018-11-28 | 2021-04-27 | 杭州迪普科技股份有限公司 | 访问控制规则的获取方法、装置及网络设备 |
CN111193747B (zh) * | 2019-12-31 | 2022-06-10 | 奇安信科技集团股份有限公司 | 报文的威胁检测方法、装置、电子设备和存储介质 |
CN111723579A (zh) * | 2020-06-17 | 2020-09-29 | 国家计算机网络与信息安全管理中心 | 一种工控协议字段与语义逆向推断方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399710A (zh) * | 2007-09-29 | 2009-04-01 | 北京启明星辰信息技术有限公司 | 一种协议格式异常检测方法及系统 |
CN103166973A (zh) * | 2013-03-27 | 2013-06-19 | 华为技术有限公司 | 协议识别的方法和装置 |
CN104702584A (zh) * | 2013-12-10 | 2015-06-10 | 中国科学院沈阳自动化研究所 | 一种基于自学习规则的Modbus通信访问控制方法 |
CN105204487A (zh) * | 2014-12-26 | 2015-12-30 | 北京邮电大学 | 基于通信模型的工业控制系统的入侵检测方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9124619B2 (en) * | 2012-12-08 | 2015-09-01 | International Business Machines Corporation | Directing audited data traffic to specific repositories |
-
2016
- 2016-04-19 CN CN201610245290.5A patent/CN105871861B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101399710A (zh) * | 2007-09-29 | 2009-04-01 | 北京启明星辰信息技术有限公司 | 一种协议格式异常检测方法及系统 |
CN103166973A (zh) * | 2013-03-27 | 2013-06-19 | 华为技术有限公司 | 协议识别的方法和装置 |
CN104702584A (zh) * | 2013-12-10 | 2015-06-10 | 中国科学院沈阳自动化研究所 | 一种基于自学习规则的Modbus通信访问控制方法 |
CN105204487A (zh) * | 2014-12-26 | 2015-12-30 | 北京邮电大学 | 基于通信模型的工业控制系统的入侵检测方法及系统 |
Non-Patent Citations (1)
Title |
---|
模式匹配和协议分析的入侵检测系统研究;李志清;《中国优秀硕士学位论文全文数据库》;20071115;第41-65页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105871861A (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105871861B (zh) | 一种自学习协议规则的入侵检测方法 | |
CN109600363B (zh) | 一种物联网终端网络画像及异常网络访问行为检测方法 | |
WO2020143227A1 (zh) | 一种基于对抗学习的工业控制系统恶意样本生成方法 | |
CN107360145B (zh) | 一种多节点蜜罐系统及其数据分析方法 | |
CN112788066B (zh) | 物联网设备的异常流量检测方法、系统及存储介质 | |
CN105577679A (zh) | 一种基于特征选择与密度峰值聚类的异常流量检测方法 | |
CN113645232B (zh) | 一种面向工业互联网的智能化流量监测方法、系统及存储介质 | |
CN111191767B (zh) | 一种基于向量化的恶意流量攻击类型的判断方法 | |
CN108282497A (zh) | 针对SDN控制平面的DDoS攻击检测方法 | |
CN107370752B (zh) | 一种高效的远控木马检测方法 | |
CN112492059A (zh) | Dga域名检测模型训练方法、dga域名检测方法、装置及存储介质 | |
CN110611640A (zh) | 一种基于随机森林的dns协议隐蔽通道检测方法 | |
CN103795723A (zh) | 一种分布式物联网安全态势感知方法 | |
CN110868404B (zh) | 一种基于tcp/ip指纹的工控设备自动识别方法 | |
CN110691073A (zh) | 一种基于随机森林的工控网络暴力破解流量检测方法 | |
CN113420802B (zh) | 基于改进谱聚类的报警数据融合方法 | |
CN113706100B (zh) | 配电网物联终端设备实时探测识别方法与系统 | |
CN117411703A (zh) | 一种面向Modbus协议的工业控制网络异常流量检测方法 | |
CN113518073B (zh) | 一种比特币挖矿僵尸网络流量的快速识别方法 | |
CN109450876A (zh) | 一种基于多维度状态转移矩阵特征的DDos识别方法和系统 | |
CN115643108B (zh) | 面向工业互联网边缘计算平台安全评估方法、系统及产品 | |
CN108366048B (zh) | 一种基于无监督学习的网络入侵检测方法 | |
Muzammil et al. | Comparative analysis of classification algorithms performance for statistical based intrusion detection system | |
CN113132414B (zh) | 一种多步攻击模式挖掘方法 | |
Dong et al. | Traffic Characteristic Map-based Intrusion Detection Model for Industrial Internet. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |