【通知】EasyStack发布CPU漏洞修复方案,保护客户免受安全威胁

Posted on 2018年05月13日

近日,外界安全研究人员发现 CPU存在安全漏洞,问题覆盖过去10年内绝大部分intel CPU型号,可导致操作系统内核信息泄露、应用程序越权访问系统内核数据等问题。 解决该安全隐患的完整修复方案包含两个部分,一是云平台Host宿主机修复,二是客户侧Guest操作系统更新。如果您的Guest操作系统采用了Windows,请密切关注微软公司的最新方案发布;如果您的Guest操作系统采用了某Linux企业的发行版,请密切关注该操作系统公司的最新升级方案;如果您的Guest操作系统采用了开源社区版本的Linux,EasyStack将密切关注社区关于此项安全漏洞的措施,并第一时间告知您最新进展。


 针对EasyStack云平台Host宿主机操作系统EasyStack Cloud Linux(ESCL)的修复,EasyStack于1月5日正式发布漏洞修复方案,如下: 

此次Intel CPU漏洞主要有以下三种variant: Variant 1: bounds check bypass (CVE-2017-5753) Variant 2: branch target injection (CVE-2017-5715) Variant 3: rogue data cache load (CVE-2017-5754) 

可分为以下两类别: Spectre (variants1 and 2): 打破进程之间的边界,允许存取其它进程机密信息。 Meltdown (variant3): 打破进程与操作系统之间的边界,使进程可以存取需特权访问的内存地址。 

分别对三种variant说明: Variant 1: bounds check bypass 攻击者可以在不跨越权限边界的情况下,利用欺骗CPU branch predictor和利用speculative execution的优化特性绕过权限检查将特定内存遗留在缓存,再经由同样位址即可读取缓存内容,整个过程发生在对操作系统是透明的,所以不会被察觉,整个内存空间都有可能泄露。 Variant 2: branch target injection 攻击者可以锁定受害者的间接跳转命令,因为跳转地址须由内存读出,所以会根据BTB缓存进行branch predictor,然后根据branch predictor结果再进行speculative execution,攻击者可以用特定方法填充BTB欺骗branch predictor,并利用错误的分支预测结果再进行speculative execution,KVM guest也可以利用这个方法存取host内存。 Variant 3: rogue data cache load 攻击者能利用Intel在retire instruction时才检查权限的特性(减少权限检查带来的性能损耗),在用户态直接透过非法访问特权地址(内核地址)间接获取内存数据,纵使会产生exception,但这后面的非法存取已经遗留在缓存,攻击者可以经由读取相对地址获取内核内存内容。


 解决方案: 引入KPTI,这个方法是分离每个进程的内核态和用户态页表,用户态页表去除掉内核地址的映射,所以用户空间纵使在speculative execution下也无法得知内核空间的实际映射,进而确保了数据不会被载入缓存,但是在切换kernel space(interrupt, syscall)时需要切换页表,切换页表隐含清空TLB(global entry除外),频繁切换可想像会有很大性能耗损,有实测数据是5%~30% slowdown。引入KPTI同时也会引入PCID,有支持PCID的IntelCPU可以减少TLB flush,降低KPTI所带来的性能影响。 


EasyStack Cloud Linux(ESCL):在注意到Google Project Zero团队发布的安全威胁后,EasyStack系统工程团队即刻开始着手进行安全威胁评估,并于1月5日下午发布第一个包含fixpatch的ESCL内核。 注: 常用于Linux Kernel动态热补丁的Livepatch不适用于此次内核更新场景,因为这个fix patch包含大量独立补丁,改动包含上百个内核文件,当中对function语义的改动,对数据结构的改动,以及ftrace跟踪不到的地方的改动等都使Livepatch在此次更新不可行。


 其他distribution的处理状况: Redhat: On going,但新的带有fix patch的bulid今天已经给出 https://access.redhat.com/security/vulnerabilities/speculativeexecution Ubuntu: On going,1/9发布新kernel http://blog.dustinkirkland.com/2018/01/ubuntu-updates-for-meltdown-spectre.html SUSE: released, 1/4 https://www.suse.com/support/kb/doc/?id=7022512 如有任何问题,可随时通过您的专属销售、技术服务人员联系反馈,或拨打热线4006485123-2-1,邮箱contact@easystack.cn。  

Posted in 产品技术 Tagged 新闻,解决方案