当前位置: 首页 > 科技观察

Linux安全漏洞可绕过Spectre补丁

时间:2023-03-12 19:43:43 科技观察

3月29日,研究人员在Linux操作系统中发现了两个新的安全漏洞。从内核内存中获取敏感信息。漏洞概述这两个漏洞由赛门铁克研究员PiotrKrysiuk发现,CVE编号为CVE-2020-27170和CVE-2020-27171,影响5.11.8之前的Linux内核版本。该安全补丁已于3月20日发布,Ubuntu、Debian、RedHat等系统也已打上该补丁。这两个漏洞都与Linux内核对伯克利包过滤器(BPF,BerkeleyPacketFilter)的扩展有关。BPF允许用户直接在Linux内核中执行用户提供的程序。在加载这些程序时,Linux内核会对程序代码进行分析,以确保安全。但是修复Spectre漏洞的分析不足以保护Spectre漏洞的利用。CVE-2020-27170是最严重的漏洞,可用于从内核内存中的任何位置获取内容,这意味着它可以窃取机器任何RAM中的内容。在受影响的系统上运行的非特权BPF程序可以绕过Spectre补丁并不受任何限制地执行越界BPF程序。攻击者可以通过侧通道访问内存内容。允许非特权BPF程序对某些未定义ptr_limit的指针类型执行指针运算。在对此类指针执行指针运算时,Linux内核不包含任何防止越界推测的保护措施。CVE-2020-27171漏洞可以从4GB内存空间获取内容。该漏洞是在保护指针算术运算免受越界推测时操作错误导致的安全漏洞。在受影响的系统上运行的非特权BPF程序可以利用此错误从4GB内核内存执行推测性越界加载。与CVE-2020-27170漏洞类似,攻击者也可以通过侧通道恢复内核内存的内容。漏洞利用最有可能发生漏洞利用的情形是多个用户访问一台受影响的计算机,此时非特权用户可能滥用上述任一漏洞从内核内存中提取内容以定位其他用户的秘密信息。如果攻击者可以访问易受攻击的机器,攻击者还可以将恶意软件下载到受影响的计算机上进行远程访问,然后利用漏洞获取机器上其他用户的信息。Piotr使用了2种不同的方法来证明可以绕过这些保护。这两种方法相互独立,都允许非特权本地用户从内核内存中提取内容,包括密码、剪贴板内容等。谷歌研究人员还发布了一个用JS编写的PoC,证明可以1kb/s的速度泄漏数据在运行Chrome88浏览器的IntelSkylakeCPU上。GooglePoC代码请参考:https://security.googleblog.com/2021/03/a-spectre-proof-of-concept-for-spectre.html更多技术细节请参考:https://赛门铁克企业博客。security.com/blogs/threat-intelligence/spectre-bypass-linux-vulnerabilities