手机用户当心!拍照前,您的照片或许已被窃取

  最近,研究人员发现了一种针对安卓手机的新型用户隐私窃取攻击方案RRA(即手机资源竞争攻击,Resource Race Attacks)。这种攻击并不直接窃取存储在手机上的隐私信息,而是在用户使用手机(例如使用摄像头拍照)的前后短时间内,在后台通过竞争获取相应资源(例如摄像头),在用户不知不觉中窃取用户正在处理的(例如用户想要拍摄的照片,扫描的二维码等)全部或者部分隐私信息。

  针对摄像头的攻击

  用户通过摄像头获取的数据常常会包含隐私信息(例如扫描的二维码,拍摄的保密信息/相片等)。研究发现,恶意软件可以在用户拍照前短时间内、拍照中或者拍照后短时间内,通过竞争抢夺摄像头,并迅速拍照来获得这些隐私数据。经过精巧的设计,用户几乎感觉不到任何异样。

  

  视频1:针对摄像头攻击举例1

  在视频1的视频中,用户在已被安装了恶意软件的手机上使用某浏览器软件扫描一张高铁票中的二维码。当浏览器刚刚识别出高铁票中的二维码时,恶意软件已经“窃取”了摄像头并拍摄了10张(实验中设定数值)照片,这些照片的清晰度和用户使用浏览器可以拍到的清晰度几乎无差别。从上述视频中可以看出,在攻击期间,用户屏幕几乎没有什么变化。

  

  视频2:基于摄像头攻击举例2

  视频2的场景,为两个QQ用户通过二维码支付红包(“面对面红包”)。用户1出示二维码,用户2通过QQ扫描获取了0.84元红包。但在此期间,恶意软件已经通过窃取摄像头拍摄了用户1 的二维码信息。(从视频中拍摄的照片信息“已领0个/共2个”可以看出,恶意软件的拍摄是在用户2获取红包之前完成的。)之后,恶意用户“自动分析”二维码,并获取0.16元红包(视频中使用第三个手机上的QQ软件模拟了自动攻击过程,其中第三个手机的QQ和用户1的手机并非QQ好友关系)。

  该攻击在微信(手机版)上同样可以进行(通过“面对面红包”)。不过微信手机版在2018年4月左右采取了动态二维码(即某一用户扫码后变换一张二维码)。尽管这样,上述攻击仍然可以成功。(因为上述攻击有前、中、后攻击三种类型,动态二维码的使用仅仅使得 “后攻击”受影响较大。)

  在我们的日常生活中,有很多类似上述实验的场景。上述攻击的存在,也给我们带来了极大的隐私泄露风险,甚至进一步的危害。

  【注:1) 以上攻击中,恶意软件只在后台运行,不需要实时监控摄像头的使用,仅通过安卓提供的回调被动实现;2) 最新的安卓P等系统中,安卓系统禁止软件在后台使用摄像头等资源,但是在上述攻击中,恶意软件创建了一个临时的前台“APP”,不仅绕过了“后台”无法使用摄像头的限制,而且达到了抢夺摄像头的目的。】

  针对触摸屏的攻击

  研究人员发现的第二个攻击,是抢夺用户触摸屏输入。安卓手机允许在正常运行的APP上面显示一个悬浮框(类似于微信视频中默认在右上方显示自己的那个小方框),且用户对该悬浮框的点击等事件,可以被悬浮框“下面”的APP所知道。2017年,有研究人员通过精心布置的多个悬浮框,直接获取了用户的屏幕触摸输入(即触摸位置)。这个“缺陷”已经被官方修复了,不过,这个直接获取用户触摸位置的缺陷,正常APP(如输入法)是可以通过防御手段来发现的。

  研究人员此次发现的,是一种基于RRA攻击间接分析并合成获取用户密码的攻击。该攻击在正常手机软件层面是无法感知到的。其基本原理是,恶意软件在用户每次触摸输入时,仅仅通过悬浮框窃取用户多次触摸输入中的一次输入,并消耗掉此次输入,从而使得正常APP无法感知到用户的触摸输入,更无法知道用户是否触摸了某个悬浮框(除非正常APP也设置了悬浮框来探测其它悬浮框的存在)。对于用户来说,只感觉到了某次触摸没有被手机捕获,需要再次触摸输入。

  由于每次攻击,恶意软件并不会连续捕获用户的触摸,从而不会引起用户的怀疑,实际上,在触摸屏上偶尔触摸失效(即没有被手机识别)或者触摸错误是很常见的事。在此基础上,恶意软件如果在一定期间内(例如一周内)多次发起这种攻击时,在很大概率上就会捕获密码中的不同部分,并结合时间顺序恢复密码。这种攻击在支付宝等需要每次支付都需要输入6位数字(支付密码)的场景中,非常容易实现密码窃取。

  

  视频3:窃取用户输入中的”w”字母

  视频3中显示恶意软件窃取用户输入密码“password”中的“w”字母(用户触摸了两次“w”键,第一次被恶意软件消耗掉了)。在已知键盘布局的情况下,可以很容易通过时间序列来合成相应密码。图4显示了2种在不同攻击频率下对密码“password”的合成情况,均准确合成该密码。

  图4:两次不同攻击频率下对密码“password”的合成(注:X坐标上不在密码中的字母已被省略)

  预防措置

  研究人员通过对1000个开源APP的分析,发现使用摄像头和需要密码输入的很多APP中没有主动针对RRA攻击的预防手段。

  针对上述多个攻击,研究人员从移动APP开发者、用户、安卓设计者等角度提出了预防措施。此外,研究人员也将上述攻击报告给了安卓官方。按照安卓官方的标准,这种攻击是由于用户授予恶意软件相关权限导致的。但由于安卓手机权限很多,且各种APP都会申请和其功能不相关的大量权限,导致用户很难判断哪些软件应该赋予哪些权限。例如,本文中提到的摄像头权限,只要有使用摄像头的功能(例如扫码),就需要这种权限。基于此,我们希望安卓官方可以在安卓系统上做出相应改进,从设计上阻止本文中针对用户隐私的RRA攻击。

  本研究由中国科学院软件研究所(计算机科学国家重点实验室、软件智能分析协同创新中心)联合香港理工大学完成。相关成果将在2020年2月正式发表于第27届SANER国际会议(IEEE International Conference on Software Analysis, Evolution and Reengineering),文章标题“Resource Race Attacks on Android”。

  作者:蔡彦,唐宇田,李海成,于乐,周昊,罗夏朴,和亮,苏璞睿

  来源:中国科学院软件研究所

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();