当前位置: 首页 > 专利查询>四川大学专利>正文

一种基于动态分析的控制流劫持攻击检测技术与系统技术方案

技术编号:20745903 阅读:84 留言:0更新日期:2019-04-03 10:30
本发明专利技术涉及基于二进制代码流的漏洞攻击检测技术领域,尤其涉及Windows操作系统下的漏洞攻击检测系统。该技术采用了动态二进制插桩技术对程序进行运行时监控,具体内容包括:详细分析控制流劫持攻击的实现原理和具体流程,总结出应用程序因控制流劫持攻击造成的主要异常行为;无需在运行目标程序前进行其他操作,使用二进制插桩技术提取程序运行时信息进行实时的攻击检测;记录攻击的详细信息用于程序漏洞分析;在确定攻击的第一时间终止程序运行,阻止攻击进一步行为。本发明专利技术为控制流劫持攻击检测提供了新的解决方案。

【技术实现步骤摘要】
一种基于动态分析的控制流劫持攻击检测技术与系统
本专利技术涉及基于二进制代码流的漏洞攻击检测
,尤其涉及Windows操作系统下的漏洞攻击检测系统。
技术介绍
从1988年的morris蠕虫病毒到2017年的wannacry勒索病毒足以可见网络空间安全的严峻态势。据CNVD2017年的收录漏洞类型统计,应用程序漏洞占比高达59.2%,并且漏洞数量在逐年增多。尽管各大软件厂商在不断改进和完善软件开发质量管理,但软件漏洞问题仍无法彻底消除。应用程序漏洞的利用方式多种多样,而控制流劫持攻击是最常见的一种。控制流劫持攻击允许攻击者破坏程序的控制数据,通常将执行流重定向到攻击者自己的注入代码。通过执行恶意代码能够完全控制程序和系统,造成极大的危害。目前的操作系统中部署了地址空间布局随机化(AddressSpaceLayoutRandomization,ASLR)、数据执行保护(DataExecutionProtection,DEP)、结构化异常处理安全校验(SafeStructuredExceptionHandling,SafeSEH)等安全机制,一定程度上缓解了控制流劫持攻击对软件和系统的危害。但是,因为系统环境的多样性,攻击者仍然能够找到绕过这些安全机制的方法,实现恶意攻击。为了解决以上安全问题,我们提出了一个基于动态分析的控制流劫持攻击检测系统。通过对控制流劫持攻击的原理和具体流程的分析,提出一种通用性很好的控制流劫持攻击检测方案。传统的控制流完整性策略CFI虽然能够有效的防御控制流劫持攻击,但是难以在实际环境中部署。其主要原因有两点:一是CFG的构造困难,完整的CFG构造需要依赖程序源码,对于复杂的程序而言更是难以实现。二是需要检查程序中的每一个间接控制转移,细粒度的检测会引起非常大的开销。动态污点分析技术在实际检测中存在过污染、欠污染等问题,所以效率较低且精度不高。因此我们需要一种高效且易于部署的控制流劫持攻击检测方法,能够在实际环境中防御控制流劫持攻击。
技术实现思路
“CFHADS:基于动态分析的控制流劫持攻击检测系统”是在漏洞攻击检测技术研究过程中针对迄今为止存在的技术问题和不足所提出的专利技术。本专利技术的一个目标是改进现有的软件漏洞攻击检测技术(控制流完整性、动态污点分析技术)复杂且难以部署到实际环境中的弱点,提供一种轻便高效的漏洞攻击检测技术,实现在实际应用环境中防御控制流劫持攻击。传统的控制流完整性策略CFI虽然能够有效的防御控制流劫持攻击,但是需要依赖源码和静态分析技术来构造完整的CFG。动态污点技术通过对污点数据的传播监控能够有效的检测漏洞攻击,却会引起极大的开销。本专利技术提供了一种全新的基于动态分析的漏洞攻击检测思路,不需要依赖源码和静态分析进行预处理,仅需要在程序运行时对于异常行为进行监控。该方法能够成功检测控制流劫持攻击,效率高,较传统的漏洞攻击检测技术有良好的性能开销,更易于部署。为了实现上述目标,本专利技术提供了一种基于动态分析的控制流劫持攻击检测系统,该系统能够有效的识别控制流劫持攻击,并且能够记录攻击的具体流程和及时制止攻击。该系统包含了:管理端,对检测过程和检测结果进行管理,并提供一个用户交互界面;动态信息提取器,提取程序运行时信息用于检测分析,为了减少性能影响,只对需要的关键信息进行提取;异常行为检测器,实现异常行为:栈执行、ROP攻击、SEH异常和内存访问异常的检测;攻击处理模块,记录和保存攻击的详细信息,阻止攻击的进一步操作。附图说明从下面结合附图的详细描述中,将会更清楚的理解本专利技术的目标、实现方法、有点和特性,其中。图1是一个展示本专利技术的基于动态分析的控制流劫持攻击检测系统的架构图。图2是一个展示本专利技术的管理端内部组成单元的方框图。图3是一个展示本专利技术的动态信息提取器内部组成单元的方框图。图4是一个展示本专利技术的异常行为检测器内部组成单元的方框图。图5是一个展示本专利技术的攻击处理模块内部组成单元的方框图。图6是一个说明本专利技术的控制流劫持攻击检测系统完整工作流程的流程图。具体实施方式本专利技术中用于检测控制流劫持攻击,下面结合附图对本专利技术做进一步的说明。本专利技术旨在提供一个基于动态分析的控制流劫持攻击阿静系统,能够简单、高效的检测到控制流劫持攻击,可以方便的部署到实际应用环境中,在实际应用环境中防御控制流劫持攻击。图1是一个描述本专利技术系统组成的架构图。如图1所示,检测系统的核心是管理端,将其他模块整合起来,使得整个系统各功能融洽的衔接起来,同时提供了一个用户交互界面,用户可以通过该界面启动目标程序并输入被检测样本或者数据,并且可以查看检测结果;其他模块分别为动态信息提取模块、异常行为检测器模块和攻击处理模块。图2是一个描述管理端内部组成单元的示意图。如图2中所示,管理端由逻辑控制单元和用户界面单元组成。逻辑控制单元负责控制整个系统的运行逻辑,通过逻辑控制单元将各个功能模块联系起来,协同工作,实现控制流劫持攻击检测的功能。用户界面单元则是系统与用户交互的平台,通过该单元,用户可以提交想要进行检测的可疑样本,启动目标程序运行,查看检测结果。图3是一个展示动态信息提取器内部组成单元的示意图。如图3所示,动态信息提取器基于二进制插桩工具pin实现,由二进制插桩单元和运行时信息提取单元组成。二进制插桩单元主要对目标程序进行指令插桩、函数插桩、模块插桩和线程插桩,为了使性能影响最小,只插桩关键指令call和ret,只插桩敏感函数KiUserExceptionDisPatcher。运行时信息提取单元除了依赖于插桩获取程序执行的指令信息、KiUserExceptionDisPatcher函数的参数信息外,还通过pin提供的丰富的API获取程序运行时的上下文信息,内存空间信息。图4是一个展示异常行为检测器内部组成单元示意图。如图4所示,异常行为检测器由栈执行检测单元、ROP攻击检测单元、SEH异常检测单元和内存访问异常检测单元组成。每个异常行为的产生原理不同,因此为每个异常行为针对性的设计检测策略。栈执行单元检测单元将栈空间中执行代码判定为攻击;ROP将连续11个与call指令不匹配的ret指令判定为攻击;SEH异常检测单元在程序进行结构化异常处理时检查SEH链表的完整性,SEH链表遭受破坏判定为攻击;内存访问异常检测单元同样以结构化异常处理为起点,通过KiUserExceptionDispatcher函数获取程序异常类型,将内存访问异常判定为攻击。图5是一个展示攻击处理模块内部组成单元示意图。如图5所示,攻击处理模块由攻击信息记录单元、攻击制止单元组成。攻击信息记录单元在确定攻击后保存攻击的详细信息,包括异常偏移、异常指令、异常类型、程序运行时上下文以及与攻击点最近的函数调用关系,这些信息用于对攻击的进一步分析。攻击制止单元在确定攻击时强制程序退出,组织攻击进一步执行恶意代码和实施恶意操作。图6是一个展示了控制流劫持攻击检测系统完整工作流程的流程图。如图6中所示,用户通过管理端的用户交互界面向系统提交可疑样本,系统会先对用户提交的可疑样本是否已经检测进行判断。如果样本已经检测,直接显示已经记录的检测结果。如果样本没有检测,系统加载目标程序进行二进制插桩并启动。动态信息提取模块获取程序运行时本文档来自技高网
...

