360手机极客版系统安全深度解析与测试分析

  说起来,我与360这家公司还有不少的渊源。作为一名业余的白帽子(狭义上可以简单理解为不作恶的黑客),笔者喜欢在空闲时间捉捉虫子,挖挖漏洞,曾经参加过360安全应急响应中心组织的漏洞挖掘大奖赛,并获得了二等奖。

360手机极客版系统安全深度解析与测试分析

  奇虎每逢新产品发布,也会发送一些硬件给笔者,请笔者来帮忙挖掘其中的漏洞。比如360儿童卫士等。 360OS的安全性,一直是360手机的一大卖点,那么这个深度定制的系统,到底能否在关键时刻保证我们的财产和隐私安全呢?在这部分测评中,笔者将就奇酷手机的安全部分,进行一些深度的分析和测试,来看看360OS到底有什么过人之处。

  安全,其实是一个非常宽泛的话题。几天几夜也扯不完。安全狭义来说,可以概括为没有漏洞,难以被攻破。但这样说又不完全正确,正如前段时间一部非常不错的德国黑客电影《我是谁:没有绝对安全的系统》中所呈现的,凡是人类创造的事物,必然会有漏洞,即使没有漏洞,还有我们未知的领域。当然,这扯得有点远了,在现阶段,安全的攻防其实就是一场资源战。世界上首屈一指的安全实验室卡巴斯基都被植入了APT,更是说明了这个问题。

  手机是汇聚了大量数据的生活助手,其安全性自然十分重要。然而,由于其集合了多种模块和功能的软硬件一体的平台的属性,导致了其脆弱性也同样突出。良好的使用习惯可以使得手机更安全,例如二次验证。但是这会增加复杂度。安全又分为系统安全,隐私安全,静态数据安全等等方面,可以说360OS在这些方面都给了我们满意的答案。

  下面来具体说说吧。360OS其实是整个手机的技术核心,但是老周并没有浓墨重彩地宣称,这恰好符合周鸿t作为产品经理的原则:将通俗易用的界面带给用户,而将精深复杂的技术留给攻城狮去解决。360在安全方面的技术实力毋庸置疑,在Pwn2Own上,Vulcan团队秒破IE11。还因为挖掘出多个Windows的漏洞而获得多次微软的致谢。要谈手机的安全问题,还是要回到Android的架构和原理问题上来。

  Android利用基于用户的访问控制以达到应用程序的安全性:因为同一时间只有一个真实用户,因此Android给每个应用程序制定唯一的用户识别码(UID),在不同的进程当中使用该UID访问应用程序。这样的安全性保护能够在内核层面建立应用程序沙箱。但是,如果设备被root,那所有的应用程序将可以被超级用户的权限访问到所有的资源。

  这个超级用户的权限将使得病毒程序有机会获得设备的控制权,从而影响设备的安全性。而自从Android 4.3开始引入的SELinux,则大大增强了Android的安全性。其开始使用Mandatory Access Control (MAC)的方式访问,通过策略去创建安全领域,从结构上防止一个领域的不安全因素扩散到全领域或操作系统层面, 使得即使获得超级用户权限的用户也只能访问一部分空间或资源。

360手机极客版系统安全深度解析与测试分析

  在Android早期,往往只需要利用一些用户层程序的漏洞即可将手机root,但是现在则主要依赖内核漏洞才行。Android为Linux内核引入了新的内核模块,以及不同厂商的驱动方案。这就为系统内核引入了新的安全隐患。比如去年10月,Keen Team的@Flanker_017就是利用的一个MTK驱动中的0day内核漏洞,再加上一个AOSP中的0day漏洞和一个360OS的漏洞,才将奇酷手机青春版root了。 由于他并没有公布其中的细节,因而除了他以外,目前没有任何一个其他厂商能够在360OS中获得超级用户权限。因此目前对360OS的深度逆向分析,还是有难度的。

  不过,笔者比较肯定的判断是:在最底层360OS一定针对TrustZone做了特殊的优化,采用了TIMA架构。在Boot Loader部分,通过严格的验证机制来保证安全的启动。Linux Kernel则基于AOSP做了补强,采用了较新的SE版本,框架层和应用层应该也有对应的修改。其实,从360OS目前已经实现的功能来分析,还是可以看出不少端倪的。360OS这次核心的安全宣传点,包括财产隔离系统,隐私空间,应用冷藏室,微信双开等。相信360内部有几个不同的项目组,负责这几个不同的项目,而其中复杂度最高,代码量最大的,显然就是财产隔离系统了。

  这个系统的实现,应该与三星在Knox的应用层中使用的Container的原理类似。即在设备上创建出一个虚拟的Android环境,作为一个类似沙盒(Sandbox)的独立环境,在容器中运行的应用程序与容器外的应用程序是无法进行交互的,从而为沙盒内的程序提供了保护。这也就是目前奇酷并没有把支付宝放入财产保险箱中的原因,因为一旦放入,其他程序就无法与支付宝进行交互。

