一种基于多策略指令检测的ROP及变种攻击动态检测方法技术

技术编号:21141590 阅读:21 留言:0更新日期:2019-05-18 05:18
本发明专利技术公开了一种基于多策略指令检测的ROP及变种攻击动态检测方法,该方法基于二进制动态插桩技术拦截指令的方式,采用关键指令检测策略、攻击指令片段特征检测策略的两种策略判断方法来实现ROP攻击及变种攻击的检测。关键指令检测策略又根据指令地址及指令数量特征分析。攻击指令片断特征检测策略根据攻击功能及复杂度特征分析,包括攻击指令片段大小判断策略和攻击指令片段连续长度判断策略。本方法采用多层检测策略,从正常及异常指令特征两个角度、综合指令地址、数量、攻击功能、攻击复杂度等四类特征维度、结合确定性及不确定性两类检测方法综合实现ROP攻击及其变种攻击的检测。本方法性能消耗较低,占用内存空间小。

A Dynamic Detection Method of ROP and Variant Attacks Based on Multi-Strategy Instruction Detection

【技术实现步骤摘要】
一种基于多策略指令检测的ROP及变种攻击动态检测方法
本专利技术涉及一种基于多策略指令检测的ROP及变种攻击动态检测方法,尤其涉及一种基于关键指令检测策略、攻击指令片段检测策略的多策略判断ROP攻击及变种攻击的检测方法,属于内存攻防领域。
技术介绍
SolarDesigner在1997年提出return-into-libc攻击技术通过漏洞利用将函数的返回地址替换为libc库中的函数代码块的地址,将控制流直接转向攻击者预先设计好的libc函数构成的攻击代码块。但一旦libc的开发者移除常用的system等库函数,攻击能力会受到很大的限制。HovavShacham在2007年提出了ROP攻击(Return-OrientedPrograming),通过扫描已有的动态链接库和可执行文件,根据一定的规则寻找内存中的以ret指令结尾的指令序列(指令片段gadget),组合实现各种复杂的攻击行为。针对ROP攻击的ret指令和gadget组合规律进行检测可以防止部分ROP攻击。然而,随后提出的ROP攻击变种可以不同程度绕过这些针对ret指令提出的防御机制。Checkoway等人在2010年提出用类似于ret属性的指令序列替代原有ret结尾指令序列。之后Blestch又提出JOP(jumpOrientedPrograming)攻击方式,不再以ret指令结尾而是以间接跳转指令jmp结尾。还有研究学者提出了BIOP攻击:使用jmp或call来控制程序执行流。将这些ROP的变种攻击统称为“X”OP攻击。二进制代码动态翻译技术能够对程序二进制代码指令的动态执行过程进行实时监视、修改和记录,无需知道源代码,也不需要重新编译或重新链接程序,因此能够在不修改软件的前提下分析任何可执行软件的运行过程是否存在ROP及其变种攻击。但当前的基于二进制代码动态翻译技术的ROP及其变种攻击检测方式中面临以下几个问题。第一,检测方法不够全面,而单一检测方法的漏报率、误报率较高,对典型攻击的检测正确率较高,但难以发现特殊方式构造的攻击。例如,当前检测方法往往仅检测正常指令或异常指令特征,或部分特征(如指令地址、数量、攻击功能、攻击复杂度等特征中的一部分),或者仅使用确定性检测方法(如基于栈的检测方法仅检测跳转地址是否改变),或非确定性检测方法(如基于阈值的指令检测方法)。第二,较之基于指令的检测方法,基于栈的检测方法性能消耗过大。如基于影子栈的ROPdefender检测方法需要对栈进行两次操作,性能开销较高,占用内存更多。
技术实现思路
本专利技术要解决的技术问题是,提供一种基于多策略指令检测的ROP攻击及其变种攻击的动态检测方法,该方法具有低误报、低漏报和实时检测和无需程序源代码的优点。为实现上述目的,本专利技术采用的技术方案为一种基于多策略指令检测的ROP及变种攻击动态检测方法,该方法基于二进制动态插桩技术拦截指令的方式,从正常及攻击角度综合分析,采用关键指令检测策略、攻击指令片段特征检测策略的两种策略判断方法来实现ROP攻击及变种攻击的检测。其中关键指令检测策略又根据指令地址及指令数量特征分析,包括了关键指令跳转策略和关键指令数量平衡策略。攻击指令片断特征检测策略根据攻击功能及复杂度特征分析,包括攻击指令片段大小判断策略和攻击指令片段连续长度判断策略。其中,多策略判断逻辑如下:首先,采用关键指令地址跳转策略,能够检测出return-into-libc攻击和能够检测出以call指令结尾的gadget构造的攻击,且能够初步判断以jmp结尾的gadget是否是一个有效的gadget。第二,在关键指令地址跳转策略的基础上执行关键指令数量平衡判断策略,通过判断call_ret平衡条件,即当ret指令数目多于call指令数目时,能够检测出一部分典型ROP攻击。第三,由于上述策略不能检测出call指令数目多于ret指令数目时,可能发生的ROP攻击。因此在关键指令数量平衡判断策略的基础上执行攻击指令片段的大小(区分攻击功能)与连续长度(体现攻击整体复杂程度)特征判断策略,能够进一步判断是否是典型或者特殊构造的ROP攻击。第四,在关键指令跳转策略的基础上,执行指令片段特征检测策略,通过判断以jmp结尾的gadget的大小和连续gadget数目,能够进一步判断是否是特殊的JOP攻击。策略1:关键指令检测策略策略1.1关键指令跳转策略(1)检测连续两次:ret跳转的目标地址是否是库函数的地址;(2)检测call指令跳转的目标地址是否是函数的开始地址;(3)检测jmp跳转地址与源地址间的距离d是否小于阈值T0;策略1.2:关键指令数量平衡策略;Δ=call_number–ret_number策略2:攻击指令片段特征检测策略;策略2.1攻击指令片段大小判断策略;策略2.2攻击指令片段连续长度判断策略;通过执行策略1中的策略1.1,,能够进行return-into-libc攻击、以call指令结尾的gadget构造的XOP变种攻击的检测。通过执行策略1.1中的(1)能够判断是否发生了return-into-libc攻击。执行策略1.1中的(2)判断能够判断是否发生了以call指令结尾的gadget构造的XOP变种攻击。执行策略1.1中的(3),当d>T0时能够判断以jmp结尾的指令序列是否可能是一个有效的gadget,从而判断典型的JOP攻击。针对策略1.1中仅判断ret指令跳转的目标地址范围是否是库函数的开始地址从而导致:当ret目标地址跳转到非库函数地址时无法判断是否发生ROP攻击的问题,采用策略1.2:关键指令数量平衡策略进行ROP攻击的进一步检测。Δ<S1时,通过判断ret指令的数目多于call指令的数目来检测出典型的ROP攻击;Δ>S2时,程序正常,未发生ROP攻击。S1<=Δ<=S2,针对这种情况下,无法准确判断程序是发生了ROP攻击还是程序正常执行发生嵌套调用的问题,采用策略2:攻击指令片段特征检测策略进行ROP攻击的进一步检测。通过判断以ret指令结尾的gadget的大小和连续gadget的数目是否满足阈值条件来进一步检测ROP攻击。针对策略1.1中jmp跳转的目标地址与jmp指令地址间的距离:d>T0时只能筛选出可能是有效的以jmp结尾的gadget,但无法确定是否发生JOP攻击的问题,为了更加准确的判断这些gadget是否是一个有效的gadget,从而判断典型的JOP攻击,此时采用策略2:攻击指令片段特征检测策略进行典型JOP攻击的进一步检测。通过判断以jmp指令结尾的gadget的大小和连续gadget的数目是否满足阈值条件来进一步检测出JOP攻击。针对ROP攻击及其变种的各个特点,采用基于多策略指令检测的ROP及变种攻击的动态检测方法,能够提高检测ROP攻击及其变种攻击的正确率,降低误报率和漏报率。本专利技术采用如下技术手段实现:针对return-into-libc攻击ret指令控制流程跳转到库函数、jmp指令控制程序流在不同函数与不同库间跳转、以call结尾的gadget构造的变种攻击中call指令不代表函数开头的特点;针对ROP攻击及其变种攻击中call与ret指令数目不平衡的特点;针对ROP攻击及其变种攻击中,本文档来自技高网
...

