一种基于相似性匹配恶意shellcode快速检测方法

文档序号:9491150阅读:1155来源:国知局
一种基于相似性匹配恶意shellcode快速检测方法
【技术领域】
[0001]本发明涉及一种结合了传统的动态检测技术和静态检测技术优点的基于相似性匹配恶意shellcode快速检测方法。
【背景技术】
[0002]随着网络和计算机技术的飞速发展和进步,计算机在我们日常生活的各个方面扮演者越来越重要的角色,但是也带来了很多无法避免的安全问题。其中,网络恶意攻击和计算机木马病毒成为当前计算机安全的主要威胁。由于计算机本身结构的缺陷以及当前许多软件开发都是使用C/C++语言实现,而C/C++语言作为高级开发语言,本身具有很高的灵活性,这使得在开发操作系统和应用软件过程中产生了很多的安全漏洞。因此,一些非法份子可以通过网络以及病毒木马,利用这些漏洞直接或者间接的获得计算机系统的部分操作权限,甚至得到管理员权限,严重的威胁着计算机系统的安全。
[0003]从安全防护软件提供商提供的数据可知,利用缓冲区溢出漏洞是最容易实施攻击的入侵方式。漏洞只是攻击的靶标,而具体实施攻击的是恶意代码Shellcode,即实施攻击的真正攻击载荷。
[0004]现在主要有两种解决方案用于检测Shellcode,即静态特征匹配和动态模拟执行。然而,随着多态编码技术的发展,使得恶意代码Shellcode可以轻松的隐藏自身所包含的的组成特征,从而躲避检测系统的检测。因此,静态和动态两种检测技术方案对多态编码处理后的Shellcode的检测效果并不理想,并且对于普通类型的检测存在较高的误报和漏报率。
[0005]静态检测技术主要是通过对恶意代码Shellcode的组成结构进行分析,从而提取出Shellcode的组成特征代码。然后,对待检测数据进行特征匹配来判断是否存在攻击行为。基于特征匹配的静态检测技术广泛应用于安全防护软件中。静态检测技术具有检测高效、部署快捷等特点,适用于对网络数据进行检测。
[0006]动态检测技术是通过对检测数据进行虚拟执行,解析出数据中包含的指令,并对指令进行模拟执行。从而详细的了解恶意代码Shellcode入侵过程中的操作行为。相比较于静态检测技术,动态检测技术可以获得详细的检测信息,并且检测结果更加精确。检测准确和较低的误报和漏报率,以及详细的检测报告,使得动态检测技术广泛的应用于Snort、BASE等入侵检测系统以及蜜罐中。
[0007]前互联网的发展十分迅速,在减少用户的手动操作,增强用户体验的同时,加强用户的隐私保护也显得至关重要。一些非法份子通过网络以及病毒木马,利用这些漏洞直接或者间接的获得计算机系统的部分操作权限,甚至得到管理员权限,严重的威胁着计算机系统的安全。因此对于恶意木马程序的检测显得十分重要。其次,样本库样本数量的问题需要解决,只含有常见的攻击样本,因此容易造成很高的漏报事件。并且这种检测技术对于现在的使用分段技术编写的代码是无效的,假如有人把完整的代码分段加入数据包中,那么便可以躲过查杀。

【发明内容】

