News for hackers. Stuff that matters.
Re:Exploiting Intel’s Management Engine by derefr on Friday November 15, 2019 @11:09AM (#21545969)
> The ME does have a legitimate function, but it does so much more now, as it takes care of the hardware initialization, the main CPU boot up, control of the clock registers, DRM management for Audio/Video, software based TPM and more.

In other words, the ME is to Intel boards as Apple’s T2 chip is to their recent notebooks: an SoC that takes on the real role of being the “system processor”, turning the [rest of the] socketed CPU into effectively an “application processor.”

In fact, given that it’s so self-sufficient, it’s interesting that Intel choose to ship the ME as an “IP core” of the CPU itself, rather than making it part of the off-die Intel PCH chipset that they supply to mobo vendors. Is it just to provide the ME with low-latency access to CPU components like ALUs (for TPM encryption circuits) and d-cache (for packet sniffing)? Because it seems like it isn’t really built this way, and an “external ME” would be just fine running without a CPU socketed in at all. (Which would be neat, honestly; if you could exploit an external ME, you could run software on your Intel-chipset motherboard without a “real” CPU!)

Given that industry players seem to be all trending toward this design in one way or another (even game consoles did the “system SoC” / “application CPU” split with the last two generations), I wonder if this design pattern will ever be standardized, in the way that interrupt controllers or MMUs were standardized. Will we ever see an open-hardware board with its own open-hardware system-management SoC running FOSS firmware?

Re:Exploiting Intel’s Management Engine by emily-c on Friday November 15, 2019 @11:41AM (#21546297)
The CSME is on the PCH[1] (when one exists). (However AMD elected to put their PSP on-die as an IP-block). It is the root of trust of the system and takes the CPU out of reset even though it's not on the CPU itself. x86-based machines have pretty much always had multiple auxiliary processors/SoCs that control various aspects of the system such as the embedded controller (a direct descendant of the 8042 keyboard controller). Another example of this is the AMD SMU which lives on the chipset and coexists with the PSP (the talk in the link gets code running on this as you described)[2]. Interestingly the Chromebook EC firmware is open source[3]. Joanna Rutkowska has done a nice overview of some of the security aspects of these topics as well[4].

Ideally there would be a standard way to verify and measure all the various firmware images (and potentially option ROMs which would be theoretically measured with SRTM via UEFI) for these system processors during boot during a DRTM event (with Intel's STM/AMD SMM supervisor enabled as well) but there is a long way to go for that.

[1] https://i.blackhat.com/USA-19/Wednesday/us-19-Hasarfaty-Behi...

[2] https://www.youtube.com/watch?v=iYvhHey_dTk

[3] https://chromium.googlesource.com/chromiumos/platform/ec/+/m...

[4] https://www.youtube.com/watch?v=rcwngbUrZNg

Re:Exploiting Intel’s Management Engine by floatboth on Friday November 15, 2019 @07:10PM (#21549956)
Yeah, AMD went in the exact opposite direction of

> an “external ME” would be just fine running without a CPU socketed in at all

and made Ryzen a nearly-SoC, EPYC an actual SoC (no chipset at all required AFAIK). (To be fair Intel did integrate many things onto the die as well..)

https://fuse.wikichip.org/news/1177/amds-zen-cpu-complex-cac... seems to confirm that SMUs are on-die at least on EPYC.

> Interestingly the Chromebook EC firmware is open source

And even the Google Security Chip is included under that. You can't run a customized GSC firmware on a production device unless you have Google's keys, but you can look — and hopefully maybe reproduce the build?

Re:Exploiting Intel’s Management Engine by snagglegaggle on Friday November 15, 2019 @11:21AM (#21546094)
Yes, the Raptor Computing POWER systems are almost entirely open. The CPU is entirely open, save the die mask.

It's worrying that these vulnerabilities are not disclosed in a way that lets people take control of their devices.

That the ME is so tightly integrated seems mainly to be for cost savings. There is also an argument for increased security, as now your attacker must be able to work with a decapped highly integrated CPU.

Intel did at one point do what you were suggesting -- if you look at the sandsifter project the author found a family of devices that had a parallel execution unit that was dispatched instructions with a "secret" prefix that had full access to memory. This could still exist in newer processors but be better hidden, it would certainly make a lot of one might want to do with the ME a lot easier.

Re:Exploiting Intel’s Management Engine by tyingq on Friday November 15, 2019 @01:39PM (#21547452)
Not mentioned directly in the article, but it's also interesting that the ME runs an Intel modified Minix 3.
Re:Exploiting Intel’s Management Engine by elagost on Friday November 15, 2019 @01:16PM (#21547235)
This has been the case in Server systems for a while - IPMI[1] has been used for remote KVM, power management, remote mounting of ISOs, etc. on many servers for years. HP's iLO, Dell's iDRAC, and even SuperMicro boards have an implementation. This pattern is pretty standard, but none of it's FOSS.

[1]https://en.wikipedia.org/wiki/Intelligent_Platform_Managemen...

Re:Exploiting Intel’s Management Engine by plausibilities on Friday November 15, 2019 @01:35PM (#21547415)
Wasn't NordVPN recently pwned via an IPMI security hole?

iLO is kind of a piece of crap, but I do love my Xen and resource pools

Re:Exploiting Intel’s Management Engine by tyingq on Friday November 15, 2019 @01:41PM (#21547471)
Pretty sure the IPMI software is crap no matter the brand. I know the SuperMicro one requires a very old Java version fat client to interact with it, and is very flaky.
Re:Exploiting Intel’s Management Engine by petschge on Friday November 15, 2019 @02:00PM (#21547641)
The newer versions finally support a HTML5 console instead of the old java webstart horror they used to ship with.
Re:Exploiting Intel’s Management Engine by kelleyk on Friday November 15, 2019 @04:09PM (#21548793)
Also, if you need to interact with a Supermicro BMC that doesn't support the HTML5 console (for example, because it's running older firmware), I reverse-engineered the proprietary "iKVM" protocol (along with a lot of other parts of the BMC) and implemented support for it on a branch of noVNC, which you can find here: https://github.com/kelleyk/noVNC
Re:Exploiting Intel’s Management Engine by dboreham on Friday November 15, 2019 @04:42PM (#21549088)
Waaaat! Praise be. Now I can justify the last 45min reading HN...
Re:Exploiting Intel’s Management Engine by plausibilities on Sunday November 17, 2019 @01:37PM (#21559255)
Thank you for your contribution!

Keeping that "Just buy a shitload of cheap-o eBay 2U/4U hand-me-downs" workflow viable for years to come :D

Re:Exploiting Intel’s Management Engine by phil21 on Friday November 15, 2019 @07:14PM (#21549980)
Indeed. We have used this in production for some time now!
Re:Exploiting Intel’s Management Engine by gnufx on Sunday November 17, 2019 @11:44AM (#21558674)
Yes, but that stuff isn't actually IPMI. You normally only need it if need a graphical console (or haven't re-directed to the IPMI serial link), or need to mount a boot image, which is typically painfully slow. (FreeIPMI and associated tools like conman are good for IPMI management, with a set of workarounds for defective implementations.)
Re:Exploiting Intel’s Management Engine by gnufx on Sunday November 17, 2019 @11:35AM (#21558627)
OpenBMC is free software, used by POWER9 systems, in particular. I haven't used it, but I think it's in the Summit and Sierra supercomputers as well as TALOS systems. IPMI/BMC implementations are a nightmare, and something you can potentially fix has considerable appeal.
Re:Exploiting Intel’s Management Engine by aidenn0 on Friday November 15, 2019 @11:15AM (#21546031)
Having a software implemented TPM strongly encourages this approach, as it makes it easier to deny the main CPU full access to the system.
Re:Exploiting Intel’s Management Engine by JackRabbitSlim on Friday November 15, 2019 @11:51AM (#21546375)
>you could run software on your Intel-chipset motherboard without a “real” CPU!"

I suspect this popped up in meetings and is at least partly the reason for the design now.