Researcher Exploits 18-Year-Old Design Flaw To Compromise X86 Chips 128
jfruh writes: Security researcher Christopher Domas has demonstrated a method of installing a rootkit in a PC's firmware that exploits a feature built into every x86 chip manufactured since 1997. The rootkit infects the processor's System Management Mode, and could be used to wipe the UEFI or even to re-infect the OS after a clean install. Protection features like Secure Boot wouldnt help, because they too rely on the SMM to be secure.
Right (Score:1, Interesting)
Design flaw my ass. I bet it was there deliberately and everybody knows who originally requested it. I just love the good ol US of A.
Re:Right (Score:5, Funny)
everybody knows who originally requested it.
Bush? Obama?
Re: (Score:1)
Bushama, the man who dares where no man has dared before.
Re: (Score:2, Funny)
Obama is Bush - he is just wearing a mask
Re: (Score:2)
Re: (Score:1)
We're through the looking glass here people!
Re: (Score:2)
And he would have gotten away with it too, if not for...oh, wait.
Re: (Score:3, Informative)
Re:Right (Score:4, Funny)
> so it could effect amd computers back to 2005 ish. does that even sound right?
No, you misspelled affect
Re: (Score:3)
... but it must have been there before that because of the single core processors before dull core became a thing.
Why would you even bother to infect dull core processors? It's not like you could do anything interesting with them.
Re: (Score:2)
Boring is where work gets done.
Re: (Score:1)
Re: (Score:3, Funny)
Hmm 18 years. That would be Clinton. But then math was never my strong point I am a republican after all.
Re: (Score:3, Funny)
everybody knows who originally requested it.
Bush? Obama?
Clinton was President from 1993 to 2001. It might have been her husband.
Re: (Score:1)
everybody knows who originally requested it.
Bush? Obama?
Hardly.. It would be somebody with real power in the administration...
Re: (Score:1)
everybody knows who originally requested it.
Bush? Obama?
Actually, I *think* he was referring to Reagan...
Exploit for machines that are already compromised (Score:4, Informative)
Design flaw my ass. I bet it was there deliberately and everybody knows who originally requested it. I just love the good ol US of A.
From the article linked:
"To exploit the vulnerability and install the rootkit, attackers would need to already have kernel or system privileges on a computer. That means the flaw cant be used by itself to compromise a system, but could make an existing malware infection highly persistent and completely invisible."
This doesn't let an outsider break into the system; it is a flaw that only is useful if you have already compromised the machine.
Re:Exploit for machines that are already compromis (Score:4, Informative)
This doesn't let an outsider break into the system; it is a flaw that only is useful if you have already compromised the machine.
For a Windows machine, that's not a very high bar, especially in 1997 and all the way until... well, it's a little harder today, but not that much harder...
The problem is persistence. If you get root, you can get firmware and nothing short of throwing the motherboard away would fix it. That's scary.
Re: (Score:2)
Like Windows, Linux is a complex rambling Swiss cheese and privilege escalations are pretty common.
Lean security protocols need to come first, which is why Qubes OS [qubes-os.org] is based on a Type 1 hypervisor (Xen). An attacker can try to use an exploit (like in OP) all they want in an untrusted domain, but they aren't going to get access to the hardware (or the other VMs, unless the user has done something to specifically expose those VMs to the attack).
Using a type 1 hypervisor (Score:1)
Lean security protocols need to come first, which is why Qubes OS [qubes-os.org] is based on a Type 1 hypervisor (Xen). An attacker can try to use an exploit (like in OP) all they want in an untrusted domain, but they aren't going to get access to the hardware (or the other VMs, unless the user has done something to specifically expose those VMs to the attack).
This assumes there is a security layer that is free of exploitable bugs and that there is no way to influence the lower security layers in a way that can exploit bugs in those layers.
That's a very big assumption unless the security layer you are talking about AND all lower security layers are all so simple that the code can be proven bug-free by inspection.
Re: (Score:2)
Re: (Score:2)
Just read the WP, it points out an ancient APIC compatibility hack that allows you to escalate from Ring 0 to Ring -1 (SMM). So in other words if you're already running at Ring 0 to start with, you can get into SMM. Sounds like an example of what Raymond Chen [msdn.com] calls an "other side of the airtight hatchway" attack, you already have to have complete system privs in order to carry out a privileged attack.
HA! (Score:5, Funny)
I use Alpha 21264 you insensitive clod!
Re:HA! (Score:5, Informative)
Doesn't matter. Any processor from Intel after 2011 no longer has the flaw...
Old bug; Intel knew about it in 2010; they fixed in 2011, now its on the frontpage of Slashdot in 2015..
Re:HA! (Score:5, Funny)
Slashdot has been quicker to get the news out of late...
Re: (Score:1)
Re: (Score:2)
Re: (Score:1)
In their defense: the publication of the exploit only happened recently. Slashdot isn't really to blame this time.
Re: (Score:2)
Doesn't matter. Any processor from Intel after 2011 no longer has the flaw...
Old bug; Intel knew about it in 2010; they fixed in 2011, now its on the frontpage of Slashdot in 2015..
Why is this modded 5 Informative? AC provides no evidence and in fact what AC says is completely untrue. All x86 processors are vulnerable to this kind of attack.
Re: (Score:2)
MB manufacturers use SMM to hide the fact they are doing all the work in the CPU.
e.g. the time the CPU spends twiddling bits running the ethernet port doesn't show up on your diagnostic tools.
HA HA ! (Score:2, Funny)
SSB1c2UgYSA2NCBiYXNlIHByb2Nlc3NvciwgeW91IGluc2Vuc2l0aXZlIGNsb2QgIQ==
Re: (Score:2)
SSBkb24ndCBnZXQgaXQ=
Re: (Score:2)
As Intel goes, maybe. The last x86 branded chips I can think of would be the Cyrix 6x86MX chips. Which I had to guess aren't susceptible to this attack.
Was already known possible (Score:4, Informative)
http://www.infoworld.com/article/2653209/security/hackers-find-a-new-place-to-hide-rootkits.html
We already knew this kind of thing was possible, so I guess this is just the first practical implementation? The article is short on details.
Was SMM ever really needed? (Score:1)
My understanding is that SMM is used, before all the TCG stuff about Secure Boot, etc., basically to control fans and shut down the system if the temperature is too high. And also to make USB keyboards appear as PS/2 hardware to DOS.
Are those functions really so expensive that they couldn't be offloaded to hardware on a chipset instead of trying to have the main CPU in your system act like it's own hardware watchdog?
Re: (Score:3)
Er... you just re-invented SMM.
To act as a mouse visible to DOS, it has to interact with the system interrupt tables. Remember the TSR days of old? You're putting stuff into main memory to have it executed whenever a certain interrupt happens. Which memory? Well, you need at least the USB Host Controller areas, plus something in low memory if you want it available to the BIOS.
Controlling fans, monitoring temperature, issuing safe shutdown commands etc.? Again all happens by talking to the main processo
Re: Was SMM ever really needed? (Score:2)
Re: (Score:2)
But a simple core (think of an embedded Arm core) could do all this, using in chip Ram, and hardly bothering the main Cpu. Why does Smm code even need the main Cpu to run?
'Cause it saves $0.25 per system shipped?
Re: (Score:3)
Because that core would STILL NEED to interface with main memory just the same. It would still need to access the same hardware as the main processor does. It would still need to operate at the level it requires to do those operations such that they are visible to the main processor - and that's what SMM does!
All you've done is replace an in-die kind of SMM with an external chip that needs more complicated routing, all kinds of interactions with main memory (at DMA speed, no less) and peripheral buses, et
Re: (Score:2)
My understanding is that SMM is used, before all the TCG stuff about Secure Boot, etc., basically to control fans and shut down the system if the temperature is too high. And also to make USB keyboards appear as PS/2 hardware to DOS.
Intel uses the chip of the keyboard to fix an issue with memory managment, don't want to mess with the keyboards.
Re: (Score:2)
My understanding is that SMM is used, before all the TCG stuff about Secure Boot, etc., basically to control fans and shut down the system if the temperature is too high. And also to make USB keyboards appear as PS/2 hardware to DOS.
Intel uses the chip of the keyboard to fix an issue with memory managment, don't want to mess with the keyboards.
Just read what was posted and the reply, it's more so important in a DOS environment as it's a gap in the first meg of accessible memory that's the issue.
Re: (Score:1)
Details (Score:5, Informative)
The article is very vague.
They remap the LAPIC to overlap the SMM memory region which makes data loads of the SMM code fetch values from the LAPIC registers instead of from memory.
Here [blackhat.com] you can find the slides and the whitepaper of the Black Hat conference talk.
It's a feature (Score:5, Interesting)
System Management Mode is a feature. It's meant to render separate processors unnecessary for tasks like temperature management and system specific keyboard shortcuts. These functions need to work even if an unsupported or no operating system is running. Consequently SMM behaves almost like a separate processor. That's not a flaw, that's necessarily so.
The problem isn't SMM per se. It's that there is no way to be sure what code is executing in SMM, because there is no way to guarantee which firmware the system is running. Basic firmware should be in ROM (not flash. Read Only Memory.) And it should only do one thing: Load the actual firmware from a removable medium, like a micro SD card. With all writable storage in the system accessible to external inspection, there would at least be a chance to find and reliably remove infections.
Re: (Score:3)
Well, the purpose of SMM mode is way back in ancient history, when PCs used DOS.
Back then "Power Management" was actually done by the system firmware - it to
Re: (Score:2)
It's all part of the bizarre non-design of the PC. The bootloader was always given far too much responsibility, compare to real computers that actual designers and you never see a boot system so bloated as the PC. There should never be a "need to work even if an unsupported or no operating system is running" feature.
It reemphasizes the overreliance on a monoculture that we have.
At last (Score:2)
If you're f*cked you're more than f*cked (Score:1)
"To exploit the vulnerability and install the rootkit, attackers would need to already have kernel or system privileges on a computer."
You know, even without this particular SMM attack vendor, a hacker who already has system level privileges on your PC renders your PC totally insecure, besides he also can ... rewrite BIOS or various firmware components of your PC to allow his code to survive an HDD wipe.
Re: (Score:3)
I'm fairly certain that AWS runs on VMs that get shuffled around. That's a whole new layer that probably prevents this kind of exploit unless you target a highly specific and insecure implementation.
BIOS/UEFI protection (Score:4, Interesting)
Stuff (Score:2)
Re:Stuff (Score:5, Insightful)
Because it's too complicated. There are too many possible failure modes and many of them can't be seen without a large effort to see them. About the only thing that might eliminate the holes is formal proofs, but that requires not only a complete revamp of how we code but makes coding itself immensely more difficult.
ARM processors are just as broke as everything else. There's just fewer people looking to uncover the holes.
Re: (Score:2)
ARM processors are just as broke as everything else. There's just fewer people looking to uncover the holes.
Fewer yes, but some are looking [blogspot.fr].
The bug in SnapDragon TrustZone implementation described in the previous link has been fixed BTW. Now what percentage of SnapDragon based smartphones in the field include the fix is anyone guess.
Re: (Score:2)
Formal proofs were used to justify the change in the floating point unit that led to the Pentium FDIV bug.
Re: (Score:3)
Really? All the articles I see say that the problem was a faulty lookup table. No one says the lookup table was subjected to a formal proof of correctness.
Re: (Score:2)
Robert P. Colwell _The Pentium Chronicles_, p159-160: ...the engineers working on the floating point divider did... an idea to save some space in a lookup table and one of them performed an analytical proof... That proof turned out to be flawed, but the insidious side effect of having
"For most of the Pentium design project, the floating point divider was exactly the same as the 486's. But late in the Pentium project, upper management requested that the entire project search for ways to make the die smaller.
Re: (Score:2)
About the only thing that might eliminate the holes is formal proofs
Formal proofs (of correctness, I assume) can't eliminate bugs or security flaws, though they are a cost-inefficient way to reduce bugs. A formal proof is only solving the same problem in two different languages (one the language of the formal proof), and diffing the result. It's not better or worse than any other static analysis tool, per se. It certainly won't help at all when the component is insecure by design, which is so often the problem. (Why does a document format need a way to execute arbitrary
Re: (Score:2)
You haven't understood the point.The formal proof abstracts away implementation details which are irrelevant for correctness. For this reason, It is much simper to understand than the actual implementation. And it does not solve the same problem.
Re: (Score:2)
Yeah, it's those pesky mplementation details where most security flaws are found, and most corner-case bugs that escape testing. Design reviews happen already at most companies.
Re: (Score:2)
The proof may show that the implementation performs a certain function according to a certain specification. Knowing this rules out a lot of bugs in the implementation. E.g. a sorting function can be shown to return a correctly sorted list. Once you have a formal proof of this property you do not need to worry about any pesky implementation details of this sorting function anymore. The actual implementation could really complicated because it is highly optimized and has many special cases which may make it
Re: (Score:2)
If it can spot a buffer overrun during the sort (even though the correct result is achieved), then at least some value is added - but there are several static analysis tools.
Otherwise, you're just writing the same code in 2 different languages - one high level and one low level, and proving they are functionally equivalent. (In which case, why not just switch to the high level language for production). The whole idea just seems like a high-level language someone was too lazy to write a compiler for, so al
Re: (Score:2)
Qubes OS uses a Type 1 hypervisor to simplify and harden system security against such vulnerabilities. The privileged parts of the system are kept relatively small and aren't used for any user applications. All apps and even some drivers (like NICs) are assigned to VMs, which the user can give different trust/risk designations and color codes.
Because isolating hardware is considered part of the solution, Qubes systems need IOMMU hardware to operate securely. But this high degree of isolation is what elimina
Re: (Score:2)
Why is all the stuff broke? Why does all the stuff have holes in it? Why isn't there any stuff that isn't broke? ARM processors from now on. All this stuff is broke.
To a computer there is no difference between "good instructions" and "bad instructions". Any ability to update or improve existing code is also a vector for getting infected by malicious code. You can either allow updates and risk infection, or you can hard code the firmware and disallow updates, but then you're stuck with whatever the firmware is at the outset.
It's not broke. It's just upgradable. Unless you have solid protocols to control who can upgrade and what upgrades are applied, you are at ri
Re: (Score:2)
Nature is riddled with this kind of phenomenon. Undesirable mate X tries to present itself as desirable mate Y to inject its dna into the replicator.
So you had to make an analogy that, for Slashdotters, is a purely theoretical event.
Re: (Score:2)
Read Headlines Too Fast (Score:5, Funny)
Re: (Score:1)
Academic freedom to experiment is a time-honored tradition in the university world.
Re: (Score:2)
its not an exploit, fut a designed feature... o wait
Uh oh (Score:1)
Re: (Score:1)
Read the article, you choad.
I did. 1) not stated [Intel is working on firmware patches; but to what extent? for every x86 processor ever made since 1997?]; 2) not stated; 3) not stated. I was hoping somebody here would have some more detailed information.
Not every chip (Score:5, Interesting)
Re: (Score:1)
"the SMI handler can check whether the APIC overlaps the SMM range and change it"
Not if the SMB drivers aren't installed for the OS, no.
Which does not bode well for those who deliberately put an older OS on newer hardware, given SMB drivers for a lot of newer stuff doesn't even have an XP version.
Not like it affects performance, just affects security.
Re: (Score:2)
Throw out your computer if you get a SMM virus? (Score:2)
So, if I understand correctly, if you get a rootkit in your SMM you have to throw out your computer?
Finding a less-popular target (Score:2)
But at least no one will be writing exploits that can easily run on my computer.
Re: (Score:1)
Re: (Score:2)
Or switch to Linux running on Arm. The Raspberry Pi 2 is good enough for basic desktop tasks.
Wow, you REALLY want me to have no Applications!!!
The Year of the Raspberry Pi On The Desktop, Woohoo!!!
Re: (Score:1)
We got a new meme!
Re: (Score:2)
We got a new meme!
LOL! I want credit for that... ;-)
Re: (Score:2)
Secure Boot hacked (Score:2)
Oh, the fools! If only they'd built it with two layers of bootkit protection! When will they learn?!?
Is this a good thing? (Score:2)
Are there computers out there that are locked into Windows due to UEFI that could be freed through this hack?
Ohh, the venerated SMM (Score:2)
SMM was a "nice" idea in more timid times. It let unscrupulous vendors emulate missing hardware features with (usually poorly written) firmware. I had quite enough head-banging when trying to implement realtime audio I/O on systems that turned out to emulate sound blaster and other industry standards.
Simple way to avoid the problem on Macs... (Score:4, Interesting)
Simple way to avoid the problem on Macs... don't load BootCamp, and you won't have SMM on the systems you load under bootcamp.
Mac OS X itself doesn't use SMM. Instead, it uses a PE (Platform Expert) module that loaded as part of the OS, which knows in detail about the hardware platform it's going to be running on. Without bootcamp, there's not even ACPI support, since power management is implemented in a much more discrete level of steps than the 4 which ACPI provides.
Re: (Score:2)
18-year-old design flaw? (Score:1)
Computers should have a hardware reset button (Score:1)
I've been saying for years that computers should have a hardware reset button or (for chips) a pin that restores them to a known factory state. If the button is pressed or the pin is set during initial power-on from a cold boot, the factory reset occurs. Any "infected" code will never get a chance to take control before the reset is finished.
Obviously now I'm going to have to extend that recommendation to any system or subsystem - including the CPU - which can be reprogrammed or save state in a way that su
Wait a sec (Score:1)
18 years ago was 1997?
Fuck, I feel old now.
Not really (Score:2)
Intel fixed this in 2011.
Re: (Score:2)
Will you please forgive us?
Re: (Score:1)
I blame /. for my knowledge of "cosmonaut"..