首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

安卓应用升级的安全性补丁检测方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:上海交通大学

摘要:一种安卓应用升级的安全性补丁检测方法,通过还原升级前后的安卓应用程序结构层次和反汇编代码特征值,在升级前后安卓应用程序之间进行函数匹配,对更新补丁所在函数的所有调用点进行数据流分析,建立更新补丁所在的升级前后的两个版本函数的控制流图,在控制流图上提取与可变参数有关的数据依赖和控制依赖并根据依赖关系得到安全性检测结果。本发明能够通过对升级前后版本的安卓应用进行差分分析获得程序分析中存在的安全相关的补丁,达到减少安全审计人员分析的目标和学习新的漏洞模式的目标。大幅度降低安全工作者分析的目标。能够抵御常见程序混淆,且不需要对源代码进行侵入式改变。不需要依赖安全工作者的经验定义安全补丁模式,能够定位到更加复杂的安全性补丁。

主权项:1.一种安卓应用升级的安全性补丁检测方法,其特征在于,通过还原升级前后的安卓应用程序结构层次和反汇编代码特征值,在升级前后安卓应用程序之间进行函数匹配,对更新补丁所在函数的所有调用点进行数据流分析,建立更新补丁所在的升级前后的两个版本函数的控制流图,在控制流图上提取与可变参数有关的数据依赖和控制依赖并根据依赖关系得到安全性检测结果;所述的结构层次包括:包的层次结构、包与类的包含关系、类和嵌套类的所属关系、类包含的成员变量字段和成员方法;所述的数据流分析包括:步骤201.缓存得到的标记为变化的函数并将其标记为污点槽函数,在应用程序的每个函数内进行污点分析,具体为:建立以语句为单个节点的函数控制流图,遍历控制流图的每个节点:当语句包含函数参数使用、成员变量使用或者外部函数调用中的任一,并且该语句具有左值,则将语句的左值变量标记为被污染值,否则分析语句的右值表达式是否包含被污染值的使用,如果右值表达式使用到被污染值则将左值视为被污染,否则将左值定为未被污染;当节点包含对事先定义的污点槽函数的调用,则保存当前槽函数使用参数的污点状态;步骤202.按照槽函数的调用点对记录的结果聚合并输出同一个调用点的槽函数对应所有被污染的参数的索引以及调用点所在的函数,具体为:确定相同调用点的槽函数的所有参数是否被污染;对于同一个调用点,合并不同的污染路径得到的污染结果;所述的安全性检测结果,通过以下方式得到:步骤301.提取更新后的版本中能够被污点传播的槽函数,当其在旧版本中对应的函数是同样能够被污点传播的槽函数,对两个槽函数的调用点进行匹配,确认其调用点所在的函数是否具有匹配关系,即为相同或者变化的函数;当存在匹配关系,则视为函数对的此调用点和其污染状态之间具有匹配关系,进行下一步分析;否则不会使用此污染状态的匹配进行下一步的分析;步骤302.建立更新前后两个版本的控制流图,控制流图的节点为一条指令,在控制流图上对调用点能够匹配的函数对以及该调用点匹配的污点状态进行函数内的依赖提取;分别对两个函数的控制流图进行遍历,在控制流图上标记所有与被污染参数具有直接和间接数据依赖关系的节点,并记录这些节点所有的控制依赖节点,按照函数的基本块合并控制依赖和数据依赖结果;步骤303.对调用点能够匹配的函数进行基于控制流图结构及其基本块指令的匹配,具体为:先将步骤302中使用的单条指令级别的控制流图转换为以基本块为节点的控制流图,分别对两个函数的控制流图进行遍历,使用控制流图上基本块的遍历顺序和基本块包含的特征指令作为基本块的特征,在两个函数之间进行基本块的匹配;步骤304.生成安全性检测结果,具体为:对比匹配的基本块所涉及到的数据依赖和控制依赖,当函数对之间的匹配的基本块之间提取的所有控制依赖和数据依赖都相同,则将该函数的更新视为非安全补丁;当不同时,则视为安全性补丁。

全文数据:

权利要求:

百度查询: 上海交通大学 安卓应用升级的安全性补丁检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。