线性地址掩码(Linear Address Masking,LAM)是一种允许软件使用64位线性地址中未翻译的地址位,来存储元数据的CPU硬件特征。现各CPU厂商以不同的形式实现了这一技术,其中Intel将其命名为LAM,AMD将其命名为高位地址忽略(Upper Address Ignore,UAI),Arm称之为高字节忽略 (Top Byte Ignore,TBI)。
荷兰阿姆斯特丹自由大学研究人员提出一种基于Spectre的侧信道推测执行攻击——SLAM(Spectre based on LAM),可利用CPU硬件特征从kernel内存中获取root密码哈希值。
组件(Gadget)是软件代码中攻击者可以操纵以触发推测执行并推测敏感信息的指令。虽然推测执行的结果被丢弃,但这一过程仍然会留下一些痕迹,比如修改的缓存状态。攻击者利用这些信息可以推断出如操作系统和其他程序的数据等敏感信息。
SLAM攻击的目标是使用机密数据作为指针的未掩码的小组件,这在软件中是很常见的,可以用来窃取任意ASCII码kernel数据。研究人员开发了一个扫描器,并在Linux kernel中发现了数百个可利用的小组件。
在现实场景中,攻击者需要在目标系统上执行可以与为掩码的小组件交互的代码,然后使用复杂算法来度量副作用,以从kernel内存中提取出密码或加密密钥这类敏感信息。
PoC代码和数据已上传到Github,下载地址:https://github.com/vusec/slam
SLAM影响以下处理器:
·现有的受到CVE-2020-12965漏洞影响的AMD CPU;
·未来支持LAM的Intel CPU;
·未来支持UAI和5级分页的AMD CPU;
·未来支持TBI和5级分页的Arm CPU。
Arm发布安全公告称其系统可以缓解Spectre v2和 Spectre-BHB攻击,因此并不会采取措施以应对SLAM攻击。
AMD称当前Spectre v2缓解措施可以应对研究人员提出的SLAM攻击。
Intel称在发布支持LAM的下一代处理器之前将会提供软件指导,比如部署线性地址空间分割(Linear Address Space Separation,LASS)安全扩展以防止推测地址访问。
相关研究成果更多参见:https://www.vusec.net/projects/slam/
参考及来源:https://www.bleepingcomputer.com/news/security/new-slam-attack-steals-sensitive-data-from-amd-future-intel-cpus/