In Which I Savagely Impugn the Honor of IPMI and its Friends
fish2.com
fish2.com
I encourage you to guess whether Facebook, Google, and Amazon use IMPI to manage anything. Have a look at the OpenCompute designs for a hint.
That it took so long to figure out which motherboards even supported vPro KVM should have been a clue. I think they must be embarrassed by the thing and and don't want anyone to actually see it.
For my efforts, I have VNC access to my motherboard that hangs when I try to connect to it from OS X, works a little bit, sometimes, for a while from Linux, then hangs until a power cycle.
For extra delight, the ethernet chipset that supports this useless heap has long standing bugs with the Linux kernel with no work around. It works fine, unless you want to push more than a few megabits per second through it. Then it hangs, disconnects, and reconnects.
Oh, it also took me two days to figure out how to even turn on the KVM without a Windows machine. Their tool won't run on Wine because its written in the new "portable" way, and for some arcane reason you can turn on lots of things from the BIOS, but not the KVM, you have to come in from an external machine with some misguided "one protocol to manage them all" system and an arcane text key.
After some time to ponder, they got back to me with "your concerns look legitimate". Discussions followed, but I am not aware of any specific advisories resulting from this.
I also understand that recently there was an IPMI-related presentation at Ruxcon Breakpoint in Melbourne, Australia: http://www.ruxconbreakpoint.com/speakers/#Igor%20Skochinsky ... no idea of the content, though.
Honestly, I think the first thing is for vendors to be a lot more honest: if someone has root on your host, they can most likely trivially obtain root on and backdoor the IPMI controller. Once they get root on the IPMI controller, they can do anything they want on the IPMI LAN. This reality differs greatly from the 'dedicated' and 'separate' words used in vendor marketing literature and documentation, and is no doubt a direct contributor to insufficiently paranoid systems architecture, resulting in real world vulnerabilities in some pretty important systems.
Why do I say pretty important? Well, outside of remote KVM, IPMI is frequently used for node fencing in high availability (HA) cluster scenarios, which means that this technology is likely to co-occur with some fairly paranoid / 24x7x365 systems (air traffic control, stock markets, etc.). Attackers with a foot-hold can thus use IPMI-based vulnerabilities to (permanently) compromise such higher-end systems.
What are we as implementers supposed to do? Here are some ideas. (1) Run a relatively paranoid, receive-only, anomaly-based NIDS on your IPMI segment to encourage 'after the fact' detection of bad behaviour. (2) Run IPMI on a dedicated VLAN. (3) Run your IPMI VLAN on dedicated hardware (4) Program your network infrastructure to ensure that regular IPMI nodes on your average server cannot communicate with any other peers on the link layer (ie. other servers) except for the expected source of management operations (5) Make sure the expected source of management operations isn't running an IPMI controller (or at least, one from the same vendor on the same subnet) (6) Don't use IPMI at all
Honestly, IPMI can be very useful in some cases, though it's probably a massively unspoken vulnerability in some high end systems. As always, don't trust any single component... security only comes in partly-effective layers ...
I love having the BMC there, but you are really at the mercy of vendors to update their IPMI/BMC firmware. Guess how often that happens.