双操作系统移动智能终端安全分析*
2017-12-26姚一楠翟世俊邓样辉
姚一楠,翟世俊,邓样辉
(中国信息通信研究院,北京 100191)
双操作系统移动智能终端安全分析*
姚一楠,翟世俊,邓样辉
(中国信息通信研究院,北京 100191)
目前双系统终端面临较大的安全风险,因此首先列举双操作系统的实现方案及判别方法,在此基础上主要从数据隔离的角度提出了双系统安全解决方案,最后从监管角度提出了双系统移动智能终端管理建议。
双操作系统 数据隔离 访问控制
1 引言
随着移动智能终端的发展,用户对移动智能终端的安全性要求越来越高,但安全和易用性经常是矛盾对立的。用户需要体验移动终端所带来的丰富多彩的功能,同时又不希望自己的个人信息遭到泄露,因此市场上出现了很多双操作系统移动智能终端,通常一个满足用户日常使用,一个用来提供隐私环境使用,双系统间采用一定的数据隔离机制。但双系统终端目前依旧是新生事物,各厂家的实现方案良莠不齐,双系统之间的隔离程度也没有统一的标准。因此本文聚焦双操作系统移动智能终端,首先阐述双系统的实现方案及判定方法,同时提出数据安全保护的解决方案,最后从宏观角度提出监管建议。
2 双操作系统安全实现方案分析
2.1 双操作系统实现方案
目前市场上双操作系统系统终端很多,例如同洲电子实现的Android+960 OS终端,及酷派所实现的双Android系统终端。基于双操作系统的终端目前有如下几种实现方式:
(1)独立的双操作系统架构如图1所示,直接在硬件上进行隔离,两套操作系统直接安装在系统的不同分区,相互独立,两个系统不共享系统内核或没有共同的内核,两个系统不能同时运行,需要重启才能切换到另一个操作系统,如Android+Windows 10或Android+Firefox OS。这种方案下双系统之间完全独立,不能做任何交互,系统之间的隔离性较差;由于两个系统不能同时运行,对硬件没有额外的要求。两个操作系统需重启智能终端才能完成切换,速度较慢。
图1 独立双操作系统架构
(2)直接在硬件上做虚拟的双操作系统架构如图2所示,利用Linux hypervisor技术直接在硬件上做虚拟化,上面搭载两个操作系统,支持Android系统和非Android系统;这两个操作系统不共享内核,从Linux内核层就进行了系统隔离,具有两套Kernel、两套Framework及应用软件,应用软件可以在不同系统中安装多次。这种方案通常采用安全隔离技术对不同系统的存储和进程进行完全隔离,防止系统的数据、应用等资源被另一个系统非法访问,具有较高的安全性;同时这种方案对硬件要求高,内存开销大,电池和硬件性能都面临较大挑战。两个系统一般可以同时运行,采用软切换模式进行切换,不需要重启就可实现切换。
图2 直接在硬件上做虚拟的双操作系统架构
(3)共享内核但不共享应用运行时环境的双操作系统架构如图3所示,两个操作系统共享同一内核,但是两个操作系统使用不同的应用运行时环境,也就是从Framework层进行了数据隔离,拥有两套Framework,每套架构上面支撑各自的应用软件。这种方案在内核层之上对不同操作系统的文件系统、应用进程等进行隔离,安全隔离性较好;同时对硬件也有一定要求,会增加一定额外内存开销。两个操作系统也同时运行,使用时无需重启手机,可一键实现两个系统的无缝切换。
图3 共享内核但不共享应用运行时环境的双操作系统架构
除了以上双操作系统实现方式外,Android 5.0开始在手机上也提供了多用户功能。Android 5.0具备一个访客模式,在该模式下有关机主的大部分个人信息将不可见,不同用户的应用数据互相隔离,在需要将终端借给他人使用时可确保隐私安全。这种多用户的功能并不属于双操作系统的情况,本质上就相当于在一个操作系统上单独划分一个分区,将不同的数据存储在不同的分区上,类似于Linux的多用户实现,不同的用户可以访问不同的应用软件,但是一个应用软件不能安装多次。
2.2 双系统判别方法
以上几种实现方式,除了从硬件层进行隔离的方式,其余几种情况均可以实现双系统之间的软切换,因此从普通用户角度几乎无法区分具体方案。而实际上不论从测试角度还是安全防护角度,首先需要判断双操作系统是在内核层、Framework层或者软件层实现的隔离。如果操作系统在内核层进行隔离,则在终端侧表现为拥有两个完全的独立系统分区,包括system、data、cache及sdcard等目录均会有完整的两套,不同分区之间不能互相操作,如图4所示:
图4 双Kernal架构判定
而如果系统从Framework层进行的隔离,比较简单的辨别方式是adb shell进入终端,检查系统进程,由于是双系统,例如zygote、init等进程会有两套。
而如果是多用户的情况,通过adb shell进入终端,检查/data/user目录下的内容,如果发现有多个目录,则可以判定危多用户情况,图5代表了终端设置了4个用户:
图5 data/user目录查看
3 双操作系统安全解决方案要求
双操作系统移动智能终端不管是哪种实现方式,都应该和其他终端一样保证终端的可用性、保密性、完整性为目标建立安全策略模型,这一点可以参考一些现行标准,例如YD/T 2407《移动智能终端安全能力技术要求》。而除此之外,通常在行业、或高安全要求的场景下,双操作系统移动智能终端应更重视安全隔离机制的设计,重点防止数据或设置跨区域访问。而目前很多号称安全系统的终端安全机制不完善,存在很大的安全风险。本节主要分析目前双系统终端面临的安全风险,同时给出需要实现的特殊安全要求。
3.1 独立安全机制
双操作系统终端通常分为个人区和工作区。个人区通常为了满足用户日常需要,而工作区则用于存储重要工作信息、业务应用软件等。一旦工作区被攻破则会造成很大的安全问题。因此如果要保证工作区的安全性,应首先区分个人区和工作区提供单独的安全机制。包括以下3个方面:
(1)独立的身份鉴别。个人区和工作区应该提供独立的解锁方式,当个人区解锁被破解后,不能直接进入到工作区。
(2)独立安装和卸载应用。个人区由于为满足日常生活需要,因此难免会接触到恶意软件,而此时工作区和个人区应单独区分应用软件,每个区域单独安装和卸载应用软件,保证之间不互相影响。
(3)系统设置相互独立。个人区和工作区应采用不同的安全策略,例如个人区采用自主访问控制,工作区采用强制访问控制。而工作区内的安全设置也应和个人区独立,当个人区被修改时,不能同步影响工作区。
3.2 访问隔离及数据隔离
使用双操作系统移动智能终端其主要的目的就是保证工作区的数据不被窃取和泄露,而工作区的数据安全性和个人区的安全要求不同,因此应该考虑提供单独的存储区域,同时应限制双系统之间的交互过程。具体应包含以下几个方面。
(1)App隔离。在Android下,App会暴露组件给其他App,不同的App之间可以互相调用,进行业务数据交互。但是在双操作系统终端中,工作区通常使用的都是专用业务App,例如警务通等,通常是不能暴露组件给其他App调用的。因此除了加强App开发保护防止组件暴露,同时也应该保证双系统间App使用独立不可相互调用。
(2)App数据隔离。App在使用过程中,必定会产生一定量的用户数据,这些数据可能会包括账户设置类、传感采集类、金融支付类、媒体影音类数据,这些数据也应保证不被跨区域调用,限制读写权限。
(3)用户数据隔离。这其中包括使用移动智能终端所产生的通信数据,在普通Android手机中,Android会提供接口,App可以调用获取到通信数据例如电话短信。此外,手机的共享存储区域会存储用户存入的数据,那么用户数据保护应需要限制API接口调用,在工作区应该封闭调用接口,使得安全区信息不被获取。同时对于存储区域的保护应保证个人区和工作区内部数据分开存储,其次应限制外部存储设备接入,防止恶意代码从外部传递到工作区。
另外,根据使用场景的不同,还可以对双操作系统进行更多的限制,比如工作区需要接入专用VPN、禁止使用蓝牙/Wi-Fi/USB等及禁止采集定位信息等,当然隔离强度的选择需根据具体终端的使用场景来决定。
以上数据隔离的实现具体到终端中要包括进程隔离/内存隔离/存储隔离,具体的安全方案要求包括以下5个方面:
(1)双系统之间,不可以执行没有授权的进程控制、调用。
(2)双系统之间,不可以通过网络执行没有授权的远程过程调用。
(3)双系统之间,不可以互相读取和修改内存数据。
(4)双系统之间,不可以互相读取和修改对方的系统文件。
(5)双系统之间,不可以互相读取和修改对方的数据文件和数据库。
可以参考TEE隔离实现方式,TEE其实就可以看做一个小型双系统方案。将主CPU分成两个执行环境,中间设置一个Security Monitor Mode作为监控模式,在两个环境中通过SMC(Secure Monitor Call)或者硬件中断进行通信和切换,分别搭载不同的操作系统,将内存空间分割成多个用户空间的沙盒,服务之间逻辑隔离,防止一个安全服务篡改另一个服务,服务之间也分割成不需要任何信任和依赖关系。安全环境提供一套API来使另一个系统使用可信安全服务。这样通过一个专门的硬件实施访问控制,配合安全启动等安全机制才能保证安全隔离的强度。
3.3 安全漏洞及恶意代码
除了基本的安全隔离外,双系统本身的安全性也需要保证。近期发生的Wannacry事件让我们看到,终端对漏洞修复不及时,将会对用户甚至行业造成极大危害。而从泰尔终端实验室对2017年新上市的终端进行漏洞测试的结果看,终端平均含有高危漏洞数量在5个左右,且厂商进行漏洞修复的延迟时间通常大于3个月,而一些小厂商行业终端漏洞平均延迟时间甚至大于1年。由此可以看到终端厂商对于漏洞修复积极性很低,表现不好,尤其是双系统终端,一旦存在root漏洞,则安全隔离就等于形同虚设,存在极大安全隐患。并且很多终端缺少恶意代码检测能力,无法抵御恶意软件的攻击,造成所谓的安全区域并没有更好的安全保护。
因此双操作系统移动智能终端终端应提供持续更新机制,应至少保证终端不含有CNVD(国家信息安全漏洞共享平台)和CNNVD(国家信息安全漏洞库)公布的6个月前的高危及超危漏洞。且终端应提供恶意代码检测能力,应能够识别一些非授权访问、权限异常变化等并给予用户警告,同时采取相应安全措施,例如拒绝访问等,并可以定时升级更新。
4 监管手段建议
随着业务场景的增加,未来双操作系统甚至多操作系统移动智能终端会越来越多。而目前我国针对双系统终端还缺乏必要的管控措施,市场上各家厂商技术方案纷繁复杂,是否会更安全还是会带来新的问题都不得而知,未来发展除了从技术角度保证终端安全性外,从管理角度也可以采取一定的措施。
4.1 标准先行
目前我国对双操作系统系统安全还没有专门的安全标准支撑,尤其对于双操作系统隔离机制的要求目前还比较空白。可以借鉴已有的安全标准,例如YD/T 3082-2016《移动智能终端上的个人信息保护技术要求》对于终端数据保护的要求,考虑双操作系统的特殊性加强相关行业标准或国家标准的制定,配合近期实施的《中华人民共和国网络安全法》,规定双操作系统移动智能终端应该满足的安全技术要求,或者企业的管理要求。
4.2 加强检测
现在市场上双操作系统终端层出不穷,各家都声称会带来更高的安全性,但具体安全水平如何却缺少权威机构的检测认证。因此,需要有关部门去根据相关标准去判断终端双系统实现方案,以及是否做到了双系统间的进程隔离、内存隔离、存储隔离等。同时,检测的目的也方便各个行业对终端进行选型,只有从技术、标准和检测配合形成闭环才能真实提高双操作系统移动智能终端安全水平。
5 结束语
双操作系统移动智能终端目前还不普遍存在,目前多在行业内部、特殊工作场景使用。但是随着个人用户安全意识的提高,以及移动智能终端性能越来越强大,双系统甚至多系统终端会更多地出现在市场上。因此关于双操作系统终端的安全保护应该尽早标准化、科学化,以保证此类终端技术能够良好稳定地发展。本文首先列举了双操作系统的实现方案及判别方法,在此基础上主要从数据隔离的角度提出了双系统安全解决方案,最后从监管角度提出了双系统移动智能终端管理建议。
[1] 张轶群. 安全手机瞄准高端市场 双系统受青睐[N]. 中国电子报, 2014-12-02(9).
[2] 上善若水. 双系统会成为智能移动终端主流吗[J]. 电脑迷, 2014(5): 38-39.
[3] YD/T 2407. 移动智能终端安全能力技术要求[S]. 2013.
[4] YD/T 2408. 移动智能终端安全能力测试方法[S]. 2013.
[5] YD/T 3082-2016. 移动智能终端上的个人信息保护技术要求[S]. 2016.
[6] YD/T 3228-2017. 移动应用软件安全评估方法[S]. 2017.
[7] 倪昀泽. 移动智能终端安全漏洞攻防技术综述[J]. 移动通信, 2017,41(7): 30-34.
[8] 姚一楠. 对移动智能终端漏洞不得不防[N]. 人民邮电报, 2017-07-20(5).
[9] 舒文琼. 移动终端漏洞应急响应机制待建立[J]. 通信世界, 2017(24): 58-59.
[10] 姚一楠,于璐,何桂立. Android平台的安全挑战及应对措施[J]. 现代电信科技, 2012,42(9): 16-21. ★
Analysis on the Security of Smart Mobile Terminal with Dual OS
YAO Yinan, ZHAI Shijun, DENG Yanghui
(China Academy of Information and Communications Technology, Beijing 100191, China)
At present, the terminal with the dual operating system (OS) faces the large security risk. Therefore, the implementation scheme and identifying method of the dual OS were listed. Then, the secure solution to the dual OS was proposed based on the data isolation. Finally, the management suggestion on the mobile smart terminal with dual OS was presented from the perspective of supervision.
dual OS data isolation access control
10.3969/j.issn.1006-1010.2017.21.004
TP915.6
A
1006-1010(2017)21-0016-05
姚一楠,翟世俊,邓样辉. 双操作系统移动智能终端安全分析[J]. 移动通信, 2017,41(21): 16-20.
国家高技术研究发展计划(863计划)-智能终端安全检测技术研究(2015AA017202)
2017-10-27
黄耿东 huanggengdong@mbcom.cn
姚一楠:工程师,硕士毕业于电信科学技术研究院,现任中国信息通信研究院科研工程师,主要从事移动智能终端安全理论、标准化研究工作。
翟世俊:高级工程师,博士毕业于北京邮电大学,现任职于中国信息通信研究院,主要从事移动互联网及应用软件相关的安全理论、技术的研究以及相关标准的制定工作。
邓样辉:现任职于中国信息通信研究院,从事移动互联网、智能终端安全标准研究和测试系统测试工作,主要研究移动智能终端操作系统加固、移动云计算等安全方面的问题。