Page 161 - 《软件学报》2020年第10期
P. 161

张倩颖  等:抗电路板级物理攻击的操作系统防御技术研究                                                      3137


         4.2    技术不足之处
             大部分方案只保护部分关键代码,不能提供全系统加密.目前绝大多数方案主要是保护应用程序的关键数
         据,没有考虑对操作系统内核的保护.实际上,本文第 3.3.1 节已经指出,如果攻击者具备全方面的电路板物理操
         控能力,在没有对内核进行保护的情况下,其完全有能力从总线获取内核的内存镜像甚至让处理器运行内核态
         的恶意代码.攻击者一旦攻破内核,也就具备控制整个系统的能力,从而使得应用层的保护没有意义.这也是为
         什么大部分方案的威胁模型只考虑部分板级物理攻击,主要是冷启动攻击,而不考虑总线攻击,或者仅考虑被动
                                                                              [7]
         式总线窃听攻击.然而总线攻击是板级物理攻击的一个典型案例,以 MIT 团队攻击 Xbox 为例,其所用到的硬件
         成本仅几十美元,是一种非常严重并且必须考虑的实际威胁.
             对系统性能影响较大.软件方式的内存保护需要使用软件加密引擎来对片外内存进行加密,而软件加密引
         擎会占用处理器资源,从而影响普通程序的运行效率.另外,很多方案基于寄存器实现,中间计算结果存储在寄
         存器中,为避免进行上下文切换将中间计算结果切换到不安全的内存中,每次调用必须是原子操作并且占用时
         间不能太长以免影响用户输入响应,这种方式会造成频繁的关中断和上下文切换操作,从而降低系统性能.通过
         统计各种方案的实验结果,发现大部分方案都给系统带来了 2 倍以上的性能负载,而 Minimal Kernel 等全系统加
         密方案甚至给部分应用带来几十倍的性能负载.软件加密带来的负载可以通过一些硬件密码加速器来缓解,譬
         如 TRESOR 方案使用 x86 架构提供的硬件加密指令 AES-NI 来降低内存加密带来的性能负载.
             影响部分专有功能的运行.一些方案占用了处理器上一些具有专门用途的硬件资源,譬如 AESSE 方案占用
         了用于多媒体计算的 SSE 寄存器,TRESOR 方案占用了用于程序调试的断点寄存器,CaSE 方案占用了用于提高
         内存读写速度的缓存等等.占用这些硬件资源必然会对相关功能的正常运行造成影响.
             缺乏对隔离机制的支持.大部分方案将板级物理攻击防御组件实现为操作系统的一个内核模块,但是并没
         有与其他内核组件进行隔离,因此一旦攻击者攻破内核就完全有能力禁用防御组件.不但 Linux、Windows 这类
         大型操作系统经常被暴露出安全漏洞,像 TEE OS 这种专有的小型操作系统也被暴露出多个高危漏洞
         (CVE-2013-3051,CVE-2014-4322,CVE-2015-4422 等).如果软件实现的抗物理攻击组件没有与操作系统隔离,那
         么攻击者可以利用软件漏洞禁用抗物理攻击机制,这也是大部分方案都假设内核安全的原因.实际上,学术界已
         经提出在内核内部建立逻辑隔离地址空间的技术                   [53−56] ,并且该技术仅依赖处理器的内存管理等基本机制,可广
         泛应用在各种平台上.因此,增加隔离机制是增强当前方案安全性的一个可行思路.
         4.3    工程应用建议

             首先,对于像 Windows、Linux 这样的大型操作系统,建议将防御组件以内核模块的形式实现在内核层,然后
         向上层应用提供相应的安全服务.并且不建议这些操作系统使用全系统加密方案,因为以 Minimal Kernel 和
         SecTEE 等全系统加密方案的性能评估结果来看,全系统加密带来的性能负载可达 2~50 多倍(主要与应用对内
         存的访问频率有关,对内存访问越频繁性能影响越大);而密码算法保障以及应用程序保护等非全系统加密方案
         带来的性能负载一般在 2 倍以内,最差情况也在 10 倍以内.大型操作系统对性能要求较高,而大部分应用的安全
         要求不需要达到防御物理攻击的水平,因此将防御组件实现为内核模块并只保障安全密切相关的应用即可.但
         是为了防止内核软件漏洞导致攻击者使用软件方式即破坏防御组件的安全问题,建议参考内核嵌套隔离地址
         空间技术    [53−56] 在内核层构建一个受保护的隔离地址空间,该技术通过独立页表、安全上下文切换、内核态代码
         去特权指令等安全机制保证其他内核组件无法访问隔离地址空间内部的代码和数据,并且只能通过预先定义
         好的接口调用隔离地址空间内部的安全服务,从而保证隔离地址空间与其他内核组件的逻辑隔离;然后在该隔
         离地址空间内运行可抵抗板级物理攻击的防御组件并向外部提供调用接口,应用层可调用该接口实现对关键
         数据的保护.
             其次,对于安全性要求较高的小型操作系统,譬如 TEE OS 或安全密切相关的嵌入式 OS,建议使用全系统加
         密方案.因为 TEE OS 这类操作系统处理的主要是安全敏感业务,譬如密钥管理、身份认证、移动支付、数字版
         权保护和个人生物信息存储等,一旦信息泄露造成的损失较大.在这种高安全要求的背景下,为系统部署安全性
   156   157   158   159   160   161   162   163   164   165   166