张经宇
CPU漏洞熔断、幽灵原理、风险与应对措施
张经宇1,2
1.中国移动通信集团有限公司,北京 100033 2.天津大学微电子学院,天津 300072
分析了Intel、AMD和ARM等CPU芯片存在熔断、幽灵系列等安全漏洞的技术背景、漏洞原理、风险及影响,提出了应对措施和修复方法。
CPU;安全漏洞;熔断;幽灵
旁路攻击是一种从电子系统物理实现过程中获得信息的攻击方式。电子设备在计算过程中除了输出正常结果外,通常会有其他可观察的特征。其中运行时间、功率消耗、电磁泄漏甚至声音都可以作为信息源,用来进一步进行系统破解。对于个人电脑、手机等,由于可执行未知来源的程序,它的旁路攻击手段可以不需要外部测量设备,主要针对缓存时间、分支预测历史、分支目标缓冲器等,还有装载错误攻击来改变物理内存和CPU的值。
现代CPU的线程之间共享缓存,意味着内核数据和不同程序的数据混合放在一起,只有在计算结果提交时才会检查权限。这就会为不同线程间窃取数据留下隐患,常见的高速缓存隐蔽通道窃取数据方式有Flush+Reload和Evict+Reload[1]。
为了提高CPU执行效率,乱序执行被引入。在传统的顺序执行架构中,指令严格按照顺序执行。由于存储读取速度低于CPU执行速度,因此经常会出现CPU停下来等待数据读取的情况,从而降低整体运行速度。如从内存中提取数据需要超过100个时钟周期,而处理一条指令一般仅需4~5个时钟周期,就会出现CPU等待的现象。乱序执行可以交替执行不同的流水线,从而节省等待时间,保证整体运行速度。……