[0008]本发明的目的在于提供一种可用于检测出那些利用缓冲区溢出漏洞进行攻击的恶意Shellcode代码;在提高检测准确性、降低误报漏报率的同时具有较快的检测速率的基于相似性匹配恶意shellcode快速检测方法。
[0009]本发明的目的是这样实现的:
[0010]步骤1:当对待测数据进行检测时,对待测数据进行判断,确定是否存在可疑的GetPC以及call、jmp、fnstenv浮点操作指令;根据判定结果,如果存在可疑的指令,则使用编码处理,并确定使用解码器的开始模拟执行检测位置,进入步骤2 ;
[0011]步骤2:在步骤1确定的起始检测位置,调用解码器进行模拟执行检测,查找待测数据中是否存在循环解码指令序列和内存多次访问操作;使用开源Shellcode检测库libemu来模拟执行待测数据,作为检测方法的解码器构成部分;根据检测结果进行判断,如果不存在解码指令,则进入步骤3,如果存在解码指令直接进入步骤4 ;
[0012]步骤3:使用Shingle算法对待测数据和样本库进行模拟检测,将检测结果生成Jaccard相似度系数R ;根据此系数来决定是否执行下一步操作,如果R大于阈值40%,直接进入步骤4 ;否则结束检测流程;
[0013]步骤4:相似度系数大于阈值40%,即可判定待测数据中存在恶意Shellcode攻击行为,提出预警。
[0014]本发明的有益效果在于:
[0015]本发明采用成熟算法和动态检测库,易于实现。通过动态和静态检测技术的有效结合,提高了对恶意代码Shellcode的统一有效检测。通过相似性匹配算法Shingle来改进基于特征匹配的静态检测技术的不足之处。通过判断待测数据和样本库中实例恶意代码Shellcode的相似性程度来判断是否存在缓冲区溢出漏洞攻击行为。该算法可以提高检测的准确度和降低基于特征匹配的静态检测技术的误报率。并以解码循环指令序列和内存多次访问操作作为多态编码处理的恶意代码Shellcode的检测依据。因此,不需要模拟器进行深度模拟执行和系统函数Hook。从而进一步降低动态模拟检测技术的检测处理消耗,提高检测数据的吞吐率,提高对于多态恶意代码的检测速率,降低对网络速率的影响。
【附图说明】
[0016]图1为本发明步骤图。
[0017]图2为本发明流程图。
[0018]图3为本发明的基于相似性Shingle算法与基于特征匹配检测对比示意图。
[0019]图4是本发明的动态解码器检测效果对比示意图。
【具体实施方式】
[0020]下面结合附图对本发明做进一步描述。
[0021]本发明包括:
[0022]步骤1:当对待测数据进行检测时,基于相似性匹配检测技术方法会对待测数据进行简单的判断,确定是否存在可疑的GetPC以及浮点操作指令如call、jmp、fnstenv指令。根据判定结果,如果存在可疑的指令,则应该使用编码处理,并确定使用解码器的开始模拟执行检测位置,提高模拟器的执行效率,降低待测数据的检测规模。当这些步骤完成之后进入步骤2 ;
[0023]步骤2:在第一步确定的起始检测位置,调用解码器进行模拟执行检测,查找待测数据中是否存在循环解码指令序列和内存多次访问操作。使用开源Shellcode检测库libemu来模拟执行待测数据,作为检测方法的解码器构成部分。实现对经过多态编码技术处理后的恶意代码Shellcode的有效检测。根据检测结果进行判断。如果不存在解码指令,则进入步骤3,如果存在解码指令直接进入步骤4 ;
[0024]步骤3:使用Shingle算法对待测数据和样本库进行模拟检测,将检测结果生成Jaccard相似度系数R。根据此系数来决定是否执行下一步操作,如果R大于阈值40%,直接进入步骤4。否则结束检测流程;
[0025]步骤4:根据上一步中得出的结果,相似度系数大于阈值40%,即可判定待测数据中存在恶意Shellcode攻击行为,提出预警。
[0026]如图1、图2所示,本发明基于相似性匹配方式的恶意代码Shellcode快速检测技术方法包括三部分:恶意代码Shellcode起始位置定位和类型判断、解码器模拟执行检测循环解码指令序列和内存访问操作以及相似度R判定。
[0027]本发明主要目的是改进原有恶意代码Shellcode检测技术的不足之处。结合了静态检测技术的快速优势,以及动态模拟检测技术针对多态恶意代码Shellcode方面的准确性,从而提出了一种更加高效,准确的检测技术。以两者结合实现
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1