CN101286979A - 一种网络攻击检测方法 - Google Patents
一种网络攻击检测方法 Download PDFInfo
- Publication number
- CN101286979A CN101286979A CNA200810044620XA CN200810044620A CN101286979A CN 101286979 A CN101286979 A CN 101286979A CN A200810044620X A CNA200810044620X A CN A200810044620XA CN 200810044620 A CN200810044620 A CN 200810044620A CN 101286979 A CN101286979 A CN 101286979A
- Authority
- CN
- China
- Prior art keywords
- network
- instruction
- dis
- assembling
- sequence
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种网络攻击检测方法,属于计算机网络安全领域。首先捕捉网络数据包,提取出网络数据包中的payload序列,然后计算每个网络数据包的payload序列的任意位置开始可反汇编的合法指令的条数中的最大值MEL,最后判决:若某个网络数据包的MEL超过阈值,则认为该网络数据包是网络攻击数据包;若某个网络数据包的MEL不超过阈值,则认为该网络数据包是是正常通信数据包。本发明能够检测未知网络攻击,具有检测效率高、误报率低和能检测经过高级变形技术变形后的网络攻击的特点。本发明部署于中小型网络的进出口,如果要将本发明应用于大型高速网络的进出口,可以采用将本发明以硬件程序的方式固化在硬件上或部署多台计算机进行并行处理。
Description
技术领域
本发明属于计算机网络安全领域,具体涉及一种用于检测计算机网络攻击的方法。
背景技术
缩略语和关键术语定义:
Network Intrusion Detection System(NIDS):网络入侵检测***。
Abstract Executable:一个字节串被称为是Abstract Executable,如果它能被反汇编解释为一串连续的合法指令。
Instruction Chains(IC):一个不包含跳转指令的合法指令序列,通常以跳转指令或非Abstract Executable字节结尾。
Executalbe Length(EL):一个字节序列从某个位置开始可反汇编的合法指令的条数。
Maximun Executable Length(MEL):一个字节序列的MEL,被定义为从字节序列的任意位置开始可反汇编的合法指令的条数中的最大值。
Shellcode:可以将shellcode不严格的定义为攻击代码,其作用主要有提升权限,下载文件,执行程序等。
Sled:通俗的说,sled就是位于攻击数据包中,在shellcode之前运行,并且从sled的任何位置开始运行都最终都可以正确运行到shellcode。
Payload:数据包中除去头剩下的部分。
随着计算机网络的迅速普及和各种网络新业务的不断兴起,各种网络攻击开始渗透到计算机应用的许多领域,并且变得越来越严峻。网络攻击包括了DDOS攻击,蠕虫攻击和黑客入侵等,采用的方法和技术多是软件漏洞的利用,网络攻击通过漏洞进入目标计算机中,然后控制目标计算机,对目标计算机造成破坏。对于普通的PC用户而言,感受最为直接的应该是蠕虫攻击了,蠕虫是一种不需要人为参与就可以自动完成传播,感染和破坏的二进制程序。2001年爆发的Nimda网络蠕虫,其所造成的损失评估数据从5亿美元攀升到26亿美元,后来继续攀升,到现在已经无法估计。目前蠕虫爆发频率越来越快,近两年出现了大量的新蠕虫和蠕虫变种。因此,迫切需要一种高效,精确的网络攻击检测方法发现及时发现网络攻击,遏制网络攻击的蔓延。
许多的网络服务都以C/S结构运行,这些网络服务接受用户的输入,并经过处理后转化为输出。C/S结构的服务端通常会分配内存空间用于存储客户端的输入数据,通常服务程序会对输入数据进行解析,但不会对输入数据的长度等做出限制,因此一些不安全的字符串函数将可能导致缓冲区溢出,网络攻击方会利用缓冲区溢出漏洞执行shellcode。图1列出了部分C语言的非安全函数。图2给出了标准的栈的结构,攻击者可以通过巧妙的构造攻击数据包,覆盖函数的返回地址,并将返回地址指向攻击者的shellcode,从而可以达到攻击和破坏服务器的目的。
网络攻击是否成功的关键在于攻击者构造的攻击数据包,可不可以精确地把函数返回地址指向shellcode,如果不能,那么攻击将会失败。往往攻击者是不能精确定位shellcode的,这和操作***版本等有关系,但可以粗略确定shellcode在某一个范围内,因此,攻击者会在数据包中加入sled,一个普通的攻击数据包如图3。Intel体系架构下有许多单字节指令,这些单字节指令并不常用,而且执行后对整个程序不造成影响,攻击者一般选用这些指令作为sled,因为这养构成的sled自然满足从任何位置执行都能正确执行到shellcode。图4是一些单字节指令的例子。单字节指令并不是必须的,攻击者通过精巧的涉及使得利用比较常用的多字节指令同样可以构造sled,并且可以保证同样满足从任何位置开始执行都能正确执行到shellcode。图5就是一个多字节指令构造sled的例子。
从总体上讲,攻击者的攻击手段越来越丰富,越来越复杂,现有的检测方法都只能针对某一类或者采用某种攻击方式的网络攻击进行检测,尽管现在的检测***很多,但都存在明显缺陷,总体效果并不好。
目前市场上应用最广的入侵检测***是类似于snort的误用检测***,其核心技术是特征码技术。特征码是网络攻击数据包中的一个或几个字节序列,特征码是在网络攻击被检测到并捕捉样本后,由安全专家进行提取的。检测过程就是使用特征码和网络数据包进行模式匹配,如果匹配则检测到网络攻击。基于特征码的误用网络入侵检测***依赖于特征码的提取以及特征码和网络数据包的模式匹配,因此只能检测已知的网络攻击,对于未知或者变形的网络攻击就无能为力;另外,误用检测技术有明显的滞后性,这仍然是因为误用检测依赖于特征码,而特征码的提取需要相当长的时间,通常需要几小时甚至几天,而网络攻击样本采集所需要的时间就更难估计。
作为误用检测技术的补充,异常检测技术是目前学术上研究的热点。异常检测技术的一个重要的研究方向是行为检测。在进行检测之前,先将正常情况下的网络流量行为进行学习,将搜集到的数据进行数据挖掘形成规则,检测的时候监控网络行为,如果网络行为违反了规则,则认为是网络攻击。
基于行为检测的异常检测技术存在以下缺点:
1、误报率高
基于行为的网络攻击检测都是基于一定的假设前提下的,比如:随机扫描,快速扫描,包内容相似等。但在实际情况中,这些假设条件不一定都能满足,并且如果攻击者知道了检测方法,很容易就可以绕过检测。
目前针对网络攻击数据包中的可执行代码,学术界做了大量的研究,目前在snort中有初步的应用。Snort可以检测数据包中连续的NOP指令,如果检测到连续NOP指令则认为这是一个网络攻击包。Fnord在Snort基础上做了改进,它有一个单字节指令表,类似于图4,如果检测到数据包中出现连续的字节在单字节指令表中都出现了,则认为是网络攻击。
2、难以应对高级的变形攻击
目前高级的变形技术可以使sled由多字节指令构成,甚至可以出现跳转指令,snort和Fnord不能检测这种类似的经过高级变形技术变形过的网络攻击。
发明内容
本发明提供一种网络攻击检测方法,该方法具有检测效率高、误报率低、能检测未知网络攻击和能检测经过高级变形技术变形后的网络攻击。
本发明详细技术方案如下:
一种网络攻击检测方法,如图8所示,包括以下步骤:
步骤1.捕捉网络数据包。
步骤2.根据步骤1所捕捉的网络数据包所依据的协议的标准格式,对步骤1所捕捉的网络数据包进行解析,提取出网络数据包中的payload序列。
步骤3.计算步骤2提取的每个网络数据包的payload序列的任意位置开始可反汇编的合法指令的条数中的最大值MEL。
步骤4.若某个网络数据包的payload序列的任意位置开始可反汇编的合法指令的条数中的最大值MEL超过阈值,则认为该网络数据包是网络攻击数据包;若某个网络数据包的payload序列的任意位置开始可反汇编的合法指令的条数中的最大值MEL不超过阈值,则认为该网络数据包是是正常通信数据包。
本发明的核心思想是对网络数据包中的payload序列进行分析和处理,通过计算网络数据包的可执行(Abstract Executable)指令的数量(MEL),来检测Sled,从而检测网络攻击。如图6,正常的HTTP请求包的MEL都不会大于10;而如图7,三个不同的网络攻击,最小的MEL都超过了250。之所以会产生这样一种现象,是因为在正常的网络请求中绝大部分都是数据,而只有极少数的是指令而且是协议已经定义好的指令,因为正常的网络行为都是严格按照协议进行交互的,所以只需要少量标准的指令就可以完成功能。如果是网络攻击数据包,为了实现更好的跨平台等特性,攻击者会尽量少的利用到被攻击方的操作***、函数、数据结构等,攻击数据包中必须包含实现攻击的所有指令,因此攻击数据包中包含的有效指令数量将会远大于正常数据包。
本发明提供的方法及相应的软件***适合部署于中小型网络的进出口。如果要将本发明应用于大型高速网络的进出口,可以采用以下几种方法以提高检测速度:1、将本发明以硬件程序的方式固化在硬件上;2、部署多台计算机进行并行处理。
本发明的有益效果是:
1、能检测未知网络攻击
由于本发明是不依赖于特征码的,因此能够对未知的网络攻击进行检测。
2、具有更高的检测效率
本发明针对的是网络攻击数据包本身的一种检测方法,能对单个数据包进行检测,所以能够在网络攻击一开始就检测到,而不需要收集一定数量的数据包之后再进行检测,大大提高了检测的效率。
3、误报率低
由于本发明是对数据包payload的NOP Sled部分进行检测,这个部分在网络攻击数据包中几乎是必然出现的,而在正常的网络数据包中是不会出现的。因此,本发明提出的检测方法不会把正常数据包误认为是攻击数据包,由此带来的效果就是误报率很低。
4、能检测经过高级变形技术变形后的网络攻击
就目前变形技术的发展趋势而言,无论变形技术如何改进,都不能改变NOP Sled的本质:一个能被正确执行的长指令序列。因此,本发明通过计算有效指令长度的方法来检测NOP Sled能够应对经过高级变形技术变形后的网络攻击。
附图说明
图1,非安全C函数示意图。
图2,栈结构示意图。
图3,攻击数据包示意图。
图4,单字节sled指令示意图。
图5,多字节sled示意图。
图6,正常HTTP请求包的MEL示意图。
图7,网络攻击数据包的MEL示意图。
图8,本发明所述的网络攻击检测方法的流程示意图。
具体实施方式
本发明技术方案中,可根据以下两个原则对步骤1所捕捉的网络数据包进行筛选,以去掉不需要进行分析的网络数据包:1、由于目前的网络攻击局限于某几种协议(如:Tcp,Udp),所以可以去掉那些不会被用来做网络攻击的协议的网络数据包;2、由于本发明分析的是网络数据包的payload,所以可以去掉那些只有头部信息而没有payload的网络数据包(如:TcpSYN)。
本发明技术方案中,所述步骤3具体包含以下步骤:
步骤31.从网络数据包的payload序列的任意字节位置开始进行反汇编,直到反汇编操作无法得到一个有效指令为止,得到一个可反汇编的有效的指令序列。
步骤32.计算步骤31得到的可反汇编的有效的指令序列所含指令条数EL。
步骤33.计算步骤32中得到的所有可反汇编的有效的指令序列所含指令条数EL中的最大值,作为这个网络数据包的payload序列的可反汇编的合法指令的条数中的最大值MEL。
其中步骤32具体计算步骤31得到的可反汇编的有效的指令序列所含指令条数EL时,具体包含以下步骤:
步骤321.首先计算步骤31得到的可反汇编的有效的指令序列本身的指令数量,记为L;
步骤322.如果步骤31得到的可反汇编的有效的指令序列的最后一条指令是跳转指令,并且跳转的目标地址不在指令序列中,那么网络数据包的payload序列的任意字节位置开始可反汇编的有效指令序列所含指令条数EL=L+1;
步骤323.如果步骤31得到的可反汇编的有效的指令序列的最后一条指令是跳转指令,并且跳转指令的目标地址在指令序列中,得到以目标地址为开头的指令序列,计算从目标地址为开头的指令序列的指令数量记为L′,那么网络数据包的payload序列的任意字节位置开始可反汇编的有效指令序列所含指令条数EL=L+L′。
本发明技术方案中,步骤4中所述的阈值可设置为20到250之间的自然数。如果阈值下限偏小,那么误报率将会增加,如果阈值上限偏大,那么漏报率将会增加。具体阈值的设定应该充分权衡误报率和漏报率进行选择。
Claims (5)
1、一种网络攻击检测方法,其特征在于,包括以下步骤:
步骤1.捕捉网络数据包;
步骤2.根据步骤1所捕捉的网络数据包所依据的协议的标准格式,对步骤1所捕捉的网络数据包进行解析,提取出网络数据包中的payload序列;
步骤3.计算步骤2提取的每个网络数据包的payload序列的任意位置开始可反汇编的合法指令的条数中的最大值MEL;
步骤4.若某个网络数据包的payload序列的任意位置开始可反汇编的合法指令的条数中的最大值MEL超过阈值,则认为该网络数据包是网络攻击数据包;若某个网络数据包的payload序列的任意位置开始可反汇编的合法指令的条数中的最大值MEL不超过阈值,则认为该网络数据包是是正常通信数据包。
2、根据权利要求1所述的网络攻击检测方法,其特征在于,对步骤1所捕捉的网络数据包进行筛选,以去掉不需要进行分析的网络数据包:去掉那些不会被用来做网络攻击的协议的网络数据包;去掉那些只有头部信息而没有payload的网络数据包。
3、根据权利要求1所述的网络攻击检测方法,其特征在于,所述步骤3具体包含以下步骤:
步骤31.从网络数据包的payload序列的任意字节位置开始进行反汇编,直到反汇编操作无法得到一个有效指令为止,得到一个可反汇编的有效的指令序列;
步骤32.计算步骤31得到的可反汇编的有效的指令序列所含指令条数EL;
步骤33.计算步骤32中得到的所有可反汇编的有效的指令序列所含指令条数EL中的最大值,作为这个网络数据包的payload序列的可反汇编的合法指令的条数中的最大值MEL。
4、根据权利要求3所述的网络攻击检测方法,其特征在于,步骤32具体计算步骤31得到的可反汇编的有效的指令序列所含指令条数EL时,具体包含以下步骤:
步骤321.首先计算步骤31得到的可反汇编的有效的指令序列本身的指令数量,记为L;
步骤322.如果步骤31得到的可反汇编的有效的指令序列的最后一条指令是跳转指令,并且跳转的目标地址不在指令序列中,那么网络数据包的payload序列的任意字节位置开始可反汇编的有效指令序列所含指令条数EL=L+1;
步骤323.如果步骤31得到的可反汇编的有效的指令序列的最后一条指令是跳转指令,并且跳转指令的目标地址在指令序列中,得到以目标地址为开头的指令序列,计算从目标地址为开头的指令序列的指令数量记为L′,那么网络数据包的payload序列的任意字节位置开始可反汇编的有效指令序列所含指令条数EL=L+L′。
5、根据权利要求1所述的网络攻击检测方法,其特征在于,步骤4中所述的阈值设置为20到250之间的自然数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810044620XA CN101286979B (zh) | 2008-06-03 | 2008-06-03 | 一种网络攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810044620XA CN101286979B (zh) | 2008-06-03 | 2008-06-03 | 一种网络攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101286979A true CN101286979A (zh) | 2008-10-15 |
CN101286979B CN101286979B (zh) | 2011-02-09 |
Family
ID=40058949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810044620XA Expired - Fee Related CN101286979B (zh) | 2008-06-03 | 2008-06-03 | 一种网络攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101286979B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848092A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 恶意代码检测方法和装置 |
CN102111308A (zh) * | 2010-12-22 | 2011-06-29 | 成都天融信网络安全技术有限公司 | 一种多态蠕虫自动检测方法 |
CN102622543A (zh) * | 2012-02-06 | 2012-08-01 | 北京百度网讯科技有限公司 | 一种动态检测恶意网页脚本的方法和装置 |
CN110535878A (zh) * | 2019-09-23 | 2019-12-03 | 电子科技大学 | 一种基于事件序列的威胁检测方法 |
CN112765603A (zh) * | 2021-01-28 | 2021-05-07 | 电子科技大学 | 一种结合***日志与起源图的异常溯源方法 |
CN113098832A (zh) * | 2019-12-23 | 2021-07-09 | 四川大学 | 一种基于机器学习的远程缓冲区溢出攻击检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6789202B1 (en) * | 1999-10-15 | 2004-09-07 | Networks Associates Technology, Inc. | Method and apparatus for providing a policy-driven intrusion detection system |
CN100369416C (zh) * | 2005-05-09 | 2008-02-13 | 杭州华三通信技术有限公司 | 流量攻击网络设备的报文特征的检测方法 |
CN101159732A (zh) * | 2007-08-14 | 2008-04-09 | 电子科技大学 | 基于数据流分析的恶意攻击检测方法 |
-
2008
- 2008-06-03 CN CN200810044620XA patent/CN101286979B/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848092A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 恶意代码检测方法和装置 |
CN102111308A (zh) * | 2010-12-22 | 2011-06-29 | 成都天融信网络安全技术有限公司 | 一种多态蠕虫自动检测方法 |
CN102622543A (zh) * | 2012-02-06 | 2012-08-01 | 北京百度网讯科技有限公司 | 一种动态检测恶意网页脚本的方法和装置 |
CN102622543B (zh) * | 2012-02-06 | 2016-08-03 | 北京百度网讯科技有限公司 | 一种动态检测恶意网页脚本的方法和装置 |
CN110535878A (zh) * | 2019-09-23 | 2019-12-03 | 电子科技大学 | 一种基于事件序列的威胁检测方法 |
CN110535878B (zh) * | 2019-09-23 | 2021-03-30 | 电子科技大学 | 一种基于事件序列的威胁检测方法 |
CN113098832A (zh) * | 2019-12-23 | 2021-07-09 | 四川大学 | 一种基于机器学习的远程缓冲区溢出攻击检测方法 |
CN113098832B (zh) * | 2019-12-23 | 2022-09-27 | 四川大学 | 一种基于机器学习的远程缓冲区溢出攻击检测方法 |
CN112765603A (zh) * | 2021-01-28 | 2021-05-07 | 电子科技大学 | 一种结合***日志与起源图的异常溯源方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101286979B (zh) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6472771B2 (ja) | 不正なオンライン取引を検出するためのシステムおよび方法 | |
CN101286979B (zh) | 一种网络攻击检测方法 | |
CN102799814B (zh) | 一种钓鱼网站查找***及方法 | |
CN103051627B (zh) | 一种反弹式木马的检测方法 | |
CN111107096A (zh) | 一种Web站点安全防护方法及装置 | |
CN107463844B (zh) | Web木马检测方法及*** | |
CN104778413A (zh) | 一种基于模拟攻击的软件漏洞检测方法 | |
CN109257393A (zh) | 基于机器学习的xss攻击防御方法及装置 | |
KR102120200B1 (ko) | 악성 코드 수집 방법 및 시스템 | |
EP3885946B1 (en) | Method of monitoring and protecting access to an online service | |
CN111049828B (zh) | 网络攻击检测及响应方法及*** | |
CN114785563A (zh) | 一种软投票策略的加密恶意流量检测方法 | |
CN106485148A (zh) | 基于js‑bom结合的恶意代码行为分析沙箱的实现方法 | |
Kim et al. | Fraud and financial crime detection model using malware forensics | |
Mimura et al. | Evaluation of a brute forcing tool that extracts the rat from a malicious document file | |
CN110365625B (zh) | 物联网安全检测方法、装置及存储介质 | |
CN102111308A (zh) | 一种多态蠕虫自动检测方法 | |
CN105653941A (zh) | 一种启发式检测钓鱼网站的方法及*** | |
CN102437936A (zh) | 基于双过滤机制的高速网络僵尸报文的检测方法 | |
CN116208356B (zh) | 一种基于深度学习的虚拟货币挖矿流量检测方法 | |
CN102769607B (zh) | 一种基于网络数据包检测恶意代码的方法和*** | |
Khan et al. | A dynamic method of detecting malicious scripts using classifiers | |
CN104778407B (zh) | 一种多维无特征码恶意程序检测方法 | |
CN114629711B (zh) | 一种针对Windows平台特种木马检测的方法及*** | |
CN115412312A (zh) | 一种恶意域名确定方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110209 Termination date: 20180603 |
|
CF01 | Termination of patent right due to non-payment of annual fee |