一种基于情境的rop攻击检测系统及方法

文档序号:9727666阅读:434来源:国知局
一种基于情境的rop攻击检测系统及方法
【技术领域】
[0001] 本发明属于信息安全技术领域,设及一种基于情境的R0P攻击检测系统及方法,具 体设及一种基于情境的检测Amlroid系统R0P攻击的装置及方法。
【背景技术】
[0002] 随着移动互联网的高速发展,智能手机已经成为人们日常生活中必不可少的一部 分,然而智能手机中往往存在比其他传统终端更多的隐私信息,如短信、通讯录、通话记录、 银行密码等,因此智能手机的安全显得尤为重要。Amlroid操作系统作为移动平台的主流操 作系统,由于其平台应用的开放性W及系统的分层混合结构,近年来针对Android系统应用 程序的攻击层出不穷,为Amlroid系统用户带来巨大的安全风险。
[0003] 面向返回编程攻击,即R0P攻击是一种功能强大较为复杂的非注入代码型攻击,利 用了代码复用技术,自2007年被提出W来,发展迅速。R0P攻击复用程序代码片段(即 Gadget)的编程方法具有图灵完备性,理论上可W构造任意恶意代码。它利用程序自身进程 地址空间的代码片断而不依赖外部注入代码,因此能有效绕过现有的诸多防御机制,例如 DEP和W?X。
[0004] 2008年Kornau等人给出了 ROP攻击在ARM指令集下的实现,自此ROP攻击开始转向 系统底层基于ARM指令集的An化oid系统。攻击者进行针对An化oid系统的R0P攻击,可W绕 过多种防御机制,与其他攻击方式相结合,使得已经被成功防御的攻击方法再度有效,无疑 造成了巨大的安全威胁。如今,R0P攻击已经越来越多地被使用来针对An化0 id系统:CVE-2013-2597的找溢出漏桐、CVE-2014-7911的Amlroid本地提权漏桐W及流传甚广的Hacking Team An化oid Browser Exploit都是ROP攻击在An化oid系统中的实际应用。由此观之,如 何在Amlroid系统中有效的检测R0P攻击已经变成了一个至关重要的问题。
[0005] Amlroid系统面临R0P攻击的威胁,但目前Amlroid的主流产品中,并没有较为完善 系统的R0P检测方法装置的实现。另一方面,对于PC端,软件行为监控和敏感行为拦截已经 是较为成熟的恶意软件对抗技术,有着十分广泛的应用。但在Amlroid系统中,还未有主流 产品将运一技术应用于对R0P攻击的检测中。情境的概念虽然很早就被提出,但是也未有主 流产品从运一角度考虑与R0P攻击检测相结合的方法。

【发明内容】

