计算机工程方面有关论文范文素材,与路径条件驱动的混淆恶意代码检测相关毕业论文格式

时间:2020-07-05 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

本论文是一篇计算机工程方面有关毕业论文格式,关于路径条件驱动的混淆恶意代码检测相关本科毕业论文范文。免费优秀的关于计算机工程及自然科学及软件学报方面论文范文资料,适合计算机工程论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

摘 要:代码混淆是恶意代码隐藏自身的主要手段之一.本文提出了一种新的动态检测方法,能够有效检测混淆后的恶意代码.该方法能够利用ISR进行动态调试.在调试过程中通过对路径条件的约束求解,驱动恶意代码执行不同的路径更深入地检测隐藏恶意代码.此外,对于需要读取外部资源的恶意代码,恶意行为往往需要结合外部资源才能检测.本文方法能够准确定位外部资源并结合原始恶意代码进行检测,提高检测的准确性.在原型系统的测试中,与12种杀毒软件的横向测试表明,该方法在对混淆恶意代码检测中能有效地降低漏报率.

关 键 词:程序调试;恶意代码检测;代码混淆;路径分析;动态测试


写计算机工程论文的格式
播放:24091次 评论:6499人

中图分类号:TP309文献标识码:A

经过多年研究,恶意软件检测领域发展出了多种有效的恶意软件检测方法.恶意软件分析方面主要包括静态分析和动态分析两大类方法;恶意软件的归类和检测方面则主要采用基于特征,基于规范以及基于异常[1]三种方法.

基于特征的恶意软件检测主要将恶意软件中特定的二进制序列、字符串或者程序行为作为恶意软件的主要特征,分析检测对象后与已有的特征库进行匹配,来识别恶意软件[2].刘巍伟等人提出综合检测程序行为来作为特征实现恶意软件检测[3].基于规范的恶意软件检测方法则首先整理系统的关键安全属性得到安全规范.建立安全规范后,分析检测对象,如果检测对象的行为不满足规范,则认为检测对象为恶意软件.基于规范的恶意软件检测属于白名单机制,相较于基于特征的恶意软件检测能够更有效地检测未知的恶意软件[4],但误报率较高.基于异常的恶意软件检测采用统计的方法得到正常程序的行为集合,检测对象的行为与正常行为集合不同时,认为代码有异常行为从而判定为恶意软件.基于异常的恶意软件检测方法的误报率相对基于规范的方法低,同时漏报率相对基于特征的方法高[5].

然而随着恶意攻击者的水平不断提高,恶意代码取代恶意软件成为攻击的主要手段.恶意代码并不是完整的可执行程序,而是二进制代码片段.恶意代码相较于恶意软件,能够更容易地进行代码混淆,更方便地通过网络传输,并能更好地与软件或系统漏洞相结合.恶意攻击者针对原有的安全防护技术,针对性地对恶意代码进行伪装.一方面,使用代码混淆技术使得恶意代码没有固定特征[6];另一方面,攻击静态分析中关键的反汇编算法使其得到错误结果.静态恶意软件分析需要首先将二进制恶意软件反汇编为中间表示,才能继续分析.恶意软件保护技术中的预防混淆技术能够有效地针对反汇编算法进行攻击,使得反汇编出错[6].除此之外,分析经过控制流混淆的恶意代码,静态分析有着较大的局限性[7].另一方面,研究人员提出了一系列新的动态软件分析技术.部分研究人员提出利用纯软件虚拟机来对抗代码混淆[8-9].另外一部分研究人员提出利用CPU的调试功能的方法,提升了动态分析的效率[10-11].

本文在动态分析方法的基础上,提出了一种新的动态恶意代码检测方法.该方法采用基于CPU调试功能的动态检测技术,并利用路径驱动的分析方法提升了恶意代码检测的路径覆盖率,同时对程序I/O的检测,使得本文方法能够有效加载外部资源,检测分离式恶意代码.本文按照以下方式组织,第1节介绍与本文相关的前人研究,第2节具体介

绍本文采用的动态恶意代码检测方法,第3节给出并分析原型系统的实验结果,最后第4节进行总结.

1相关工作

在恶意代码检测领域中,研究人员主要采用静态程序分析和动态程序分析两种方法来对恶意代码进行自动化分析.其中静态分析主要包括控制流分析、数据流分析、切片以及抽象解释等多种分析方法.