360手机极客版系统安全深度解析与测试分析

  360对于启动时的安全,显然也十分重视。为了防止一些第三方的内核影响系统的安全性。对Boot Loader和Recovery做了深度定制。这样做的另一大好处是,手机的防盗功能被大大强化了,如果手机丢失,捡到手机的人是很难通过刷机将手机中的防盗数据清除的。下面,我们来进行一些实际的测试,看看360 OS具体的表现吧。笔者预设了一种基于ARP的MITM攻击模型,这种攻击模型在日常生活中还是非常常见的。黑客通过入侵无线网络,进而得到路由器的控制权限,使得受害者的所有网络流量,都暴露在黑客的眼前。一般来说,去咖啡厅或餐厅,加入一个公共网络,网络中一旦有黑客连接进来,也会出现下图这样的情形。

360手机极客版系统安全深度解析与测试分析

  这样的情况下,黑客能做些什么呢?说出来可能吓你一跳。通过实施ARP欺骗,黑客可以轻松地发起中间人攻击(MITM Attack),从而截取用户的网络流量,获知网络中其他用户的浏览记录,用户名,密码,QQ/微信/微博账号等,甚至可以直接劫持账号,登录到对方的微博或邮箱中去。如下图所示:

360手机极客版系统安全深度解析与测试分析

  那么有没有办法既能使用公共WiFi,又不会被黑客嗅探和劫持呢?360OS为我们提供了很好的解决方案:我们只要开启360奇酷手机上的WiFi安全通道功能,所有我们与Internet之间的数据,都会通过HTTPS协议,经由360搭建的VPN服务器传输,黑客就再也无法看到任何信息了。

360手机极客版系统安全深度解析与测试分析

  另一种入侵方式更为恐怖。因为ARP攻击往往最多进行到劫持这一步。比如下图中,笔者通过Wireshark抓取了奇酷手机安装的大智慧炒股软件的网络传输数据,可以发现其中可以看到股票的代码(未开启WiFi安全通道,未在财产隔离系统中运行,而是直接在Android中运行):

360手机极客版系统安全深度解析与测试分析

  但是由于我们常用的涉及到支付的App是通过HTTPS协议传输数据的,密码也往往不会明文传输,因此诸如网银和支付宝的密码,是不太会被黑客窃取的。但是如果黑客在Android中植入木马,甚至进一步获取了root权限,那就可以轻松地拿到shell了,到那时,你的整个手机对于黑客就没有任何秘密可言了。360 OS在这方面的处理,同样是可谓万全之策。这也是为什么360敢于开出高额的财产意外险。360采用了怎样的策略来保证财产相关的账号密码不被黑客窃取呢?

  首先,360手机几乎不可能被root,也就是说黑客很难拿到root权限。360手机上市到现在为止的半年内,没有一个专门研究root的组织能够成功root青春版和旗舰版手机。目前已知的只有在去年10月,Keen Team的Flanker_017利用AOSP和MTK的三个漏洞,环环相扣才实现了root,而且他当时并没有公布细节。相信后续Google,MTK和360已经修复了这些漏洞。因此root这条路,可以理解为基本是走不通的。其次,财产隔离系统的引入,使得即使Android被植入木马,也无法影响到财产相关的信息的安全。之前提到过,财产隔离系统是一个完全独立的系统,与Android之前甚至无法进行数据交换,这也就是为何在财产隔离系统内,是无法抓图的。也正是因为是一个独立的空间,因而用户在这个系统内输入的密码,是无法被Android系统中的木马软件的键盘记录器获取的。这样就保证了账号密码的绝对安全。

360手机极客版系统安全深度解析与测试分析

  财产隔离系统,类似Knox中的Container,即在设备上创建出一个虚拟的Android环境,作为一个类似沙盒(Sandbox)的独立环境,在容器中运行的应用程序与容器外的应用程序是无法进行交互的,从而为沙盒内的程序提供了保护。这也就是目前奇酷并没有把支付宝放入财产保险箱中的原因,因为一旦放入,其他程序就无法与支付宝进行交互。

发表评论