【技术保护点】
1.一种基于多策略指令检测的ROP及变种攻击动态检测方法,其特征在于:该方法基于二进制动态插桩技术拦截指令的方式,从正常及攻击角度综合分析,采用关键指令检测策略、攻击指令片段特征检测策略的两种策略判断方法来实现ROP攻击及变种攻击的检测;其中关键指令检测策略又根据指令地址及指令数量特征分析,包括了关键指令跳转策略和关键指令数量平衡策略;攻击指令片断特征检测策略根据攻击功能及复杂度特征分析,包括攻击指令片段大小判断策略和攻击指令片段连续长度判断策略;其中,多策略判断逻辑如下:首先,采用关键指令地址跳转策略,能够检测出return‑into‑libc攻击和能够检测出以call指令结尾的gadget构造的攻击,且能够初步判断以jmp结尾的gadget是否是一个有效的gadget;第二,在关键指令地址跳转策略的基础上执行关键指令数量平衡判断策略,通过判断call_ret平衡条件,即当ret指令数目多于call指令数目时,能够检测出一部分典型ROP攻击;第三,由于上述策略不能检测出call指令数目多于ret指令数目时,可能发生的ROP攻击;因此在关键指令数量平衡判断策略的基础上执行攻击指令片段的大小(区分攻击功能)与连续长度(体现攻击整体复杂程度)特征判断策略,能够进一步判断是否是典型或者特殊构造的ROP攻击;第四,在关键指令跳转策略的基础上,执行指令片段特征检测策略,通过判断以jmp结尾的gadget的大小和连续gadget数目,能够进一步判断是否是特殊的JOP攻击;策略1:关键指令检测策略策略1.1关键指令跳转策略(1)检测连续两次:ret跳转的目标地址是否是库函数的地址;(2)检测call指令跳转的目标地址是否是函数的开始地址;(3)检测jmp跳转地址与源地址间的距离d是否小于阈值T0;策略1.2:关键指令数量平衡策略;Δ=call_number–ret_number策略2:攻击指令片段特征检测策略;策略2.1攻击指令片段大小判断策略;策略2.2攻击指令片段连续长度判断策略;通过执行策略1中的策略1.1,能够进行return‑into‑libc攻击、以call指令结尾的gadget构造的XOP变种攻击的检测;通过执行策略1.1中的(1)能够判断是否发生了return‑into‑libc攻击;执行策略1.1中的(2)判断能够判断是否发生了以call指令结尾的gadget构造的XOP变种攻击;执行策略1.1中的(3),当d>T0时能够判断以jmp结尾的指令序列是否可能是一个有效的gadget,从而判断典型的JOP攻击。...