【技术保护点】
1.一种基于动态分析的控制流劫持攻击检测技术,其特征在于,所述方法包括如下步骤:A、分析异常行为,制定判定准则;C、提取程序运行时信息;D、根据判定准则和提取到的程序运行时行为特征进行检测。

【技术特征摘要】
1.一种基于动态分析的控制流劫持攻击检测技术,其特征在于,所述方法包括如下步骤:A、分析异常行为,制定判定准则;C、提取程序运行时信息;D、根据判定准则和提取到的程序运行时行为特征进行检测。2.根据权利要求1所述的一种基于动态分析的控制流劫持攻击检测技术,其特征在于,所述的步骤A进一步包括如下步骤:A1、分析控制流劫持攻击的流程;A2、整理控制流劫持攻击的行为特征;A3、依据行为特征制定判定准则。3.根据权利要求2所述的一种基于动态分析的控制流劫持攻击检测技术,其特征在于,步骤A2中所述的控制流劫持攻击的行为特征具体是指:1)执行恶意代码。完整的控制流劫持攻击最后必然会执行恶意代码,而恶意代码的存在形式有两种。一种是攻击者精心构造、然后注入到应用程序内存空间中的恶意代码,主要表现形式为栈空间恶意代码执行和堆空间恶意代码执行。另一种是程序本身存在、然后被攻击者按照一定规则利用的恶意代码,主要表现形式为ROP攻击。2)SEH利用。控制流劫持攻击的关键步骤是劫持程序的EIP,一种巧妙的利用方式是利用Windows系统下的结构化异常处理SEH。覆盖结构化异常处理函数的地址,破坏了SEH链表的完整性。3)内存访问异常。控制流劫持攻击构造的恶意载体一般是针对特定版本的操作系统和应用程序,而现实世界中系统环境多种多样,因此恶意数据在应用程序的内存空间中不能按攻击者所想进行布局,导致应用程序出现内存访问异常甚至崩溃。4.根据权利要求2所述的一种基于动态分析的控制流劫持攻击检测技术,其特征在于,步骤A3中所述的判定准则具体是指:1)栈空间执行代码;2)出现ROP攻击;2)SEH链表结构不完整;3)出现内存访问异常。5.根据权利要求1所述的一种基于动态分析的控制流劫持攻击检测技术,其特征在于,所述的步骤B进一步包括如下步骤:B1、对目标程序进行二进制插桩;B2、获取目标程序运行时信息。6.根据权利要求5所述的一种基于动态分析的控制流劫持攻击检测技术,其特征在于,步骤B2中所述的目标程序运行时信息具体是指:目标程序指令执行、模块加载、线程创建、敏感函数调用、程序上下文和内存空间数据。7.根据权利要求1所述的一种基于动态分析的控制流劫持攻击检测技术,...

【专利技术属性】
技术研发人员:刘亮吴小王贾鹏
申请(专利权)人:四川大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1