由于恶意代码一般为二进制机器码,静态分析需要首先通过反汇编技术将其转化为汇编语言再进行深入分析.反汇编主要有线性扫描和递归扫描两种算法[12],然而Linn等人指出通过在二进制中插入垃圾指令,能够有效地攻击这两种主流反汇编算法,使得反汇编结果错误[6].与此同时,结合了代码混淆技术的恶意代码隐藏技术也给静态分析带来了不小的挑战.控制流混淆能够彻底改变恶意代码的执行流程,使得静态恶意代码检测技术无法通过匹配控制流图来实现检测.平展控制流混淆[13]是控制流混淆中较为常用的一种,平展控制流混淆将顺序结构的控制流图扁平化,加入大量冗余块来保护程序的真实执行流程,如图1.从图中可以看出,代码经过混淆后各个节点的执行顺序无法直观看出,需要分析派遣变量运行时信息才能获得.

动态分析相较于静态分析来说,由于需要实际执行程序,往往能够更准确地得到程序的执行流程.MichalisPolychronakis利用模拟执行环境对恶意代码变种进行动态调试,取得了很好的效果[14].在此之后,动态的恶意代码分析技术得到了全面发展,DawnSong等人提出了基于该思想的恶意代码分析平台[8].这些动态调试方法的共同特点都是通过Bochs/qemu等软件模拟环境来执行恶意代码,并对其进行分析.恶意攻击者发现软件模拟运行环境无法完全模拟所有真实CPU指令,通过某些特定的指令能够绕过模拟环境的检测机制[15].为了解决这一问题,YanickFratantonio利用真实环境中CPU的陷阱标志进行单步调试.

动态分析主要存在两个主要问题,一是路径覆盖率低,二是执行效率底.以上提到的动态执行方面采用多种方法提升了执行效率,但是忽略了路径覆盖率.本文在修改ISR实现程序跟踪的基础上,通过对执行路径条件的跟踪和约束求解,采用Concolic测试的分析思想[16],提高恶意代码分析过程的路径覆盖率.此外,在动态分析过程中通过对系统I/O函数的检测来更全面地定位获取外部资源.对外部资源的定位与跟踪能够更好地分析一些分离式的恶意代码.木马下载器作为一种典型的分离式恶意代码,只有在能够通过网络下载木马资源的情况下才会运行木马并实施恶意行为.在外部资源无法加载的情况下,恶意代码可以自动退出或者自毁.因此,为了全面分析恶意代码行为,必须能够识别并下载外部资源.


本文出处:http://www.sxsky.net/daxuebiyelunwen/05035366.html

2恶意代码动态检测方法

本文提出的动态恶意代码分析框架主要包含3个主要部分:在Bochs基础上通过修改中断服务例程实现的ISR调试器;实现路径驱动测试的跟踪模块;恶意代码特征分析模块,如图2所示.

在ISR调试器中,将CPU的EFLAGS寄存器中的TF标志位置为1,并修改其中断处理例程ISR1来实现对恶意代码的动态跟踪.跟踪模块则根据ISR调试器的输出记录恶意代码执行流程,将汇编语言转化为更加适合分析的中间表示.此外,跟踪模块还具有两个主要功能,一是利用Concolic思想驱动恶意代码的多次运行,提高分析的路径覆盖率;二是定位包括文件读取,网络下载等系统I/O函数来自动加载外部资源.特征分析模块则根据系统调用序列来判断、分类、记录恶意代码行为.

2.1路径条件驱动的检测

在动态跟踪的基础上,准确地发掘可疑行为是恶意代码检测的关键.传统动态分析技术仅对恶意代码的少数路径进行动态分析,无法保证路径覆盖率.然而恶意攻击者往往通过各种条件跳转来隐藏恶意代码中的攻击行为.比如通过检测自身父进程来判断运行环境,只在特定的环境下实施恶意行为.针对这种手段,跟踪模块采用Concolic测试方法驱动分析对象动态执行.首先根据ISR调试器的输出得到分析对象当前执行路径的约束条件,并对其进行变换和约束求解得到新的目标路径和输入.然后,跟踪模块驱动分析对象执行新的目标路径,避免重复执行同一路径造成冗余测试.Concolic分析算法如

1 2 3

计算机工程方面有关论文范文素材,与路径条件驱动的混淆恶意代码检测相关毕业论文格式参考文献资料:

写大学毕业论文

微电子专业毕业论文

就业大学生

大学生就业看法

大学生论文抄袭

毕业论文演讲稿

别墅毕业论文

免费毕业论文

环境毕业论文

中专数控专业毕业论文

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
后台-系统-系统设置-扩展变量-(内容页告位3-手机版)