[0006] 为了解决上述技术问题,提高Amlroid平台的安全性,本发明提出了一种基于情境 的R 0 P攻击检测系统及方法,在对A η d r 0 i d系统本身不做任何修改的情况下,有效检测 Android系统中发生的R0P攻击,并W敏感行为监控与拦截技术避免用户遭受R0P攻击的危 害。
[0007] 本发明的装置所采用的技术方案是:一种基于情境的R0P攻击检测系统,其特征在 于:包括用户交互模块、注入器模块、监控模块、情境收集模块、R0P攻击检测模块与记录模 块;
[0008] 所述用户交互模块提供检测系统与用户交互的接口,在进行ROP攻击检测之前可 W通过用户交互模块指定应用检测范围,当检测到R0P攻击时,用户根据交互模块查验检测 结果与相关情境信息,根据结果维护应用白名单所述注入器模块用于将监控模块注入系统 关键进程,初始监控模块,监控应用的初始启动过程;
[0009] 所述监控模块用于监控应用的敏感行为,当R0P攻击发生时,对其敏感行为进行拦 截;
[0010] 所述情境收集模块用于收集被检应用的情境信息,当触发关键点时,调用R0P攻击 检测模块判断是否发生R0P攻击,当发生R0P攻击时,继续收集问题应用的情境信息;反馈监 控模块,对问题应用的敏感行为进行拦截;调用记录模块,对情境信息进行记录;
[0011] 所述R0P攻击检测模块用于分析情境收集模块获得的情境信息,根据预先配置的 R0P攻击检测策略判断是否发生R0P攻击,当检测到应用进程受到R0P攻击时,调用记录模 块,对R0P攻击发生的相关情境信息进行记录;检测到R0P攻击时反馈情境收集模块,进一步 收集相关情境信息;
[0012] 所述记录模块用于记录R0P攻击检测结果和相关的情境信息,形成R0P攻击检测记 录;
[0013] 用户通过用户交互模块同步数据库查验检测记录,维护生成Amlroid系统应用的 白名单,R0P攻击检测记录和应用白名单被统一保存在数据库当中。
[0014] 作为优选,所述检测系统还包括性能监视单元,对硬件事件的值进行读取,用于检 测R0P攻击;所述性能监视单元包括事件选择模块、性能计数器模块和中断模块;事件选择 模块决定需要记录的性能事件;性能计数器模块对相应性能事件的值进行记录,每当有相 应的事件发生则对应的性能计数器的值将加一;中断模块主要负责何时读取性能计数器的 值。
[0015] 本发明的方法所采用的技术方案是:一种基于情境的R0P攻击检测方法,其特征在 于,包括W下步骤:
[0016] 步骤1:注入系统关键进程,其具体实现包括W下子步骤:
[0017] 步骤1.1:注入器模块查找系统中与敏感行为相关的关键系统进程的PID号;所述 关键系统进程具体是指:与Amlroid系统各种服务相关的system_se;rve;r,与通话、短信等业 务相关的com. an化oid. phone,与录制视频、语音相关的/system/bin/media_se;rve;r;
[0018] 步骤1.2:注入器模块通过ptrace()函数attach W上四个关键系统进程,加载监控 模块到其进程空间,调用mprotect 0函数改变监控模块所在进程空间的可执行属性,最终 由dlopenO函数执行库函m_init〇运行监控模块;
[0019] 步骤1.3:监控模块被注入关键系统进程中运行之后,W修改当前进程全局对象列 表的方式,对1化binder. so库中的ioctl()函数进行HOOK,实现对An化oid系统范围内应用 行为的监控与拦截,至此完成对监控模块的初始化;
[0020] 步骤2:收集被检应用情境信息,其具体实现包括W下子步骤:
[0021 ]步骤2.1:获取系统实时信息,包括:
[0022]①获取应用执行的ARM指令,当前寄存器的值,找空间布局;若当前ARM指令为R0P 攻击的关键指令,包括mov lr,pc指令,跳转指令b,W及切换指令集的跳转指令bx,保存返 回地址的跳转指令blW及切换数据集并保存返回地址的跳转指令blx时,调用R0P检测模 块,判断是否发生ROP攻击;
[0023] ②获取应用程序执行时硬件事件的值,并实时检测硬件事件的值是否存在异常;
[0024] ③在R0P攻击发生时,获取问题应用已加载的模块、加载模块的名称、内存基址、长 度、W及导出函数表,使用函数调用返回地址偏移进行遍历和匹配,定位到产生漏桐的模块 名、函数名和相对于函数首址的偏移;
[0025] ④在R0P攻击发生后,监控、拦截与记录应用的敏感行为;
[0026] 步骤2.2:获取用户预定义,即指用户维护的白名单:对于白名单应用,对其敏感行 为不进行拦截,也不收集其情境信息;
[0027] 步骤3:R0P攻击检测,分析情境收集模块中获得的ARM指令及相关的情境信息,进 而分析应用程序的控制流和数据流,检测R0P攻击的发生;其具体实现包括W下子步骤:
[0028] 步骤3.1:跳转异常检查;
[0029] 通
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1