[原创]android 企业级安全新思路(I)
发表于:
2013-6-28 14:36
14416
http://blog.csdn.net/u011069813/article/details/9148569
新名词,BYOD、MDM、MAM。。。读者根据个人兴趣自己挖掘这些信息。
本文谈论的就是随着智能终端的日益普及,很多智能终端承载了企业应用,那么如何使一部终端更好的承载企业应用和个人信息呢?
三星最近推出的S4给大家一些启发,下面就是三星KNox解决方案的概要!
Samsung KNOX™ is the comprehensive enterprise mobile solution for work and play. With the increasing use of smartphones in businesses, Samsung KNOX addresses the mobile security needs of enterprise IT without invading the privacy of its employees.
那么Knox是如何实现的呢?这正是本文要探讨的!
先看图,再吐槽,不能直接粘贴图片,这还是移动互联网应用吗?CSDN!!! 图好大!逐个解释。
先不说底层如何实现,KNOX把个人和企业进行了有效的分割,有个人模式和企业模式之分。从表面上看,每种模式就是一个不同的Launcher。
想要体验的高富帅就买个S4吧。屌丝男呢?我知道你们存钱不容易,也是给女神留着的。
我给你们的推荐方案就是下载这个软件:https://play.google.com/store/apps/details?id=com.enterproid.divideinstaller&referrer=utm_source%3Ddivide.com%26utm_medium%3Dbutton%26utm_content%3Dheader%26utm_campaign%3Ddividemarket
http://www.divide.com/这个公司出品!
这个软件android、ios都支持,它是在应用层实现了两个Launcher,虽然安全性较差,但也从表面上实现了个人和企业的分离。
下图是S4的效果。 点击切换Button,即可在个人/企业模式来回切换,当然为了安全起见,个人切换到企业模式需要认证。
读者可能会问?弄两个模式就安全了吗?无非就是把应用放到不同的launcher而已?那这样设计的价值到底在哪儿呢?
首先在android上搞安全有个悖论,如何在android的安全性和开放性之间取得平衡。android要想安全,非常简单,那就是封堵好软件入口!
可从目前的现实来看,这是有悖于历史的车轮的,也是广大屌丝不能接受的!你把软件入口控制了,那屌丝下班的时间还能干啥!!!
也就是说,你要做一款畅销的终端,原来的应用模式不能改变,如果你搞了一套安全机制,导致原来的应用不能使用了,或者部分不能使用了。那基本就是垃圾!
可我们换的搞安全啊!!肿么办,这就是Konx的价值所在,先把android进行切割,从上到下,上层表现为不同的launcher,底层对个人/企业域的所有数据进行隔离。
个人域我们不对他进行任何的管制!原来该干嘛干嘛!企业域我们就要加固了,怎么加固,首要的就是控制软件入口,这可是万恶之源啊!
那这儿就有个很大的问题,如何真正的实现个人域和企业域的数据隔离,主要有两种方案:
1、虚拟化解决方案,比较彻底。大家搜一下虚拟化吧
2、就是KNOX采用的机制SEAndroid,SeAndroid的价值就是MAC。其实类似SEAndroid的开源架构很多,大家可以搜搜,SEAndroid只是一种,比较复杂,目前没有成功商用案例,完全可以简化。
来源于百度:
访问控制是指控制对一台计算机或一个网络中的某个资源的访问。没有它,所有人都可以访问任何资源。有了访问控制,用户在获取实际访问资源或进行操作之前,必须通过识别、验证、授权。
换言之,访问控制控制着一个主体(subject)可以访问哪些对象(objects)。主体和对象是访问控制模型和技术中的两个重要术语。主体是指可以授予或拒绝访问某个对象的人或事物,如用户,程序,系统进程。对象的例子如文件、打印机、程序、系统进程等。
访问控制模型
开发者需要在他们的软件和设备中实现访问控制功能,访问控制模型为之提供了模型。有三种不同的模型:DAC,MAC,和RBAC。
Discretionary Access Control(DAC)
主体对它所属的对象和运行的程序拥有全部的控制权。例如,Alice拥有一个叫mywork.doc的文件。她许可Bob和Sales group的成员来读这个文件,除此之外别的人都不可以。改进的DAC实现提供了一个基于“need-to-know”的访问授权的方法,默认拒绝任何人的访问。访问许可必须被显式地赋予访问者。
被某个用户执行的程序拥有与该用户相同的权限。这意味着系统安全依靠运行的程序,因此,当一个程序中发生安全裂缝,会影响到该用户能访问的所有对象。这使得DAC在特洛伊木马前特别脆弱。例如,假设Alice对文件file1.doc拥有读写权限。Charlie,一个恶意攻击者,写了一个程序,这个程序在执行时生成文件file2.doc.这个程序授予Alice写权限和Charlike读权限。Charlie把这个程序伪装成合法的程序发给 Alice。当Alice运行这个程序是,它就具有了和Alice相同的权限。它可以拷贝file1.doc到file2.doc,这样charlie就窃取了file1.doc的内容。如果一个管理员执行这个程序,攻击者会获取最大的特权,危害整个系统的安全。
Mandatory Access Control(MAC)
在MAC这种模型里,管理员管理访问控制。管理员制定策略,用户不能改变它。策略定义了哪个主体能访问哪个对象。这种访问控制模型可以增加安全级别,因为它基于策略,任何没有被显式授权的操作都不能执行。MAC被开发和实现在最重视保密的系统中,如军事系统。主体获得清楚的标记,对象得到分类标记,或称安全级别。 那么SEAndroid通过MAC机制,通过在内核层的强制访问控制,可以控制那些应用之间可以相互访问,那些应用能访问那些数据。。个人域和企业域的隔离。
即使Root也无可奈何!而且MAC机制对Root也能起到很好的防范作用。建议读者看http://wenku.baidu.com/view/fed9abb569dc5022aaea002d.html。 看看上图,全局读的文件都无法访问,这就是MAC的神奇作用,ROOT 用户照样是屌丝!
有了SEandroid机制以后,个人域和企业域就切割了,个人域大家随便玩,企业域就可以部署企业应用了。个人域和企业域的数据严格隔离,企业老板不用担心企业的敏感数据不会通过个人域泄露,个人域的用户也无需担心企业域的应用会偷窥你的短信!当然这个企业域还可以结合MDM进行深度管理。
MDM课题很大,后续再表。 我现在想说的KNOX提供的不仅仅是个人/企业模式。而是两种模式,至于哪两种,读者自己可以定义。如果是艳照门的早知道这手机,就不会再发生艳照门了。
这种情况的模式就是普通模式/艳照模式。艳照模式里面也有个应用叫照相机,这个照相机很神奇,照出来的照片个人模式可是看不见的!而且在企业模式还是加密的。
有了双模式!!从此艳照算个啥!!!
这儿就引出了KNOX的第二个功能:加密!
企业模式(艳照模式)虽然和个人模式已经进行了隔离,个人模式的木马是无法访问的,但丢了手机肿么办!!!这就是加密!!!提供存储加密和文件加密两种。
存储加密给予Linux DM机制,在内核扇区级透明加密,我们指定一个加密分区,所有在这个分区部署的应用都是透明加密的。密钥就是个人模式和企业模式的切换口令。
只要这个口令保护好,神都解不开!!!!! 还可以外挂硬件加密卡比如TF卡,耳机孔,蓝牙盾。。。android 加密没来得及展开,内容太多了。
第三个KNOX的功能:DLP。。。pc上好熟悉的概念
企业域虽然已经很安全了,可现在很多信息都是内部泄露的,,,那肿么办,,,那就是VPN,通过内核IP重定向保证那些应用的数据流向的严格控制!防止数据泄露。
这个VPN的厉害之处就是通过管理平台控制,从内核控制数据流向!防止软件漏洞(比如应用设置的web地址是白宫地址)导致数据泄露到白宫! 最后简单说一下,通常有了企业域,就会有对企业域的管理平台MDM, 有兴趣的读者看看吧。另外三星的KNOX还有些噱头,比如TIMA(TrustZone-based Integrity Measurement Architecture),给予ARM的TZ。
很多高通的芯片都是TIMA,不过大部分被攻破了。
最后再说一下双域的核心技术:SEAndroid和虚拟化技术的弱点。
SEAndroid的风险就是内核漏洞,现在linux的漏洞大部分在native层,内核的比较少。
虚拟化的就是HypV的漏洞了。。。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!