隐私保护研究下的隐私可界定为:隐私是指个体的敏感信息。群体或组织的敏感信息可以表示为个体的公共敏感信息。目前Android隐私泄露方式有以下几种:①网络泄露。这是一种最常见的隐私泄露形式,由于目前大部分的应用都需要联网使用,因此访问互联网的权限调用非常普遍。应用通过网络将隐私信息发送出去并不会引起用户特别注意。②短信泄露。应用在具有发送短信权限的情况下,可以在后台向指定号码发送用户的隐私信息。这种方式不但会泄露用户隐私,而且会造成用户资费消耗。 ③蓝牙泄露。目前Android设备普遍支持蓝牙功能,具有蓝牙权限的应用可以使用蓝牙发送用户的隐私信息。④文件泄露。由于应用在使用时会留下记录文件,其中也包含有用户的隐私信息,因此文件读写的方式同样存在泄露隐私信息的可能。
而隐私窃取行为是指没有获得用户许可的情况下,有意获取用户的隐私信息,可能用于获取某种不当利益。大多数隐私窃取行为按先后顺序包括三个过程:隐私数据窃取、隐私数据传递、隐私数据泄露。一方面,Android系统中涉及隐私数据的功能在Android SDK中都有相应的编程接口,声明权限并调用接口实现相应的功能。由于这些编程接口直接对开发者开放,从而导致了相应的安全风险。另一方面,由于访问用户隐私数据的应用本身的权限和功能是匹配的,黑客可直接攻击这类应用获取用户隐私数据,即访问用户隐私数据的应用更易于遭受恶意代码的攻击。
目前,用于检测用户隐私数据泄露及窃取的方法可分为两类:静态分析方法和动态分析方法。基于静态特征码的分析方法检测速度快,但是仅能检测已知病毒,具有延迟周期。动态分析方法准确度较高,但是性能开销很大,另外也无法覆盖程序中的所有代码路径并查全所有的泄漏路径。因此,这些漏洞自然就会成为黑客和窥探者攻击和利用的痛点,进而对用户隐私安全造成严重的威胁。
首先讨论静态分析方法。最新研究表面可以使用一种基于分析应用程序控制流图(CFG)的静态污点分析技术来检测Android 中的隐私泄漏。静态污点分析技术是一种跟踪敏感数据的数据流分析技术。首先给称为源的私有数据贴上标签(例如返回 GPS 坐标的方法),然后通过静态分析代码来跟踪数据。如果私有数据转到将其发送到应用程序之外的方法,便将其标识为私有数据泄漏,并将从源到接收器的路径标记为检测到的受污染路径。在 CFG 中,受污染的路径意味着它可以从源方法到达接收器方法。因此,隐私泄漏检测在分析应用程序的 CFG 中识别预定义的源和接收器方法之间的路径。
由于要通过在分析的应用程序生成的CFG,从而识别从源方法到接收器方法的路径来检测隐私泄漏,因此精确的CFG是必不可少的。然而,最大的问题使得生成的CFG不精确与Android中的组件间通信(inter-component communication,ICC)方法有关。
基于Android的四大组件对可能产生的泄露进行分析:a)Activity,表示用户界面;b)Service,在后台执行任务;c)Broadcast Receiver,接收来自其他组件或系统的消息;d)ContentProvider,充当应用程序之间共享结构化数据的标准接口。一些特定的 Android 系统方法用于触发组件通信。我们称它们为组件间通信(ICC) 方法。 最常用的 ICC 方法是startActivity方法,它启动一个新的活动。 组件使用Intent在它们之间进行通信。 所有 ICC 方法都以至少一个Intent作为参数。 Intents还可以封装数据,从而在组件之间传输数据。
由于 Android 的组件通信机制,导致无法通过跟踪受污染的数据来检测跨组件污点路径,因为两个组件之间没有真正的代码连接,而是只为组件间通信粘合代码。需要将组件连接在一起,才可以构建一个精确的 CFG,从而能够跨多个组件跟踪受污染的数据。
而另一种思路则是通过流量监控来动态检测恶意应用。通常恶意应用的开发者插入到目标应用中的方式是将正常应用进行反编译,添加上恶意代码后重新打包,并利用安全管理混乱的第三方应用市场进行发布和传播。除了这种反编译后插入恶意代码,恶意应用的伪造方式还可能利用MasterKey扩展实现不改变应用签名的插入文件嵌入。
实际的Android系统流量监控方法,包含以下两种方法:
第一种流量监控的方法, 就是通过及时读取Linux的本地文件信息,监控流量使用实况,监控系统流量使用安全。实践中,由于Android系统的流量信息是被存储在linux的相关内核文件夹/proc/self/net/dev中,因此设计安全软件方面,设置一个数据采集程序,在Android系统运行全程可以时时密切监测采集linux的文件信息,以确保获取精准的Android系统流量监控数据,保障安全软件设计落到实效。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。