黄静,赵海燕,孙玲玲
(中国移动通信有限公司研究院,北京 100053)
安卓终端系统安全机制研究与设计*
黄静,赵海燕,孙玲玲
(中国移动通信有限公司研究院,北京 100053)
移动终端作为用户使用移动信息化业务的载体和入口,成为企业移动信息化安全体系中关键的组成部分。针对终端系统的安全问题,本文对主流终端操作系统的关键技术和安全机制进行了深入研究,比较分析了几种主流系统安全方案,提出一种基于SE Android的双域系统安全技术方案。通过对该方案的系统安全架构、安全访问控制、应用隔离等关键技术和创新工作的详细介绍,说明了该解决方案的可行性和实用价值。
系统安全;SE Linux;安全策略;双域隔离
近年来,移动终端的功能越来越丰富、处理能力越来越强,已经成为人们日常生活和工作必不可少的随身设备。在协助人们处理日常事务的同时, 移动终端上也产生并携带了大量个人隐私信息。而在个人隐私保护越来越受到重视的趋势下,对个人隐私信息保护的需求也日益增强。
与此同时,随着移动信息化的深入,企业也逐渐将办公业务向移动终端上迁移。员工可以随时随地在移动终端上处理工作,为企业带来更高效的生产效率。但这也为企业的信息安全带来了新的挑战。
无论是个人使用还是企业移动信息化的部署,均对移动终端的安全提出了迫切要求。为了满足个人和企业对移动终端安全的需求,并为公司业务部门进行行业市场拓展提供有力支撑,本文针对移动终端系统面临的主要安全问题和关键技术进行了深入研究。
据360互联网安全中心报告显示,2016年全年,360互联网安全中心累计截获Android平台新增恶意程序样本1 403.3万个。平均每天截获新增3.8万恶意程序样本。2016全年,中心累计监测到Android用户感染恶意程序2.53亿,平均每天恶意程序感染量达到70万人次。移动终端上的恶意程序增长非常迅猛,影响面日益扩大。这些恶意程序给广大移动终端用户带来许多侵害。如资费消耗、恶意扣费、隐私窃取、商业信息泄露、未授权访问、系统变慢甚至死机等。移动终端的安全正在成为影响人们日常使用和移动办公不可忽视的因素,安全防护技术和解决方案亟待研究和提升。
为了防止恶意程序对移动终端的应用程序和数据进行侵害,需要在移动终端的操作系统层进行更有效地安全防护。如图1所示,终端上主流的系统安全方案有3种。
(1)应用程序容器方案:在系统应用层实现重要应用与普通应用的隔离,通过对重要应用程序加壳或改造等方式,实现对应用程序防篡改、数据保护和网络访问等安全防护功能。
(2)系统安全增强方案:利用操作系统的安全机制,在系统底层进行安全控制,从而实现对系统资源、应用运行环境以及数据访问的安全防护。
(3)硬件虚拟化方案:通过对终端硬件能力的虚拟化管理,可以支持两个或多个操作系统独立运行。
系统安全增强方案同应用程序容器方案比,具有操作系统级底层安全的优势,可基本满足个人日常和企业一般办公的安全需求。同时,与硬盘虚拟化方案相比,具有可与不同厂商的系统软件进行快速集成的优势。通过集成统一的系统安全增强方案,可在不同终端上提供统一的用户体验,便于用户使用业务,也便于业务的统一维护。
在众多基于Linux的强制访问控制安全模型中,SE Linux于2003年起被集成到Linux 2.6.0的内核进行发布,并很快成为受保护Linux系统的事实标准。SE Linux将系统中所有对象实体都赋予对应的安全标签(安全上下文),通过比较请求主体和资源客体的安全标签决断是否允许这次访问请求。SE Linux支持较细粒度的权限描述和管理,能有效的防护恶意程序和病毒对正常应用程序和数据的攻击,极大程度地提高系统的安全性。然而,由于安卓操作系统的独特性,SE Linux不能完全适用于安卓操作系统。为此,NSA在SE Linux基础上开发了SE Android。SE Android是目前最为流行的安卓系统安全加固的版本。从安卓操作系统Release 4.3版本开始,标准源码默认包含了SE Linux的支持。
在SE Android机制下,默认的情况是不允许任何访问,所有允许的访问都必须在安全访问策略文件中明确授权。这就意味着安全访问策略是整个安全机制的关键所在。安卓系统在发布时,仅提供一些默认的、通用的安全访问策略,供开发者选用。如果想根据产品的需求提供更丰富多样的安全能力,则需开发人员通过构建自己的安全访问策略和对应的安全系统架构,实现满足多种安全需求的系统解决方案。
图1 3种系统安全方案示意图
针对安卓移动终端上日益严重的安全问题,为了满足个人信息安全和企业移动办公对智能终端安全性的迫切需求,本文提出一种终端双域系统安全技术方案。
本方案基于安卓操作系统原生安全机制,构建自有系统安全架构和安全访问策略,通过对系统从下到上进行改造,在原有完全开放的用户空间基础上,构建出一个安全空间,从而形成具有两个不同域——开放域和安全域的终端双域安全系统。系统对安全域运行的应用及其数据进行安全保护,而对开放域的应用和数据不做限制。开放域内,用户可自由安装、运行和卸载应用程序,根据需要对数据文件进行自由存储、分发、访问等。而安全域内,用户对应用的安装、运行和卸载,数据文件的存储、分发和访问,以及移动终端的外围设备及网络连接的工作状态的控制,都要根据一定的安全访问规则进行执行,从而实现对安全域内应用、数据以及系统运行环境的安全保护。
本方案主要由如下部分组成。
(1)系统安全架构:基于SE Linux的安全模型,创建自有安全访问控制策略,对操作系统的内核层、框架层以及应用层进行改造,实现安全域的构建, 并为安全域内应用和数据提供多种安全防护功能。
(2)安全访问控制:通过创建域安全标签,对系统访问的主体与客体进行安全上下文的标识,设计和编写不同域的系统安全访问控制策略,从而在系统内核层,实现对系统资源访问的细颗粒度权限管理。为系统上层应用和数据的安全防护提供底层基础。
(3)应用的隔离:结合自有安全访问策略,通过对操作系统框架层程序安装/卸载、访问等组件的改造,实现对安全域内应用与开放域内应用的隔离,对安全域内应用的呈现、安装/卸载、运行时应用间的数据访问的安全防护。
2.2.1 系统安全架构
完备的双域终端系统安全架构是一个自下而上的完整系统设计,包括系统资源安全访问控制、文件访问控制、设备管理、数据加密、应用来源管理、应用运行环境和数据隔离等。如图2所示。
图2 双域系统安全架构图
针对操作系统的由上而下的各个层面的改造如下。
(1)应用层:为用户提供安全域和开放域两个空间的独立呈现。开放域为用户呈现自主安装的应用程序,安全域内为用户呈现受保护的应用程序,并提供开放域与安全域的实时切换功能。
(2)应用框架层:利用应用签名以及黑白名单机制,提供安全域应用程序的分发和升级,支持对Camera、Bluetooth、WLAN、GPS等终端设备的状态管理,实现对安全域锁定/擦除等功能,响应安全访问控制策略的更新,管理安全域的网络连接。同时,对域内所安装应用标注安全上下文,为系统资源的访问权限控制提供依据。
(3)内核应用层/库函数层:提供对安全域进行安全防护的定制策略库的加载和管理,实现安全域内系统资源访问控制的底层基础。
(4)内核层:在内核初始化时载入定制安全访问策略、网络访问控制表,在系统运行期间,根据既定策略保护系统安全。
2.2.2 安全访问控制
根据双域系统安全的设计目标,本文提出构建自有安全访问控制策略以及配套的系统安全控制机制,从而为系统上层的多种安全功能提供坚实的底层基础。
主要通过新的域类型的定义、域密钥的创建、域安全上下文的创建、域内应用和文件的安全上下文标记、安全策略文件的创建、策略文件安全防护和远程动态更新等技术手段,针对安卓多用户进行的安全机制扩展。
(1)定义新的域类型。为了在安卓系统原本开放的用户空间中构建出一个安全空间,并实现安全空间与开放空间的应用运行和数据访问在系统底层的隔离,本方案定义了新的域类型,包括安全域内各类应用所对应的域类型。相应的,系统里添加了新域对应的定义,配套的域安全上下文,域的进程和文件对应的安全策略文件等。同时,新增加了应用签名密钥,用于对安全域的应用进行签名。
(2)创建新的安全策略文件。安全策略文件定义了主体对客体的访问规则,SE Linux强制访问控制的核心原则就是最小权限原则。也就是只有符合安全访问控制规则的访问才能进行,没有通过安全策略文件规则允许的访问全部禁止。为实现双域系统隔离和对安全域内应用和数据的防护,创建了一组安全策略文件对安全域的各项访问许可进行详细定制,如访问网络的权限,访问各种外设的权限,访问数据的权限等。
(3)构建安全域应用和文件的安全上下文关联。由于安全策略文件定义的访问控制规则是以访问主体和客体的安全上下文为基础进行描述的,为了使安全策略文件能够真正起作用,还要对访问控制的主体和客体进行正确的安全上下文的关联,也就是打上安全标签,系统才能根据各自的安全上下文查找对应的访问控制规则,判断是否允许相关访问操作。
本方案主要进行了新创建的安全域内的受保护应用程序进程,应用程序文件和数据文件的安全上下文关联。在应用程序安装时,根据应用程序签名,对应用程序文件进行安全上下文类型的标识。在应用程序启动的过程中,根据应用程序签名,对应用程序进程进行安全上下文进行标识。
另外,本方案还通过内核应用层的策略管理模块,支持安全策略文件动态更新的机制,安全策略更新后,重新载入内核并重启系统,使移动终端可动态获取最新安全策略文件,方便企业对移动办公终端的安全域进行实时管理。
通过以上技术手段,应用程序进程对其它进程或系统资源进行访问时,根据建立的安全访问控制规则,最终实现了对双域系统资源访问的相互隔离与控制。通过规则的控制,使得在同一个域下,应用仅可访问本域允许的数据和系统资源,而不能访问其它域的数据和系统资源。对终端外设(摄像头、蓝牙等)的控制也基于使用者所处的工作域, 根据所在域对外设的安全策略决定能否使用终端外设,从而对系统资源的访问实现了进程级颗粒度的控制。
2.2.3 应用隔离
安全访问控制构建了双域安全系统的底层基础,双域的隔离主要体现在应用与数据在不同域之间的隔离。数据的隔离通过系统底层安全访问控制机制和策略文件即可实现,而应用的隔离则需要考虑更多方面的工作。应用隔离使属于不同域的应用程序仅在各自的域空间呈现,而且仅能访问所在域的数据和文件,不同域的应用程序之间不能互相访问,最终实现根据应用所在的域对应用的呈现、安装/卸载和应用运行时访问的控制。
如图3所示,应用隔离主要通过如下技术手段实现。
图3 应用隔离
(1)域的切换:通过域切换调用,实现用户层面的开放域与安全域的切换,进入当前域后,用户仅能看到属于当前域的应用程序呈现。
(2)应用的安装/卸载控制:实现对安全域应用安装/卸载的控制。在系统框架层,当接收到应用安装/卸载调用指令后,改造后的安装/卸载模块会与用户管理模块进行交互,获取当前域信息。如果是开放域,则直接调用系统安装/卸载流程,如果是安全域,则需要对当前应用进行签名检查。对应用程序的卸载管理流程与安装类似,也是根据当前域信息判断是否允许用户卸载应用程序,如果当前域为安全域,则根据管理规则进行管理。
(3)应用间访问:对应用运行时相互之间的访问进行控制,其实质就是对应用使用组件的访问控制。为了阻止开放域和安全域之间,应用通过相互访问而泄露信息,在系统框架层阻断应用通过安卓系统的组件进行跨域访问。在查询组件信息时,根据预定的安全策略对组件所属的域做过滤,阻止应用获取未经许可的组件信息,从而阻止应用使用相应的组件,实现不同域之间的应用的访问的隔离。
本方案提供了一种系统域隔离的技术实现。在终端上通过对系统从下到上的改造,构建了自有的安全防护策略,实现进程级精细访问权限管理,并对终端安全涉及的应用和数据的隔离,以及终端上信息编辑、分享等均进行了全面安全管理考虑。可结合终端远程管理平台,为企业和个人提供灵活、便捷的对移动终端的远程安全管理。满足了行业客户在移动信息化过程中,对移动办公终端安全的要求。
AbstractAs a main carrier and entry of the mobility information services, mobile phone has become the key component of the enterprise secure information system. In order to enhance the security of the popular mobile operating system, the key security techniques and mechanism of mobile operating system and security modules were researched. Based on the deep understanding of the system security mechanism, the article introduces a dual-persona security system solution based on SE Android. By thorough descriptions on key techniques of the solution, including the system security architect, security access control and the application isolation, the article demonstrated the feasibility and practical value of the solution.
Keywordssystem security; SE Linux; security policy; dual persona
Android OS security mechanism research and design
HUANG Jing, ZHAO Hai-yan, SUN Ling-ling
(China Mobile Research Institute, Beijing 100053, China)
TN918
A
1008-5599(2017)10-0011-05
2017-09-18
* 中国移动集团级一类科技创新成果,原成果名称为《企业移动安全管理解决方案及关键技术研究(和盾)》。