Re: [情报] Intel严重漏洞 OS更新将会降低效能

楼主: johnnyu571 (练就对了)   2018-01-05 15:42:08
※ 引述《jclin (状态:idle)》之铭言:
: ※ 引述《s25Ag5d4 (function(){})()》之铭言:
: : (删)
: : 1 ; rcx = kernel address
: : 2 ; rbx = probe array
: : 3 retry:
: : 4 mov al, byte [rcx]
: : 5 shl rax, 0xc
: : 6 jz retry
: : 7 mov rbx, qword [rbx + rax]
: : 在第四行会产生一个例外,但因为 OOOE 与推测执行,造成第
: : 七行的读取内存行为也执行了,它存取的资料被从内存中
: : 搬入快取,但因为在第四行产生例外,因此 rbx 并没有真的
: : 被写入资料。因为 rbx + rax 上的资料被移到快取了,它的
: 补充一下细节.
: 第四行一定会引发 exception,因为 user space application 不可以这样
: 直读取 kernel data。但是因为 OOOE 跟 superscalar,
: line 4 之后的指令也一并被拆解为 micro-ops 充份利用 CPU 上的运算单元
: 最后等 line 4 和后面的 uOPs 做完 in-order 回到 architecture state,发现
: line 4 会有问题才 raise exception,并且把已经 OOOE 多做的资料清掉跟准备
: 发出 exception。但是这时会有 race condition 产生.
: 虽然 line 4 不允许被执行,但是后面的因为 uOPs 已经做了,
: rbx + rax 指向的资料已被搬进 cache。rbx 是自己程式记忆起头,而 rax * 4096
: 就是 shift left 12, 避免预先读进相邻的 data 到 cache line
: 这时再利用以前的 paper 的 flush+reload 技巧把 cache 状态读出来
: 就可以知道 rcx 这个 byte 的值为何
以我的理解说个前显易懂的说法看看对不对
以帐号密码来说
当我输入帐号密码后
CPU要确认你的帐号密码对不对
要拿全部的帐号密码来比对才知道你输入的是对还错
所以当骇客输入错误的帐密时
所有的帐密都会被丢到cache里面去做比对(cache速度比ram快非常多)
可是比完你输入的帐密是错误的
这时候骇客就可以把cache的资料通通抓走
因为里面的资料一定是帐号密码
总不可能你输入帐密去拿元素周期表来比对吧

Links booklink

Contact Us: admin [ a t ] ucptt.com