系统与基础设施github.com
Sandsifter:发现 x86 CPU 未公开指令与漏洞
Sandsifter: find undocumented instructions and bugs on x86 CPU
2017 — 2018,它一次次回到首页
黑点是上首页(≥ 50 分)的那次投稿,空心点是没冲上去的投稿,点越大分数越高。
导读
Sandsifter 是一个 x86 CPU 指令模糊测试工具,通过系统化地生成并注入随机指令,从非特权用户态探测处理器,找出未公开指令和 CPU 缺陷。作者(Domas,movfuscator 的作者)曾用它发现类似 f00f 的可锁死内核的畸形指令,并在 Black Hat 上做过演示。
为什么经久不衰:它展示了仅凭用户态程序就能逆向探测 CPU 隐藏行为的思路,是硬件安全领域的经典工具,至今仍是研究未公开指令和处理器缺陷的起点。
HN 评论精选
作者发现了可从用户态锁死内核的新指令级漏洞,细节待披露
幻灯片要点总结:在某款处理器上发现了一条指令——ring 3 下的一条畸形指令就能锁死系统;已在 2 个 Windows 内核和 3 个 Linux 内核上验证;内核调试、串口 I/O 和中断分析似乎证实了这一点;负责任披露尚未完成,暂不透露芯片、厂商或指令细节。他又发现了一个新的 f00f 式漏洞,2017 年冬会很有意思。
_wmd查看英文原文
tl'dr of the slides: Found on one processor... instruction Single malformed instruction in ring 3 locks Tested on 2 Windows kernels, 3 Linux kernels Kernel debugging, serial I/O, interrupt analysis seem to confirm Unfortunately, not finished with responsible disclosure No details available [yet] on chip, vendor, or instructions He's found a new f00f bug, winter 2017 is going to be interesting :)
芯片厂商长期靠隐藏功能收费,且对未公开指令数量之大表示怀疑
相关报道:芯片厂商几十年来一直通过软件隐藏或激活功能并额外收费。另外 GitHub 说有“数百万”条未公开指令?我不太懂汇编,但这个数字听起来高得离谱。
hellbanner查看英文原文
Related: https://www.theregister.co.uk/2013/05/20/intel_chip_customization/ "Everybody hates the golden screwdriver upgrade approach, where a feature is either hidden or activated through software, but the truth of the matter is that chip makers have been doing this sort of thing for decades – and charging extra for it." ""We are moving rapidly in the direction of realizing that people want unique things and they are going to want them in silicon. In some cases, it will be done in software," said Waxman." Also, Github says "several million" undocumented instructions.. is that right? I don't know much about assembly but that number sounds absurdly high.
这些隐藏指令可能涉及调试/分档,甚至有望关闭 ME 等隐藏功能
非常有意思。我猜其中很多是用于调试和分档(binning)的指令。有些可能解锁本不该访问的 CPU 部分,甚至可能允许关闭 Management Engine 这类“安全特性”。希望结果能移植到 GPU、ARM 等其他硬件上。
dtx1查看英文原文
This is highly interesting. I assume a lot of those are going to be debug and instructions to help the binning process. Some of these might even unlock access to parts of the CPUs we aren't supposed to have access too, opening the doors to custom microcode (unlikely that anyone outside the CPU OEM can do that though) but may allow us to disable "security features" such as the Management Engine. This is a really interesting approach and i would love to see the results ported to other hardware/vendors. The same could potentially be done with GPUs, ARM-CPUs, etc.
指出作者是 movfuscator 的作者
这人和 movfuscator 是同一位作者——那个工具能把程序编译成只用 x86 MOV 指令的代码。
pkaye查看英文原文
Same guy who did the https://github.com/Battelle/movfuscator which compiles programs into code with only the x86 MOV instruction.
历次讨论
同类还值得读
TTY 揭秘(2008)
The TTY demystified (2008)
经典文章深入剖析了 Unix/Linux 中 TTY 子系统的工作原理,包括线路规程、终端驱动、信号与控制字符等机制。
系统与基础设施上首页 11 次 · 2009–2025linusakesson.net编辑精选为什么 GNU grep 这么快
Why GNU grep is Fast
FreeBSD 邮件列表上一篇广为流传的帖子,解释 GNU grep 为什么快:核心在于 Boyer-Moore 字符串搜索算法配合精心优化的内部循环和 I/O,让程序在搜索时“…
系统与基础设施上首页 9 次 · 2010–2022lists.freebsd.orgXplain:为普通人讲解 X11
Xplain – Explaining X11 for the rest of us
《Xplain》是作者(HN 用户 Jasper_)写的一系列 X11 长文,用他在浏览器中重建的 X11 绘图模型做交互演示,讲解 X11 的绘图模型与窗口系统设计。
系统与基础设施上首页 6 次 · 2013–2020magcius.github.io编辑精选旋风教程:为 Linux 创建极小 ELF 可执行文件(1999)
A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (1999)
breadbox 写于 1999 年的经典教程,主题是如何为 Linux 手工构造并裁剪出体积极小的 ELF 可执行文件。
系统与基础设施上首页 6 次 · 2007–2025muppetlabs.comPostgreSQL 内部原理
The internals of PostgreSQL
《The Internals of PostgreSQL》是一本免费在线书籍,系统讲解 PostgreSQL 的内部实现,包括查询处理、并发控制、WAL、缓冲区管理等核心机制。
系统与基础设施上首页 5 次 · 2017–2025interdb.jp编辑精选