Breaking the x86 Instruction Set
Black Hat9 HN recommenders · recommended in 8 months, 2017-2022
381K views · 9 years ago · talk · evergreen
Christopher Domas presents at Black Hat 2017 how page fault analysis and processor fuzzing can exhaustively search the x86 instruction set. The talk uncovers undocumented instructions and hardware bugs and shows limits of disassemblers.
HN recommends it as a clever, entertaining and easy-to-follow talk on finding hidden x86 instructions with the Sandsifter tool.
51:00GOD MODE UNLOCKED - Hardware Backdoors in x86 CPUs
Black Hat
319K views • 8 years ago
46:34The Memory Sinkhole - Unleashing An X86 Design Flaw Allowing Universal Privilege Escalation
Black Hat
169K views • 10 years ago
46:04DEF CON 26 - Christopher Domas - GOD MODE UNLOCKED Hardware Backdoors in redacted x86
DEFCONConference
86K views • 8 years ago
1:02:52Joanna Rutkowska: Towards (reasonably) trustworthy x86 laptops
media.ccc.de
27K views • 10 years ago
1:03:40David Kriesel: Traue keinem Scan, den du nicht selbst gefälscht hast
media.ccc.de
7M views • 11 years ago
44:29Behind the scenes of iOS and Mac Security
Black Hat
36K views • 6 years ago
52:59David Kriesel: Lies, damned lies and scans
Free and Open Source Software Conference (FrOSCon) e.V.
58K views • 11 years ago
21:28DEF CON 26 - Christopher Domas - The Ring 0 Facade Awakening the Processors Inner Demons
DEFCONConference
24K views • 8 years ago
24:28Ichthyology: Phishing as a Science
Black Hat
38K views • 9 years ago
40:27"Finding bugs without running or even looking at code" by Jay Parlar
Strange Loop Conference
42K views • 7 years ago
25:41Compiling C to printable x86, to make an executable research paper
suckerpinch
479K views • 9 years ago
33:36Black Hat 2013 - Exploiting Network Surveillance Cameras Like a Hollywood Hacker
HackersOnBoard
1.1M views • 12 years ago
54:35BlueHat IL 2023 - David Weston - Default Security
Microsoft Israel R&D Center
47K views • 3 years ago
29:01Netanel Rubin: The Perl Jam: Exploiting a 20 Year-old Vulnerability
media.ccc.de
8K views • 11 years ago
52:01CppCon 2017: Louis Brandy “Curiously Recurring C++ Bugs at Facebook”
CppCon
158K views • 9 years ago
46:19Break Me00 The MoVfuscator Turning mov into a soul crushing RE nightmare Christopher Domas
Adrian Crenshaw
81K views • 11 years ago
53:09DEF CON 23 - Zoz - And That's How I Lost My Other Eye...Explorations in Data Destruction (Fixed)
DEFCONConference
533K views • 11 years ago
33:41OffensiveCon19 - Alex Ionescu - Keynote - Reversing Without Reversing
OffensiveCon
20K views • 7 years ago
1:05:45LibreSSL with Bob Beck
Jason Tubnor
25K views • 12 years ago
56:3736C3 - Uncover, Understand, Own - Regaining Control Over Your AMD CPU
media.ccc.de
23K views • 6 years ago
17 comments from Hacker News
What are the implications of such hardware on user security? Threat persistence, i.e. persistent rootkits, persistent remote monitoring if one has privs to tickle the CPU instructions that give access. It is just a matter of time before there are public tools for script kiddies to manage the OS within the CPU. Here [1] is an example of someone slowly making progress decoding all the undocumented instructions and here is a talk with a brief overview of the tools. [2] This is not specific to Intel's ME but it is the way people will eventually tame/exploit that beast in my opinion. There are more recent talks that get deeper into security rings in the CPU. This video [3] more related to your question but not specific to ME however can be used to access ME and much more. If this appears to difficult and time consuming just know that some folks out there have the documentation for the undocumented instructions. You may find some tools on github and other public repos for disabling ME. Use with care. Test on an identical model of system that is at the same firmware/BIOS and same model of CPU as those tools can brick your CPU. As @rocket_surgeron stated, one can buy CPU's with ME disabled but that will not disable the "God Mode" referenced in [3]. [1] - link [2] - ▶ this video [3] - link
I watched a super interesting Black Hat video on youtube that talked about discovering secret instructions on CPUs by iterating over each bit of opcodes until you get an illegal instruction, and thereby discovering if an opcode is valid or not. He set up a room full of PCs running his code and had hardware to auto-reset them when they crashed. ▶ this video
I would be really interested to see how often malicious software utilized undocumented opcodes that disassemblers incorrectly interpret and thus lead a security researcher down a rabbit hole while the actual opcode does something different. Like the 66e9xxxxxxxx and 66e8xxxxxxxx opcodes in x86_64 [1] If my understanding is correct, Stuxnet incorporated bytecode for the PLCs in S7comm, a protocol that was not open at the time. Though this is different then including undocumented opcodes for the system being targeted directly. [1] ▶ this video
How about undocumented instructions? Sandsifter[1] is an interesting project and the video from BlackHat[2] is a good watch. There's also a previous discussion of it on HN[3]. [1] link [2] ▶ this video [3] link
There was an interesting black hat talk about automatically finding undocumented instructions. [0] Interesting comment on twitter to the instruction of the original post[1] [0] ▶ this video [1] link
xoreaxeaxeax's videos about how to systematically parse the asm space of x86 really hit home to me how bad the encoding is. ▶ this video
"I thought you were saying that the use of microcode would complicate verification of the hardware." I do think that microcode opens up the possibility of subtle injections to follow code/hardware paths you might not easily predict. A really good talk on reverse engineering an ISA implementation: ▶ this video
This was also linked elsewhere but a security researcher was able to identify a significant number of undocumented instructions: ▶ this video
Great project and write-up. I'm reminded of a couple other projects. MC Hammer project for LLVM tests round-trip properties of the ARM assembler. link Sandsifter x86 fuzzer. link ▶ this video
There was a really good Blackhat talk a year or two ago in a sort of similar vein: they developed an approach to iterate and find undocumented opcodes. ▶ this video The software they developed is called Sandsifter.
Breaking the x86 Instruction Set by Christopher Domas. ▶ this video I found it easy to follow and pretty entertaining.
Related talk (relevant part starts at 38:43) ▶ this video Quote from the talk: I don't want to make it sound like the sky is falling. This was found on one very esoteric processor that is not used in widespread production. I think it's mostly interesting from an academic perspective that we have a tool that is able to find these kinds of things now.
I do also wonder if some speculative prediction / branching stuff can be controlled through undocumented CPU instructions: ▶ this video
my favorite were: - How the reputation economy is creating data-driven conformity link - DEF CON 25 (2017) - Weaponizing Machine Learning link - BlackHat 2017: Breaking the x86 Instruction Set ▶ this video
One of my favourite talks I watched was "Low Cost Non-Invasive Biomedical Imaging - An Open Electrical Impedance Tomography Project" link As it presented an interesting technique I'd never heard of before, along with an implementation. Also I thought the 'Breaking the x86 Instruction Set' talk was extremely clever - ▶ this video
Data Breach Transparency - At a minimum, their should be a penalty that grows from the time the breach was learned to when they disclose it publicly. - There should also be penalities for not being transparent about what exact data was leaked for what users. Social Security Number - SSN is similar to a password- you want to keep it hidden, and if it leaked, you should change it. However, we can't change it. Perhaps it should be considered more as a password? User Data Rights - People should know what personal data companies have on them. A good example of this is Equifax storing peoples home addresses- this could be disclosed. On the other hand, a it is probably fine to exclude other types of data, such as an advertiser storing your zip code- people probably don't care as much. - Should people have a right to have certain kinds of data (e.g. SSN) removed from websites? Adoption from USA Nutrition Label - Is it a good idea to mandate companies disclose the security they use? For example, at one time reddit had their passwords stored as plaintext and they got hacked. Disclosing basic security hygiene (e.g. password storage) somewhere standardized in the website would make it much less outrageous. Technology Improvement - Certain technologies enable hackers more than others. SQL seems to enable a lot of hacking. Should we discourage it? - Get rid of Intel ME technologies - link - Get rid of Intel hidden instructions - ▶ this video - Get rid of Simon and Speck - link - What is "be
> I trust its disassembler (especially for mainstream languages) more than almost any other disassembler Might I suggest Christopher Domas' Black Hat talk "Breaking the x86 ISA", along the way of which he demonstrates the limitations of all disassemblers out there, including IDA's :) Talk: ▶ this video Slides: link Paper: link