Systex 2017 论文选读

Posted by Maxul's Technical Notes on December 8, 2017

SGX - BOMB : Locking Down the Processor via the Rowhammer Attack

  1. Intel处理器在发现EPC页被物理攻击后,直接就将这个处理器锁起来。
  2. Rowhammer打破Intel的假设,在软件上构筑对DDR内存条的特殊访问,使处理器误以为自己被攻击了,然后drop&lock,导致拒绝服务攻击。
  3. 用这个方法就可以使大量服务器拒绝服务,而发现这种攻击并防范未然更难。
  4. CATT/GATT (SEC 2017) 提出阻止对EPC区域相邻两行的访问;或使用Uncore PMU去检测;更好的方法是杀死enclave,而不是彻底重启。

Challenges For Scaling Applications Across Enclaves

  1. 借助便宜的多台机器实现分布式服务,可以获得高的性价比。远程认证对分布式可信执行环境(DTE)十分关键。
  2. 挑战在于_信用从点对点变成了端到端_!也就是说,传统的云服务可以用松散结构提供类似反向代理的架构,现在我们必须要验证后端的服务节点是否满足我们的安全设计,由此扩大了TCB、攻击面和安全风险。某些enclave被攻破后整体安全备受考验。(质疑:之前的网络安全假设过大,假定所有的DNS和中继都是可信且能正确工作的。减小假设的方式是找到关键性的几个网络节点,如BGP,这些点部署上Enclave,其负责对内部的安全性进行验证,由此构成可信链。)
  3. 作者的洞见来自用SGX实现一个云级别的密钥管理服务。作者提出,问题不局限在目前使用的SGX方案上,任何TEE都面临相同问题。而且一味依赖远程验证是不够的,我们要找到更加通用的做法(笔者想:一旦网络不可用,远程验证失败,将存在大规模拒绝服务攻击,其容错率和鲁棒性都太差)。挑战点在于如何找到正确的抽象和原则(principals),_减少开发者和管理者出错_带来的风险。
  4. 分布式系统通常要求更高的可用性。当软件面临升级(安全缺陷或策略变更)的情况下,一般很难将所有节点一次性离线升级,因此必须面临新版本软件相信老版本的安全问题。
  5. 验证和软件签名归根于可信问题,包括代码质量、编译工具以及人为因素。如何证明一个二进制已经被可信机构审核也是个问题。
  6. 本文作者视野较广,立足点高。启发意义大。

Hardening Intel SGX Applications: Balancing Concerns

  1. 在Enclave中实现大而全的full (unmodified) applications (FApps)和小而精简的pieces-of-application-logic (PALs)安全架构应该被区别对待。
  2. 首先假设不一致,前者考虑通用型和兼容性,希望能运行更多程序,对程序修改少,后者更加注重安全,量体裁衣,小而可以形式化验证,同时用类型安全语言重写。二者的当量和复杂度不一致,互相转化不太实际。
  3. 性能上看,FApps主要是由于自身过大带来的换页开销,而PALs则花在了Ocall/Ecall这样的模式切换上。