x86 CPU bug 更详细的技术细节流出

2018-01-04 08:54:56 +08:00
 dndx
https://spectreattack.com/
https://googleprojectzero.blogspot.com/2018/01/reading-privileged-memory-with-side.html

总结:
Intel 及 AMD CPU 受 "Meltdown" bug 影响,可以跨特权级读取内存,这是 KPTI 修复的 bug,AMD 不受影响。

"Spectre" bug 影响所有 AMD,Intel,ARM 的 CPU,可以读同一特权级下的不同进程的内存,目前没有可用的通用补丁。

理论上任何使用 JIT 编译器的软件都可能会受到这两个 bug 的影响,包括 eBPF,JavaScript V8 等等。

Chrome 已经发布了安全通告: https://sites.google.com/a/chromium.org/dev/Home/chromium-security/ssca
完全修复需要等待 Chrome 64 正式版。

两个 bug 都已经有 working exploit (包括基于 V8 读取 Chrome 进程任意内存的 exploit ),但是还没有放出。
15214 次点击
所在节点    分享发现
95 条回复
dndx
2018-01-04 11:45:19 +08:00
@gamexg 是的,而且更尴尬的是 Spectre 无法容易的修复,Chrome 64 要推出的“修复”也只是把 performance.now 的精度降低,让 timing attack become less efficient。并不是从根本上解决问题。

这也是 Chrome 官方只将其称为 "temporary measure" 的原因。
privil
2018-01-04 12:04:03 +08:00
@xuanboyi #40 https://www.zhihu.com/question/265012502/answer/288724020 是因为 PCID ? 不过这个漏洞对个人用户影响不大,云厂商啥的比较大。阿里云已经预定 12 号升级了
gamexg
2018-01-04 12:09:59 +08:00
@ryd994 #37 我看着是读取,如果只是读取应该无法取得内核特权吧?
Syaoran
2018-01-04 12:26:03 +08:00
小白表示看不懂
作为个人用户
如果让我选择 30%性能和安全
我选择 30%性能
dndx
2018-01-04 12:27:58 +08:00
@gamexg 嗯,内存读取是无法直接用来提权,但是可以用作提权的 vector。

换句话说,如果你已经可以在 Ring 3 里用普通用户随便读取别的进程的数据了,提权也没什么必要了。毕竟提了权也就是能读这些东西而已。
winterbells
2018-01-04 12:52:07 +08:00
好像都没人提到联发科。。
Akkuman
2018-01-04 12:58:21 +08:00
@winterbells 提到了 arm,不包括吗?
rocksolid
2018-01-04 13:02:13 +08:00
@winterbells 联发科一样使用 arm 架构
ltux
2018-01-04 13:35:13 +08:00
"Why is this all done without any configuration options?",嘻嘻,这不跟 iPhone 降频一个球样么,without any options.
ltux
2018-01-04 13:36:55 +08:00
用在苹果身上毫无违和感。

Because I really see exactly two possibibilities:

- Apple never intends to fix anything

OR

- these workarounds should have a way to disable them.
eurokingbai2
2018-01-04 13:42:05 +08:00
难道没有人提到龙芯么?
VYSE
2018-01-04 13:53:29 +08:00
struct array {
unsigned long length;
unsigned char data[];
};
struct array *arr1 = ...; /* small array */
struct array *arr2 = ...; /* array of size 0x400 */
/* >0x400 (OUT OF BOUNDS!) */
unsigned long untrusted_offset_from_caller = ...;
if (untrusted_offset_from_caller < arr1->length) {
unsigned char value = arr1->data[untrusted_offset_from_caller];
unsigned long index2 = ((value&1)*0x100)+0x200;
if (index2 < arr2->length) {
unsigned char value2 = arr2->data[index2];
}
}

凡是预测执行可能导致 arr2->data[index2]进入 cache 的架构都是受 SPECTRE 影响的.
iFlicker
2018-01-04 14:53:57 +08:00
@eurokingbai2 记得龙芯没有 x86 授权吧
eurokingbai2
2018-01-04 14:57:09 +08:00
@iFlicker 龙芯是 MIPS 指令集,整个流水线架构是自主研发的。
HuHui
2018-01-04 16:18:42 +08:00
突然想起《疯狂的硬盘》里的那个万能远程工具了。
zcljy
2018-01-04 16:35:20 +08:00
304 不锈钢盆(保证不漏)换各种 i5 i7 cpu,AMD 的兄弟抬下脚
BlueFly
2018-01-04 18:11:23 +08:00
没看懂,请问有没有漏洞攻击工具了?
redsonic
2018-01-04 18:20:14 +08:00
@BlueFly 好像还没有,但国家队应该有了,发现这个漏洞的研究员好像都签了保密协议。
VYSE
2018-01-04 19:07:56 +08:00
@BlueFly #57 test vulnerable 的 POC 有 https://github.com/Eugnis/spectre-attack
jaleo
2018-01-04 19:11:19 +08:00
所以国家一直在搞自主可控的处理器
前端时间还正式发布了首个自主可控的网络防火墙

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/419881

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX