移动平台应用软件隐私威胁与保护
2016-12-16张源
移动安全
移动平台应用软件隐私威胁与保护
张源复旦大学系统软件与安全实验室副主任
输入类的隐私威胁,是移动平台隐私威胁的重灾区。目前的方法很难有效地保护用户输入的隐私,核心困难在于它没有办法系统化地识别哪些隐私数据是用户输入的隐私。
移动平台上,用户输入的信息是隐私数据的主要来源!
由于历史信息的泄漏,攻击者可以进行精准攻击。在绝大部分情况下,被泄漏的这些地址信息其实是用户由于一些业务的需求,主动地输入到一些网站或者App,而这些App或者网站并没有保护好这些隐私。在移动平台上,这种用户输入的隐私是非常普遍的情况。我们通过交互不断提供一些隐私给App,从而得到App更好的服务。所以我们认为在移动平台上,针对用户输入的隐私与否将是隐私保护的重要区域。
在移动平台上,有三种比较主流的用户输入信息,账号信息、地址信息,资金账户信息等,这些都是用户特别私密的信息。这类数据有什么样的特点呢?我们发现它至少有三个方面的特点。首先,数据格式是特定的,账户就是一个密码,地址就是省、市、街道详细地址,在结构上是不一样的,所以没办法通过输入看出来。第二,每个App都有自己的界面和函数,去获取这样的数据。第三,用户输入的数据,它的获取形式是多样的,有些可能通过输入框,有些是让用户去选。那么,该怎么保护它呢?
目前,在隐私保护方面的工作主要分为两类:第一类隐私监测的范畴,通过动静态的分析过程,跟踪隐私在App过程的流转,一旦发现被不安全发送出去了会告诉用户。第二类是网络控制机制,通过操作系统和其他手段设置App访问隐私数据的模式,通过这个框架,基于这个规则去控制程序。
这两个工作有一个统一的特点,它们大部分主要通过一些API获得系统内件。分析之前的特点,这种工作并没有直接保护用户输入的隐私,因为用户输入的隐私不是监管过程。那是不是说这些系统工作完全没有办法用于保护数据呢?现有工作主要的问题在于无法识别哪些是用户输入的隐私数据。在移动平台上针对用户输入隐私数据的保护而言,哪些数据是用户输入的隐私,这是非常重要的问题。
同时,在保护这些隐私方面,必须识别出来这些App到底有哪些输入的隐私,通过哪些控件输入给App,这样才能更好地保护这类隐私。
我们主要设计了自动化的方法,能够识别一个App中到底会要求用户输入哪些数据,到底通过哪些控件来输入隐私数据。基于这样的工作,同时还设计了一个轻量级的隐私数据保护,防止中间人的攻击。
希望通过识别隐私的控件,更加精确地识别哪些控件是要求我们输入隐私的。我们发现在App中输入信息有很多途径,比如说下拉菜单是一种方式,针对开发者的组件也是一种方式,可以通过类型简单地把输入和非输入区分出来。
核心的思路是希望基于这个程序,发现访问控件文本的行为到底是不是在获取用户输入的一些文本。在图1中,左侧是一个输入信用卡的卡号界面,右边是对应的代码,我们进行了分析,发现这个控件是一个隐私相关控件,它在这个地方会得到应用。它有一个函数,在addcardlistener的框架里面,会有一个文本。由此,我们获取的这样一种特征,作为识别一个控件到底是不是接收、输入的判断标准,从而比较好地将哪些只显示隐私文本的相关控件去除掉。
试验选取的数据是来自谷歌应用商城的17425个应用。在这17000个应用中,有35个类别都会收集用户隐私。因为App收集的数据常常是出于业务的需求,这在App当中也是非常普遍的,之前并没有很好的方法对它进行保护。针对用户账号这类的UIP数据,比例较高的主要是社交应用,跟天气相关的App等;针对地理位置的隐私信息,在天气、出行、搜秀这些App当中比例比较高;针对支付类的信息,这类信息的隐私信息搜集很高,也是基本符合认知常识的。最终挑选了200个应用,在十个类别中,对精确率进行了衡量。效果很好,系统能够比较准确地识别到93.6%的UIP控件,针对所有可能的UIP控件识别率达到了90.1%的水平。
(本文根据复旦大学系统软件与安全实验室副主任张源在中国互联网安全大会ISC2016的分论坛“移动安全发展论坛”上的演讲内容整理。)