1权限策略
(1)增强安全Linux系统SELinuxAndroid系统权限主要由应用层权限和Linux内核的文件系统权限组成,APP应用通过在AndroidManifest.xml文件中声明申请应用层权限,Linux文件权限则明确了系统内每个文件的读、写、执行、拥有者和分组的权限。Android系统宽松的开放性为其带来高速的发展,但同时也暴露出各种安全问题,从Android4.3版本开始,在内核集成了SELinux,增强操作系统的安全性。SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于LinuxKernel中。SELinux定义了系统中每个用户、进程、应用和文件的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。只有同时满足了“标准Linux访问控制”和“SELinux访问控制”时,主体才能访问客体。在SELinux中,通过事先定义每个进程的允许操作,来禁止其进行越轨的操作。集成了SELinux的Android系统沿袭了这一机制,通过限制各进程的操作权限,可以防止恶意软件篡改系统。一般来说,攻击漏洞的恶意软件为了长久利用篡夺到的Root权限(系统超级权限),会在Android的系统区中埋设特点命令(如su切换用户命令),而在SELinux中,通过事先设定不允许以Root权限执行的各种进程改写系统区和重复挂载,就可以有效回避此类攻击。Android5.0之前的SELinux默认设置为Permissive模式,即对违规行为只作日志记录,供事后审计,而5.0版本则默认设置为Enforcing模式,真正启用SELinux,对违规行为进行拒绝并日志记录。由于Android系统的开源特性,开发者可对操作系统的内核源码进行修改,放宽SELinux策略检查,向没有锁定Bootloader的终端设备刷入定制的内核,以获得不受限制的Root权限。(2)用户参与的权限管理针对一些敏感的权限,iOS都会弹窗请求用户的许可,如开启GPS定位、网络连接、拨打电话等,而对一些涉及隐私的权限,则不对第三方APP开放,如收发短信、联系人管理等。由于iOS的封闭性对于权限管理机制有一定程度的保护,而且随着iOS系统的不断改进,越狱困难越来越大。
2安全域隔离
(1)TEE隔离iOS在推出TOUCHID功能的同时也推出了SecureEnclave安全域,SecureEnclave是苹果A7及以上主处理器的协处理器,其自身具有微操作系统,与主处理器共享加密RAM,通过中断与主处理器通信,操作系统借助它实现指纹特征数据、UID和GID密钥等需高安全级别关键数据的存储,其在架构上与TEE相似。TEE系统架构标准由智能卡及终端安全的标准组织GlobalPlatform发布,它提出了在原有硬件和软件的基础上,隔离出可信执行环境TEE(TrustedExecutionEnvironment)和富执行环境REE(RichExecutionEnvironment),其中TEE用于安装、存储和保护可信应用(TA),而REE用于安装、存储其它的应用。TEE具有自身的操作系统,与REE环境中的操作系统(如iOS、Android)相隔离。REE中的授权应用,通过代理驱动程序才能与TEE中的代理驱动程序通信,不可直接访问TEE的资源。TEE还可具备可信用户界面(TUI),为一些关键的屏幕显示和交互提供了安全保障。图3为TEE系统架构示意图。TEE在实际应用中也存在一些问题与缺点:TEE的硬件隔离主要体现在对CPU资源的分时或分核隔离、RAM资源和存储资源的寻址隔离等,物理器件上仍然与REE环境共享,实质上只是芯片内的软件调度隔离,因此不具备较高的防篡改能力。同时,TEE仍存在认证的问题,CC(信息技术安全评价通用准则)组织的EAL(评估保证级别)等级认证仍在进行中。针对TEE架构的移动平台攻击包括:1)芯片攻击利用JTAG调试接口对MMU(内存管理单元)处理器单元重新编程,修改RAM及存储的寻址范围,以获得相应数据的访问权限。利用物理探针在SoC芯片的数据总线上进行信号窃听。2)共享资源攻击如果REE环境中的非法代码能共享访问与TEE相同的CPU或RAM资源,那么TEE就存在受到共享资源攻击的风险。3)系统漏洞攻击在智能手机设备上发现了TEE内存访问控制的漏洞。Bootloader存在设计漏洞,可用于系统非法提权。整数溢出会给TEE的运行带来风险。在安全启动代码中存在证书处理或签名有效期的漏洞,允许黑客插入恶意代码。4)入侵式攻击篡改代码签名机制可允许黑客插入恶意代码。(2)SE隔离SIMallicance组织提出了基于Java语言的OpenMobileAPI机卡通信接口,使得运行于智能手机操作系统上的应用可通过操作系统提供OpenMobileAPI接口,使用ISO7816协议与SE安全单元中的Applet应用通信,现主要应用于Android系统。SE是具有防物理攻击的高安全性的芯片,内含独立的CPU、RAM、FLASH和操作系统,SE可存储密钥等关键数据信息,SE中的Applet应用可进行各种加解密算法的运算。主流SE芯片厂家通过了CC组织的EAL5+安全认证,这是目前较为安全的系统隔离方案。由于SE自身不具备UI界面,需借助上层操作系统(即REE),用户输入的PIN码等仍有被截获的风险。由于Android系统的开源特性,黑客可对操作系统中安全规则检查模块代码进行修改、编译并向终端重新刷入更改的模块,使得非授权应用可直接与SE中的Applet通信,为终端安全带来极大的风险。
3安全解决方案建议
REE+TEE方案或REE+SE方案在一定程度上提升了终端系统的安全性,但仍然存在一定的缺陷,难以抵挡高级别的攻击。以下针对运营商的具体情况给出一些建议:(1)架构方面:建议SE不直接与REE对接,而是与TEE的TrustedKernal对接,REE对SE的访问,可通过TEE进行,即REE+TEE+SE方案。(2)关键信息存储方面:原存储于TEE中的密钥、密码等关键信息,可转移放至SE中,借助SE的抗攻击能力,对关键信息实施保护。(3)关键运算载体:大数据量的加解密预算,如对称加解密运算等,建议由TEE中TA应用负责,借助TEE丰富的运算和内存资源保障响应性能;小数据量的加解密运算,如数字签名等,建议由SE中的Applet应用负责。(4)实施建议:电信运营商的SIM卡是现成的SE资源,且具有成熟的TSM后台对其管理,终端TEE可通过ISO7816接口与SIM卡SE进行对接,把SIM卡SE作为可信外围设备,从而构建出软件+硬件的整套安全解决方案。
4结束语
智能手机操作系统的安全问题,不可只从软件层面去解决,还需要借助硬件本身的能力对其进行完善。可信执行环境的架构已逐渐被终端厂家采用,并且已有移动支付类的代表性应用落地,相信在不久的将来,安全智能手机操作系统将会得到普及。
作者:何峣 乔雅莉 戴国华 王朝晖 单位:中国电信股份有限公司广州研究院