一种基于上下文信息的Android组件间隐私泄露行为识别方法及系统技术方案

技术编号:16102299 阅读:34 留言:0更新日期:2017-08-29 22:44
本发明专利技术公开了一种基于上下文信息的Android组件间隐私泄露行为识别方法及系统。本方法为:1)从Android应用程序中提取组件间通信参数信息;2)根据提取的组件间通信参数信息匹配该Android应用程序中相互通信的两个组件,形成组件调用链;3)根据所述组件调用链信息对Android应用程序执行静态插桩,连接相互通信的两个组件;4)对插桩后的应用程序代码执行静态污点分析,获取组件间隐私信息传输相关的行为路径,并提取所述行为路径上的上下文信息;5)根据得到的行为路径上的上下文信息,判断组件间隐私信息传输行为是否为隐私泄露行为。本发明专利技术大大提高了组件间通信分析的准确性。

【技术实现步骤摘要】
一种基于上下文信息的Android组件间隐私泄露行为识别方法及系统
本专利技术属于移动平台隐私泄露检测
,具体涉及一种Android应用程序组件间通信导致的隐私泄露行为识别方法及系统。
技术介绍
随着移动终端设备的发展,智能手机已经成为人们日常生活中必不可少的一部分。在当前流行的智能终端操作系统中,Android系统是市场占有率最高的系统。由于Android应用程序开发的低门槛性,以及应用市场审查力度不足等原因,导致第三方应用市场上存在大量的漏洞应用程序以及恶意应用程序。手机设备上存储着大量的用户隐私数据,由于漏洞及恶意应用程序的存在,用户的隐私数据在有意或无意的情况下被泄露,严重威胁着Android手机用户的隐私安全。为了减缓Android应用程序中存在的隐私泄露问题,一些静态分析方法被提出。部分静态分析方法只针对单个组件,分析组件内的隐私泄露行为,而一些隐私泄露行为是由组件间通信导致的。Android应用程序开发者通过开发不同的组件来实现应用程序丰富的功能,此外Android系统提供了组件间通信机制,使应用程序不同组件之间进行频繁交互。但是这种组件间通信(ICC)机制也会被恶意应用程序利用,从而导致组件间的隐私泄露。为了减缓组件间通信导致的隐私泄露行为,一些研究人员对Android应用程序执行了ICC分析,但仍存在不足之处,比如,部分已有研究没有把源组件和目的组件链接起来执行数据流分析、考虑组件不全面等。此外,敏感信息的数据流可能是合法的也可能是恶意的,这些已经提出的方法并没有去区分合法的隐私传输行为和恶意的隐私泄露行为。为了准确的识别Android应用程序中组件间通信导致的隐私泄露行为,需要在降低误报率的同时,区分合法和恶意的隐私传输行为。本专利技术提出了一个静态污点分析工具,检测组件间的隐私传输行为,并基于隐私传输行为路径上的上下文信息,识别组件间通信导致的恶意隐私泄露行为。
技术实现思路
针对Android应用程序组件间通信导致的隐私泄露行为,本专利技术提出了一种基于上下文信息的Android组件间隐私泄露行为识别方法及系统。本专利技术通过静态解析组件间通信参数,利用概率模型匹配通信组件,提高组件间通信分析的准确性;通过代码插装技术,链接通信组件,并执行静态污点分析,检测应用程序存在的隐私泄露行为。此外,当前大部分静态行为分析方法只进行了隐私相关行为的检测,而没有加以区分,隐私相关的行为并非一定是隐私泄露行为,为了识别组件间通信导致的隐私泄露行为,本专利技术执行了数据流和控制流分析,提取了敏感行为路径的下文信息,并提出了基于上限文信息的策略,识别恶意的组件间通信导致的隐私泄露。本专利技术通过对Android应用程序反编译,提取组件间通信参数;利用概率模型以及组件间通信参数匹配相互通信的两个组件,形成组件通信链;根据组件通信链,对应用程序源码进行插桩,实施静态污点分析,获取隐私传输相关的行为。通过提取行为路径上的上下文信息,根据基于上下文信息的策略,识别组件间通信导致的隐私泄露行为。具体来说,本专利技术采用的技术方案如下:一种基于上下文信息的隐私泄露行为识别方法,其步骤包括:1)Android应用程序反编译,提取组件间通信参数信息;2)根据步骤1)得到的组件间通信参数信息,匹配相互通信的两个组件,构造组件调用链;3)根据步骤2)得到的组件调用链,对Android应用程序执行静态插桩,连接相互通信的两个组件,进一步对插桩后的应用程序代码执行静态污点分析,获取组件间隐私信息传输相关的行为路径;4)根据步骤3)得到的隐私传输相关的行为路径,提取行为路径上的上下文信息;5)根据步骤4)得到的行为路径上的上下文信息,判断隐私传输行为是否属于隐私泄露行为。进一步的,步骤1)通过soot工具将Android应用程序反编译生成jimple文件,静态分析jimple文件,获取组件间通信相关的参数信息,包括Intent,IntentFilter等信息。进一步的,步骤2)根据提取的组件间通信参数信息,静态匹配相互通信的两个组件,形成组件调用链,并将调用链存储在数据库中。进一步的,步骤3)根据构造的组件调用链信息,对Android应用程序执行静态插桩,连接相互通信的组件,执行静态污点分析,获取隐私信息传输相关的行为路径。进一步的,步骤4)通过数据流和控制流分析,获取隐私传输相关地行为路径上的上下文信息,上下文信息包括隐私相关的函数、相应的权限、触发事件、环境参数等。其中,利用已有工具Flowdroid的分析结果,获取行为路径上隐私相关的函数;利用已有研究PScout中提供的函数及相应的权限的映射,获取隐私相关的函数对应的权限;通过记录所有调用隐私相关函数的入口函数,并根据用户是否参与,可以将触发事件分为UI事件(需要用户参与)和非UI事件(无需用户参与);已知隐私相关的函数调用和相应的触发事件,通过控制流分析,获取一系列控制隐私相关函数调用的环境参数。进一步的,步骤5)中利用隐私传输行为路径上的上下文信息,分析隐私信息的传输行为,判断隐私传输行为是否属于组件间隐私泄露行为。一种采用上述方法的隐私泄露行为识别系统,其包括:应用程序反编译模块,用于将Android应用程序反编译生成jimple文件,并静态分析jimple文件,获取组件间通信相关的参数信息;调用链构造模块,用于静态匹配相互通信的组件,构造组件调用链,并存入数据库中,用于应用程序组件插桩;静态污点分析模块,用于对Android应用程序执行组件间静态污点分析,获取组件间隐私传输相关的行为路径;上下文信息提取模块,用于提取隐私传输行为路径上的上下文信息;ICC隐私泄露行为识别模块,利用隐私传输行为路径上的上下文信息,分析隐私信息的传输行为,判断隐私信息传输行为是否属于组件间隐私泄露行为。本专利技术的优点和积极效果如下:本专利技术针对Android应用程序中组件间通信导致的隐私泄露行为进行分析,通过对Android应用程序反编译,提取组件间通信参数,并利用概率模型以及组件间通信参数匹配相互通信的两个组件,形成组件通信链;根据组件通信链,对应用程序源码进行插桩,实施静态污点分析,获取组件间的隐私传输相关的行为。此外,Android应用程序中的隐私传输行为并不一定是恶意行为,本专利技术对获取的组件间隐私传输相关的行为进行了区分,通过提取行为路径上的上下文信息,识别组件间通信导致的隐私泄露行为。附图说明图1是本专利技术的一种基于上下文信息的Android组件间隐私泄露行为识别方法的模块组成示意图。具体实施方式下面通过具体实例和附图,对本专利技术做进一步说明。如图1所示,一种基于上下文信息的Android组件间隐私泄露行为识别方法,其步骤包括:1、应用程序反编译模块本专利技术基于jimple文件,执行静态分析,获取Android应用程序组件间通信相关的参数信息。具体地,本实施例利用soot工具实现Android应用程序反编译。2、组件调用链构造模块一条组件间通信链是指一个源组件和一个目的组件之间连接。源组件代码中包含ICC函数,并向目的组件发送Intent消息。Intent消息描述了目的组件的各类信息。为了匹配相互通信的两个组件,Android系统在运行时根据Intent的参数信息进行Intent解析,匹配本文档来自技高网
...
一种基于上下文信息的Android组件间隐私泄露行为识别方法及系统

