来源(程序猿)

From: http://wwwbuild.net/CSDNnews/1282851.html

史上最大漏洞危机:影响所有 iPhone、Android、PC 设备,修复困难重重

CSDN

百家号01-0620:42

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

近日,英特尔的日子可并不好过。

作为全球知名芯片制造商,任何有关英特尔芯片漏洞的问题都会导致全球上百万设备遭受牵连。

这一次,“Spectre”和“Meltdown”的两个安全漏洞给了其狠狠一记重拳。



截止目前,包括 Linux、Android、微软 Windows 和苹果 OS X 操作系统,甚至主要的云计算供应商 AWS、Azure、谷歌云等均受此影响。国内腾讯云、阿里云也先后对此事进行了紧急回应。无疑,这一漏洞将波及 1995 年以来所有使用英特尔芯片的硬件设备,目前众多科技公司研究团队正加紧对这一漏洞的修补。

漏洞的罪魁祸首

实际上,这个漏洞是几个月前谷歌公司 Project Zero 安全团队发现的。根据其在1月3日的官方博文,英特尔芯片使用了一种叫做推测性执行(speculative execution)的方法,从而导致了这一安全漏洞。

简言之,为了提高性能,处理器会根据被认为可能是真实的假设,选择推测性执行指令。在分支指令发出后,相比传统处理器,具有预测性执行能力的处理器则会验证这些假设,如果假设有效,那么执行继续,如果无效,则解除执行,并根据实际情况开始正确的执行路径。但事实上,这种方式并不安全,因为通过寻找或构建一些指令,黑客就能在处理器回滚的时间窗口里进行一系列攻击。

这也就造成了利用漏洞能允许应用软件未经任何权限便可读取到英特尔处理器内核的信息,进而可能导致攻击者获取到用户设备上的一些敏感数据,如密码、登录密钥、用户的私人照片、邮件甚至是商业秘密文件。

不过,从目前外媒报道、厂商公布和技术人员测试的众多信息来看,除了英特尔,ARM、AMD等其他处理器厂商也存在以上安全漏洞问题。

修复漏洞的难度

截止到目前,还未有企业声明发现利用芯片漏洞的黑客攻击证据,不过,包括微软、苹果、谷歌在内的多家公司纷纷针对这一漏洞做出了回应,并发布了相关声明。

阿里移动安全专家蒸米、白小龙表示,虽然是硬件漏洞,但是在系统或软件层面上通过牺牲性能的方法还是可以进行修补的,比如苹果即是如此。在其近日发表的文章《性能 VS 安全?CPU 芯片漏洞攻击实战(1) - 破解 macOS KASLR 篇》中,作者基于英特尔芯片漏洞如何破解macOS KASLR攻击方面进行了阐述(注:以下引用已获作者授权):

Intel 的CPU 有五个软件预取指令:prefetcht0,prefetcht1,prefetcht2,prefetchnta 和 prefetchw。这些指令作用是提示 CPU,告诉一个特定的内存位置可能很快被访问。然而,Intel 的手册中却提到,预取“未映射到物理页面的地址”会导致不确定的性能损失。因此,可以通过 CPU 预读指令执行的时间长短来判断这个地址有没有被映射到物理页面上。



KASLR 的原理是在内核的基址上增加一个 slide,让攻击者无法猜测内核在内存中的位置。但是内核肯定是被映射到物理页面上的,因此可以使用预取指令去遍历内核可能的起始地址,如果执行预取指令的时间突然变短,就说明猜中了内核的起始地址。

作者在网上成功找到了破解macOS 10.13 KASLR的POC,并做了一点简单的修改:。其中关键代码如下:



这是一段汇编,参数会传入想要预取的地址,然后利用 rdtscp 和 rdtscp 来统计指令执行的时间,并返回。然后,从内核可能的起始地址开始,不断执行这段汇编代码,直到找到内核的起始地址为止。



可以看到在 0x15c00000 这一行,指令执行的时间明显缩短了。因此,可以猜出 Kernel Side 为 0x15c00000。



根据某内部漏洞修复人员在twitter上的回复,苹果已经在macOS 10.13.2上对此类芯片漏洞进行了修复,采用了牺牲性能的针对用户态使用两次映射的方式来解决该问题。并号称10.13.3上有更好的解决方案。另外iOS的A*系列芯片暂时还不受这类漏洞的影响。

总结

经此事件,广大开发者们更需及时关注补丁发布动态,对系统进行更新并应用适合的固件更新,有效防止自己的设备受到攻击。

已经发布的补丁更新参考链接:

Linux:

http://appleinsider.com/articles/18/01/03/apple-has-already-partially-implemented-fix-in-macos-for-kpti-intel-cpu-security-flaw

Android:

https://source.android.com/security/bulletin/2018-01-01

Microsoft:

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/ADV180002

Amazon:

https://aws.amazon.com/de/security/security-bulletins/AWS-2018-013/

ARM:

https://developer.arm.com/support/security-update

Google:

https://googleprojectzero.blogspot.co.at/2018/01/reading-privileged-memory-with-side.html

Intel:

https://newsroom.intel.com/news/intel-responds-to-security-research-findings/

Red Hat:

https://access.redhat.com/security/vulnerabilities/speculativeexecution

Nvidia:

https://forums.geforce.com/default/topic/1033210/nvidias-response-to-speculative-side-channels-cve-2017-5753-cve-2017-5715-and-cve-2017-5754/

Xen:

https://xenbits.xen.org/xsa/advisory-254.html

参考资料:

· https://weibo.com/ttarticle/p/show?id=2309404192549521743410

· http://www.antiy.com/response/Meltdown.html

· https://www.reuters.com/article/us-cyber-intel-researcher/how-a-researcher-hacked-his-own-computer-and-found-worst-chip-flaw-idUSKBN1ET1ZR

· http://www.thepaper.cn/newsDetail_forward_1938103

Link: http://www.asm32.net/article_details.aspx?id=7266