CVE-2017-5753 边界检查绕过又名每个人都在谈论的巨大错误
CVE-2017-5753 bounds check bypass aka the huge bug everybody is talking about
在阅读项目零关于 CVE-2017-5753 的解释时(参见此处 https://googleprojectzero.blogspot.fr/2018/01/reading-privileged-memory-with-side.html?m=1)我无意中发现了这个断言:
通过测量加载arr2->data[0x200]和arr2->data[0x300]所需的时间,攻击者可以确定推测执行期间index2的值是0x200还是0x300
据我所知,数组的访问时间不取决于您正在查看的偏移量,那么怎么可能在这里测量不同的加载时间?
谢谢
内存延迟取决于缓存 hit/miss。读
What Every Programmer Should Know About Memory 作者:乌尔里希·德雷珀。
或者只是阅读 Meltdown 攻击论文 (https://meltdownattack.com/meltdown.pdf),它解释了所有这些作为攻击工作原理的背景,包括 clflush
+Read side-channel 来转换微架构状态(什么是缓存)到架构状态(你是 运行 的非特权代码中的寄存器值)。
这是一篇相当不错的论文,但他们可能会更清楚,它取决于 Intel CPU 将仅内核页面映射视为对用户 space 代码的推测执行有效。如果您无权从内部读取的映射与未映射页面的行为相同,则不会存在漏洞。据推测,AMD 就是这种情况,这就是为什么 AMD CPU 在微体系结构上不受这种攻击的影响。但是英特尔 CPU 显然使用 TLB 命中并继续推测执行,直到故障负载试图退出。
链接自https://meltdownattack.com/的首页。
如果您只查看其他漏洞而不是 Meltdown,您可能没有看到它。但是旁路是一样的。
在阅读项目零关于 CVE-2017-5753 的解释时(参见此处 https://googleprojectzero.blogspot.fr/2018/01/reading-privileged-memory-with-side.html?m=1)我无意中发现了这个断言:
通过测量加载arr2->data[0x200]和arr2->data[0x300]所需的时间,攻击者可以确定推测执行期间index2的值是0x200还是0x300
据我所知,数组的访问时间不取决于您正在查看的偏移量,那么怎么可能在这里测量不同的加载时间?
谢谢
内存延迟取决于缓存 hit/miss。读 What Every Programmer Should Know About Memory 作者:乌尔里希·德雷珀。
或者只是阅读 Meltdown 攻击论文 (https://meltdownattack.com/meltdown.pdf),它解释了所有这些作为攻击工作原理的背景,包括 clflush
+Read side-channel 来转换微架构状态(什么是缓存)到架构状态(你是 运行 的非特权代码中的寄存器值)。
这是一篇相当不错的论文,但他们可能会更清楚,它取决于 Intel CPU 将仅内核页面映射视为对用户 space 代码的推测执行有效。如果您无权从内部读取的映射与未映射页面的行为相同,则不会存在漏洞。据推测,AMD 就是这种情况,这就是为什么 AMD CPU 在微体系结构上不受这种攻击的影响。但是英特尔 CPU 显然使用 TLB 命中并继续推测执行,直到故障负载试图退出。
链接自https://meltdownattack.com/的首页。
如果您只查看其他漏洞而不是 Meltdown,您可能没有看到它。但是旁路是一样的。