[发明专利]基于污点分析的Android组件间通信数据流检测方法在审
申请号: | 202210059722.9 | 申请日: | 2022-01-19 |
公开(公告)号: | CN114077737A | 公开(公告)日: | 2022-02-22 |
发明(设计)人: | 金正平;郭一卿;秦素娟;时忆杰;温巧燕;李明柱;张胜;陈飞;陈静华 | 申请(专利权)人: | 南京明博互联网安全创新研究院有限公司;北京邮电大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 田凌涛 |
地址: | 210000 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 污点 分析 android 组件 通信 数据流 检测 方法 | ||
本发明涉及基于污点分析的Android组件间通信数据流检测方法,采用全新设计逻辑,首先针对Android应用,获得包含显式Intent或隐式Intent的ICC链接;然后针对ICC链接,通过代码植入方式修改ICC链接,构成ICC测试链接进行执行,获得所对应两组件彼此内部实现通信连接的待处理ICC链接;最后构建全部待处理ICC所涉及各组件间的内部通信连接,执行数据流分析,实现待测Android应用中组件间的数据流分析;如此考虑应用组件间通信连接进行数据流分析,高效准确实现组件间通信检测,为Android应用组件间污点分析提供了更好的效果。
技术领域
本发明涉及基于污点分析的Android组件间通信数据流检测方法,属于应用组间数据流通信检测技术领域。
背景技术
在过去十年中,人们对移动应用的依赖急剧增加。根据全球数字报告数据,2018年用户平均每天花费在移动设备上的时间达到3个小时,移动应用市场蓬勃发展并不令人意外。中国移动互联网的发展也在全球排名前列。截至2018年12月,我国手机网民规模达8.17亿,全年新增手机网民6433万。系统本身迅速发展的过程中,Android系统上的安全问题一直备受瞩目。数据显示,从2012年到2018年,Android平台的恶意程序数量增长迅猛。截至2018年第三季度末,G DATA统计数据显示在Android系统发现超过320 万个新的恶意样本,平均每天发现超过11000个新的恶意软件样本。2017年,通过国家互联网应急中心自主捕获和厂商交换获得的移动互联网恶意程序数量达253万余个,同比增长23.4%。综上所述,在Android设备占有率如此之大的情况下,Android应用的漏洞也越来越多,造成的威胁越来越大。因此,对上市前的Android应用进行漏洞检测是十分迫切和必要的。
Android恶意软件检测技术可以分为三类:静态检测、动态检测和混合检测。静态分析在不执行应用程序的情况下检测漏洞,主要有基于规则或模板的分析、代码相似性的检测、基于符号执行的分析和静态污点分析等。基于规则或模板的分析就是说需要有人类专家根据每个漏洞的特点,手动的制定一些规则,当应用或代码满足某些条件时,就能够判定为它含有或者不含有某种漏洞。代码相似性检测则是从代码层面进行判断,可以以代码语句、方法、类以及组件为粒度来对比某个应用与所含漏洞的应用的相似性,根据相似性判断该应用是否包含漏洞。静态污点分析是指在不运行、且不修改代码的前提下,通过分析程序变量间的数据依赖关系来检测数据能否从污点源传播到污点汇聚点。Android应用具有其自身的生命周期,在应用运行的不同时间会调用对应的回调方法。因此,一个有效的静态检测工具必须能够分析应用的控制流,并对生命周期进行精确建模。不精确的生命周期建模将导致丢失或掩盖重要的数据流。
污点分析可以用三个概念source、sink和sanitization来表示。其中,source表示污染源点。某些操作和函数具有一个域,该域是其操作数或参数的类型域的子集。当实际值超出定义的域时,结果可能是不确定的。如果操作数或参数的值可能在使用该值的操作或函数的域之外,并且该值是从程序的任何外部输入派生的(例如命令行参数,系统调用返回的数据或共享内存中的数据),则该值被污染,其来源被称为污染源。被污染的数据只能是一个变量值,而不能是操作数或参数。在某些情况下,相同的操作数或参数可以沿不同的路径保存有污染或无污染的值。
Sink表示污染汇聚点。Source经过数据依赖的传播或控制依赖的传播后,通过函数发送或泄露到外部,则该函数叫做sink点。
Sanitization表示消毒处理,指的是污点数据经过加密或混淆函数的处理后,变的不可被外界识别,则该数据的传播不会再对系统造成伤害。要从值中删除污点,必须对值进行消毒处理以确保其在其流入的任何受限接收器的定义域中。通过替换或终止来执行消毒。在替换中,将域外的值替换为域内的值,然后使用域内的值代替原始值继续进行处理。终止时,程序逻辑通常在检测到超出域的值时终止执行路径,通常是通过分支使用该值的任何代码来实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京明博互联网安全创新研究院有限公司;北京邮电大学,未经南京明博互联网安全创新研究院有限公司;北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210059722.9/2.html,转载请声明来源钻瓜专利网。