【技术保护点】
一种基于上下文信息的Android组件间隐私泄露行为识别方法,其步骤为:1)从Android应用程序中提取组件间通信参数信息;2)根据提取的组件间通信参数信息匹配该Android应用程序中相互通信的两个组件,形成组件调用链;3)根据所述组件调用链信息对Android应用程序执行静态插桩,连接相互通信的两个组件;4)对插桩后的应用程序代码执行静态污点分析,获取组件间隐私信息传输相关的行为路径,并提取所述行为路径上的上下文信息;5)根据得到的行为路径上的上下文信息,判断组件间隐私信息传输行为是否为隐私泄露行为。

【技术特征摘要】
1.一种基于上下文信息的Android组件间隐私泄露行为识别方法,其步骤为:1)从Android应用程序中提取组件间通信参数信息;2)根据提取的组件间通信参数信息匹配该Android应用程序中相互通信的两个组件,形成组件调用链;3)根据所述组件调用链信息对Android应用程序执行静态插桩,连接相互通信的两个组件;4)对插桩后的应用程序代码执行静态污点分析,获取组件间隐私信息传输相关的行为路径,并提取所述行为路径上的上下文信息;5)根据得到的行为路径上的上下文信息,判断组件间隐私信息传输行为是否为隐私泄露行为。2.如权利要求1所述的方法,其特征在于,所述上下文信息包括隐私相关的函数、相应的权限、触发事件、环境参数。3.如权利要求2所述的方法,其特征在于,获取所述行为路径上的上下文信息的方法为:利用工具Flowdroid的分析结果,获取行为路径上隐私相关的函数;利用函数及相应权限的映射,获取隐私相关的函数对应的权限;记录所有调用隐私相关函数的入口函数,如果该入口函数为需要用户参与执行的函数,则将触发事件判定为UI事件,否则将触发事件判定为非UI事件;根据隐私相关的函数调用和相应的触发事件,通过控制流分析,获取一系列控制隐私相关函数调用的环境参数。4.如权利要求2或3所述的方法,其特征在于,所述步骤5)中,判断组件间隐私信息传输行为是否为隐私泄露行为的方法为:如果组件间隐私信息传输行为的触发事件属于UI事件,则认为它是一个敏感行为而不是隐私泄露行为;如果组件间隐私信息传输行为的触发事件属于非UI事件,则根据所述环境参数进行判断:如果存在一个触发事件actEvent∈nonUIevent,且该触发事件actEvent对应的控制条件中存在参数Stmtcon属于环境参数attrEnvs,则该组件间隐私信息传输行为判定为隐私泄露行为;其中,actEvents代表该组件间隐私信息传输行为中source函数和sink函数的所有触发事件的集合,nonUIevent代表一条隐私传输行为路径上的所有非UI事件的集合。5.如权利要求1或2或3所述的方法,其特征在于,所述步骤1)中,通过对Android应用程序进行反编译后进行静态分析,提取组件间通信参数信息。6.一种基于上下文信息的Android组件间隐私泄露行为识别系统,其特征在于,包括应用...

【专利技术属性】
技术研发人员:王蕊张道娟郭电杰操晓春
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京,11

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

1