本发明涉及Android查漏的技术领域,尤其涉及到一种Android应用隐私泄露漏洞检测方法。
背景技术:
在目前的Android隐私泄露漏洞检测方法中,静态污点分析是最常用且最有效的方法。首先对android应用进行反编译,获取其源代码或是中间代码,并通过识别代码中存在的源点(source)与锚点(sink)来判断是否进行下一步的检测操作,这里的源点与锚点的确定因检测问题而异。如检测应用中的隐私泄露问题,则这里设置源点为获取敏感数据的API,如getDeviceId()函数;而锚点则为将敏感数据发送到该应用之外的操作,如发送短信sendtextmessage()函数。在确定源锚点之后,即可使用静态污点分析检测是否存在一条从源点到锚点的路径,若存在则可判定该应用有隐私泄露问题。
Android应用由4类基本组件构成,包括Activity(活动),Service(服务),Broadcast receiver(广播接收器),content provider(内容提供器)。Intent是Android应用组件间通信(ICC)的主要媒介,通过startactivity(intent),startservice(intent)等ICC方法可以启动Activity、Service,或者可以向Broadcastreceiver发送广播消息。
Intent包含显式和隐式两种。显式Intent指定了接收组件,因此Intent会发送到某个指定的组件;而隐式Intent的接收组件是满足条件的所有组件,即可以有多个接收组件,由android系统确定哪个应用可以接收该Intent。
通常对Android应用隐私泄露漏洞的检测,一般在同一个组件内进行(源点和锚点在同一组件之内);而对于组件间通信造成的隐私泄露问题(源锚点在不同组件当中),目前也局限于同一个应用内组件间检测[1],且是对使用显式Intent所确定的目标接收组件检测,对跨应用间的隐私泄露问题与使用隐式intent造成的隐私泄露问题研究较少。
[1]L Li,P Mcdaniel,A Bartel,TF Bissyande,J Klein,et al.IccTA:Detecting Inter-Component Privacy Leaks in Android Apps.IEEE