[发明专利]一种基于情境的ROP攻击检测系统及方法在审

专利信息
申请号: 201510874221.6 申请日: 2015-12-02
公开(公告)号: CN105488397A 公开(公告)日: 2016-04-13
发明(设计)人: 王宇飞;傅建明;赵婷;张波;曾思成;李晓龙;唐亮;刘欣;孙辰军;李俊娥 申请(专利权)人: 国网智能电网研究院;国家电网公司;国网河北省电力公司;武汉大学
主分类号: G06F21/55 分类号: G06F21/55;G06F21/56
代理公司: 武汉科皓知识产权代理事务所(特殊普通合伙) 42222 代理人: 魏波
地址: 102209 北京市昌平*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 情境 rop 攻击 检测 系统 方法
【权利要求书】:

1.一种基于情境的ROP攻击检测系统,其特征在于:包括用户交互模块、 注入器模块、监控模块、情境收集模块、ROP攻击检测模块与记录模块;

所述用户交互模块提供检测系统与用户交互的接口,在进行ROP攻击检测 之前可以通过用户交互模块指定应用检测范围,当检测到ROP攻击时,用户根 据交互模块查验检测结果与相关情境信息,根据结果维护应用白名单;

所述注入器模块用于将监控模块注入系统关键进程,初始监控模块,监控应 用的初始启动过程;

所述监控模块用于监控应用的敏感行为,当ROP攻击发生时,对其敏感行 为进行拦截;

所述情境收集模块用于收集被检应用的情境信息,当触发关键点时,调用 ROP攻击检测模块判断是否发生ROP攻击,当发生ROP攻击时,继续收集问题 应用的情境信息;反馈监控模块,对问题应用的敏感行为进行拦截;调用记录模 块,对情境信息进行记录;

所述ROP攻击检测模块用于分析情境收集模块获得的情境信息,根据预先 配置的ROP攻击检测策略判断是否发生ROP攻击,当检测到应用进程受到ROP 攻击时,调用记录模块,对ROP攻击发生的相关情境信息进行记录;检测到ROP 攻击时反馈情境收集模块,进一步收集相关情境信息;

所述记录模块用于记录ROP攻击检测结果和相关的情境信息,形成ROP攻 击检测记录;

用户通过用户交互模块同步数据库查验检测记录,维护生成Android系统应 用的白名单,ROP攻击检测记录和应用白名单被统一保存在数据库当中。

2.根据权利要求1所述的基于情境的ROP攻击检测系统,其特征在于:还包 括性能监视单元,对硬件事件的值进行读取,用于检测ROP攻击;

所述性能监视单元包括事件选择模块、性能计数器模块和中断模块;事件选 择模块决定需要记录的性能事件;性能计数器模块对相应性能事件的值进行记 录,每当有相应的事件发生则对应的性能计数器的值将加一;中断模块主要负责 何时读取性能计数器的值。

3.一种基于情境的ROP攻击检测方法,其特征在于,包括以下步骤:

步骤1:注入系统关键进程,其具体实现包括以下子步骤:

步骤1.1:注入器模块查找系统中与敏感行为相关的关键系统进程的PID号; 所述关键系统进程具体是指:与Android系统各种服务相关的system_server,与 通话、短信等业务相关的com.android.phone,与录制视频、语音相关的 /system/bin/media_server;

步骤1.2:注入器模块通过ptrace()函数attach以上四个关键系统进程,加载 监控模块到其进程空间,调用mprotect()函数改变监控模块所在进程空间的可执 行属性,最终由dlopen()函数执行库函数_init()运行监控模块;

步骤1.3:监控模块被注入关键系统进程中运行之后,以修改当前进程全局 对象列表的方式,对libbinder.so库中的ioctl()函数进行HOOK,实现对Android 系统范围内应用行为的监控与拦截,至此完成对监控模块的初始化;

步骤2:收集被检应用情境信息,其具体实现包括以下子步骤:

步骤2.1:获取系统实时信息,包括:

①获取应用执行的ARM指令,当前寄存器的值,栈空间布局;若当前ARM 指令为ROP攻击的关键指令,包括movlr,pc指令,跳转指令b,以及切换指 令集的跳转指令bx,保存返回地址的跳转指令bl以及切换数据集并保存返回地 址的跳转指令blx时,调用ROP检测模块,判断是否发生ROP攻击;

②获取应用程序执行时硬件事件的值,并实时检测硬件事件的值是否存在异 常;

③在ROP攻击发生时,获取问题应用已加载的模块、加载模块的名称、内 存基址、长度、以及导出函数表,使用函数调用返回地址偏移进行遍历和匹配, 定位到产生漏洞的模块名、函数名和相对于函数首址的偏移;

④在ROP攻击发生后,监控、拦截与记录应用的敏感行为;

步骤2.2:获取用户预定义,即指用户维护的白名单:对于白名单应用,对 其敏感行为不进行拦截,也不收集其情境信息;

步骤3:ROP攻击检测,分析情境收集模块中获得的ARM指令及相关的情 境信息,进而分析应用程序的控制流和数据流,检测ROP攻击的发生;其具体 实现包括以下子步骤:

步骤3.1:跳转异常检查;

通过当前跳转指令所在的地址与其跳转的目的地址之间的差值是否大于给 定阈值来检测ROP攻击,如果是,则认为发生了ROP攻击;

步骤3.2:函数调用异常检查,其具体实现包括以下子步骤:

步骤3.2.1:获取函数调用跳转指令的目标地址开始的基本块;

步骤3.2.2:在基本块的起始部分,提取两条反汇编指令,检查第一条指令是 否为push,操作数中最后一个寄存器是不是lr;对于第二条指令,检查是否为 mov指令,且最后一个操作数为sp;如果全部满足,则是正常的函数调用,退 出检测;如果不满足,则认为是ROP攻击;

步骤3.3:函数返回异常检查,其具体实现包括以下子步骤:

步骤3.3.1:在对应用进行情境收集过程中,情境收集模块创建维护一个影 子栈ShadowStack,当执行函数调用指令时,用于存放函数返回地址;

步骤3.3.2:当检测到应用程序当前执行函数调用指令bl或blx时,将函数 返回地址压入影子栈ShadowStack中;

步骤3.3.3:当检测到当前指令为函数返回的bxlr指令时,分析影子栈顶返 回地址与函数返回控制流跳转目的地址是否一致,如果不一致,则报告为ROP 攻击;

当检测到ROP攻击时,将ROP攻击检测结果、问题应用的相关情境信息与 敏感行为的监控、拦截情况形成检测记录,呈现给用户。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网智能电网研究院;国家电网公司;国网河北省电力公司;武汉大学,未经国网智能电网研究院;国家电网公司;国网河北省电力公司;武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510874221.6/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top