常见的黑客攻击手段及如何防范?应用克隆攻击丨大东话安全
编者按:网络空间安全近年来日渐成为公众关注的焦点,中科院之声特意邀请业内专家“大东”开设“大东话安全”专栏,为大家介绍网络空间安全的方方面面。
一、从一个“外卖的秘密”说起
小白:东哥,为了感谢您这么久以来对我的耐心培养和细心教育,我决定!
大东:我咋有种不祥的预感呢,你要干啥?
小白:我要请我帅气的东哥吃个饭,东哥,别客气,所有外卖软件上的所有外卖您随便挑,我请客!
大东:我晕,居然是吃外卖。吃之前,我先考考你,你觉得你手机上的一个外卖软件可以看到你其他外卖软件上你的选择记录和订单记录吗?
小白:额,我觉得应该是看不到的吧,我记得我在手机里设置了应用权限,况且在手机上各个软件看起来好像都不太熟的样子呢!除非,东哥有些特别的方法?
大东:哎呦,小白最近越来越有进步了,回答问题很在点子上呦!相比于传统桌面、服务器操作系统,以安卓、iOS、Windows 10为代表的现代移动操作系统在安全的特点上有了很大的不同。例如,安卓系统的访问控制是基于应用的,在应用之间进行了隔离,每个应用只能访问自身的资源,而无法直接访问同一用户其它应用中的资源。不知,你有没有感觉你电脑上的系统漏洞补丁更新要比手机上频繁的多呢?
手机上多种多样的应用
小白:是哦,听东哥一问,确实感觉是这样的,可是我知道东哥说过,任何软件任何系统都不可能是没有漏洞的!
东哥:与传统软件相比,现代移动操作系统通过应用级权限隔离将攻击者获得代码执行权的收益降到了最低,而移动应用无权改写自身代码这一限制也大大增加了实现长期控制的难度。
所以,如果以传统操作系统的攻防模式去看现代移动操作系统,就会发现虽然漏洞仍然不少,但想通过漏洞达成有意义的攻击目的却很难。
小白:因为不好攻击,所以手机厂商就并不着急修复漏洞啦?
大东:是哦!不过,今天跟你讲的这个网络攻击就是针对这很难实现的移动应用攻击,名字叫做“应用克隆攻击”。
小白:哇哇哇,快来给我讲讲,超级期待呢!
二、移动应用上的危险“克隆”
小白:东哥,说起克隆,我会想到一只羊诶,咩咩咩~
大东:恩,我还知道你说的那只羊叫“多利”呢。
克隆羊多利
小白:东哥,你看咱俩多默契!
大东:(无语中,并不想承认很默契),刚才说到在移动应用之间的相互隔离使很多传统意义上的攻击变得很难实现了,那你有没有仔细想想应用之间的这种隔离和我们上网时常用的浏览器网页之间的隔离方式很像呢?
小白:额,东哥你是说我在网页上登录邮箱,邮箱这个网站是访问不到我在谷歌网页上的任何搜索数据的吗?
大东:Bingo!在 Web 前端攻击技术中,有很多通过跨域漏洞窃取 Cookie,实现访问用户账号的方法。而移动应用在登录后,也会通过一组身份认证凭据来访问云端的用户数据。这组认证凭据可能包含一个访问令牌,和若干其它用于辅助认证的数据。这些数据可能存储在不同的文件里,文件可能还进行了加密。
小白:这么多的数据保护,还是会被攻击哦!
大东:可别小瞧漏洞的威力!“克隆”要上场了。一旦通过漏洞获得了移动应用的代码执行权,总是可以获得这些认证凭据。将这些认证凭据写入到另一台设备上同样的移动应用中,就能以被攻击用户的身份使用移动应用,如同克隆出了一个双胞胎。
应用克隆
小白:可是很多软件在更换设备登陆时,前一台登陆设备都会被强制下线呢?那还怎么克隆嘞。
大东:你说的确实是对安全比较敏感的那些应用的保护方法。但是移动应用的这种限制通常都只在登录阶段进行检查。对于上面提到的直接克隆身份认证凭据的攻击方式,几乎所有移动应用都没有防范策略。
三、大神如是说
小白:“应用克隆”到底是在什么时候发生的呢?东哥,快再来点干货!
大东:进行移动应用克隆攻击甚至并不一定需要获得代码执行权。绝大多数情况下,利用某些能读文件的漏洞就足以获得移动应用的认证凭据。一般来说,浏览器将本地文件都视作同一个域。也就是说,如果在你的系统上存在一个网页文件,用浏览器打开这个文件,那么其中的 JavaScript 脚本就可以读取本地的其它文件,并将其通过网络发送出去。各种浏览器在很久以前就意识到了这个安全风险,并大多做了相应处理。
小白:处理了我就放心了。
大东:我还没说完呢,你在使用手机上的应用的时候,有时候是不是要跳转到一些网页啊,危险就在这时候来到你身边咯~
小白:不要吓我!
大东:WebView 是系统提供给移动应用的浏览器组件。通过调用,移动应用自身就可以访问网页内容。所以有非常多的移动应用都内嵌了 WebView。但 WebView 在访问本地网页文件时,默认并无安全限制,那么当 WebView 打开一个恶意本地网页文件时候,这个文件就可以读取移动应用中的文件并发送出去。也就是说,可以窃取身份认证凭据,实现移动应用克隆攻击。据腾讯安全玄武实验室分析,国内安卓应用中可能有超过10%的应用可通过 WebView 读取本地文件。
小白:我是个乖宝宝,我看的网页都是能够学习知识的网页!不去浏览一个“充满恶意”的网页就不怕被克隆啦!
大东:说得太好了,接下来我就要告诉你,你是怎么神不知鬼不觉的访问了一个“充满恶意”的网页文件了。很多移动应用可以在 URL Scheme 中接收 URL 参数,并传递给 WebView。而 URL Scheme 是不受同源策略限制的。这样,我们就可以将指向本地网页文件的 URL 转换为 URL Scheme,然后再将 URL Scheme 转换为一个普通的 URL 。而普通的 URL 几乎能以包括短信、邮件等在内的任何方式发送给用户,并在任何应用中打开。
小白:弱弱的问一句,啥是 URL ?
大东:URL 就是网页地址的意思啦~简称网址啦~
查看网页 URL 的方法
小白:晓得啦~
小白:东哥,你还是自己吃饭吧~我先去看看手机上有没有更新系统,有没有出新的补丁~
大东:记得把应用也都升级升级吧~
小白:我都想好了,“小白白”就是我的克隆的名字~