【技术特征摘要】
1.一种基于多策略指令检测的ROP及变种攻击动态检测方法,其特征在于:该方法基于二进制动态插桩技术拦截指令的方式,从正常及攻击角度综合分析,采用关键指令检测策略、攻击指令片段特征检测策略的两种策略判断方法来实现ROP攻击及变种攻击的检测;其中关键指令检测策略又根据指令地址及指令数量特征分析,包括了关键指令跳转策略和关键指令数量平衡策略;攻击指令片断特征检测策略根据攻击功能及复杂度特征分析,包括攻击指令片段大小判断策略和攻击指令片段连续长度判断策略;其中,多策略判断逻辑如下:首先,采用关键指令地址跳转策略,能够检测出return-into-libc攻击和能够检测出以call指令结尾的gadget构造的攻击,且能够初步判断以jmp结尾的gadget是否是一个有效的gadget;第二,在关键指令地址跳转策略的基础上执行关键指令数量平衡判断策略,通过判断call_ret平衡条件,即当ret指令数目多于call指令数目时,能够检测出一部分典型ROP攻击;第三,由于上述策略不能检测出call指令数目多于ret指令数目时,可能发生的ROP攻击;因此在关键指令数量平衡判断策略的基础上执行攻击指令片段的大小(区分攻击功能)与连续长度(体现攻击整体复杂程度)特征判断策略,能够进一步判断是否是典型或者特殊构造的ROP攻击;第四,在关键指令跳转策略的基础上,执行指令片段特征检测策略,通过判断以jmp结尾的gadget的大小和连续gadget数目,能够进一步判断是否是特殊的JOP攻击;策略1:关键指令检测策略策略1.1关键指令跳转策略(1)检测连续两次:ret跳转的目标地址是否是库函数的地址;(2)检测call指令跳转的目标地址是否是函数的开始地址;(3)检测jmp跳转地址与源地址间的距离d是否小于阈值T0;策略1.2:关键指令数量平衡策略;Δ=call_number–ret_number策略2:攻击指令片段特征检测策略;策略2.1攻击指令片段大小判断策略;策略2.2攻击指令片段连续长度判断策略;通过执行策略1中的策略1.1,能够进行return-into-libc攻击、以call指令结尾的gadget构造的XOP变种攻击的检测;通过执行策略1.1中的(1)能够判断是否发生了return-into-libc攻击;执行策略1.1中的(2)判断能够判断是否发生了以call指令结尾的gadget构造的XOP变种攻击;执行策略1.1中的(3),当d>T0时能够判断以jmp结尾的指令序列是否可能是一个有效的gadget,从而判断典型的JOP攻击。2.根据权利要求1所述的一种基于多策略指令检测的ROP及变种攻击动态检测方法,其特征在于:针对策略1.1中仅判断ret指令跳转的目标地址范围是否是库函数的开始地址从而导致:当ret目标地址跳转到非库函数地址时无法判断是否发生ROP攻击的问题,采用策略1.2:关键指令数量平衡策略进行ROP攻击的进一步检测;Δ<S1时,通过判断ret指令的数目多于call指令的数目来检测出典型的ROP攻击;Δ>S2时,程序正常,未发生ROP攻击;S1<=Δ<=S2,针对这种情况下,无法准确判断程序是发生了ROP攻击还是程序正常执行发生嵌套调用的问题,采用策略2:攻击指令片段特征检测策略进行ROP攻击的进一步检测;通过判断以ret指令结尾的gadget的大小和连续gadget的数目是否满足阈值条件来进一步检测ROP攻击。3.根据权利要求1所述的一种基于多策略指令检测的ROP及变种攻击动态检测方法,其特征在于:针对策略1.1中jmp跳转的目标地址与jmp指令地址间的距离:d>T0时只能筛选出可能是有效的以jmp结尾的gadget,但无法确定是否发生JOP攻击的问题,为了更加准确的判断这些gadget是否是一个有效的gadget,从而判断典型的JOP攻击,此时采用策略2:攻击指令片段特征检测策略进行典型JOP攻击的进一步检测;通过判断以jmp指令结尾的gadget的大小和连续gadget的数目是否满足阈值条件来进一步检测出JOP攻击。4.根据权利要求1所述的一种基于多策略指令检测的ROP及变种攻击动态检测方法,其特征在于:针对ROP攻击及其变种的各个特点,采用基于多策略指令检测的ROP及变种攻击的动态检测方法,能够提高检测ROP攻击及其变种攻击的正确率,降低误报率和漏报率。5.根据权利要求1所述的一种基于多策略指令检测的ROP及变种攻击动态检测方法,其特征在于:针对return-into-libc攻击ret指令控制流程跳转到库函数、jmp指令控制程序流在不同函数与不同库间跳转、以call结尾的gadget构造的变...

【专利技术属性】
技术研发人员:詹静张茜赵勇韩瑾夏晓晴
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

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

1