Thanks for the thoughtful feedback.  Actually, no, I'll say that this is the 
best feedback I've gotten, so mega thanks.   I'd heartily expand my 
appreciation to Albert, Andy, and others.  And let me assure you that my reply 
isn't about anyone in particular, but the situation as I see it.  I will say, 
however, that your mindset - that of an expert who knows his subject cold and 
will defend it with precision and passion - is exactly why I wrote the paper 
and have my current position.  Please allow me to try and explain.

On Feb 19, 2013, at 10:16 AM, Jarrod B Johnson <jbjoh...@us.ibm.com> wrote:
> Overall, most of the concerns are less about the fundamentals of IPMI and 
> more about the general state of service processors in general.  
> 
Well, in part.  As I wrote in the paper it's a confluence between the spec, how 
it's implemented and expanded by the various vendors, and how it's actually 
used.

If by service processor you mean BMC, yes, that's the most egregious offender.  
However, it wouldn't exist if it weren't for IPMI, and the power it has to have 
to implement the spec, as well as some of the design decision of the spec 
drives decisions that harm the security of the BMC and everything around it.  
In my mind there's almost nothing that has the power to be misused in the 
computer than the BMC (I'm sure now someone will now inform me that there's 
actually another tinier processor on the BMC that drives it and… ;))

But then we have to look at how it's actually used… more in a sec.
> [unfair to RAKP and...]
> 
> "The reusable passwords used for IPMI authentication are saved in clear text 
> in flash memory"  True, but it is a shared secret mechanism that permits the 
> client to never have to transmit the password on the wire (which might be 
> debated to be a more vulnerable place).  It also provides for implicit mutual 
> authentication if the client is strict enough in what it will accept from an 
> IPMI device.  One-way hashed passwords have their own problems, notably that 
> a spoofed server has a pretty high chance of acquiring secrets through MITM.  
> Ideally, you correctly have everything private-public key based (which 
> admittedly has no consideration in the IPMI spec), the gap in practice is 
> that the host public key is frequently taken at face value.  Shared secret at 
> least makes the admin unwittingly set up mutual authentication.  The shared 
> secret scenario is troublesome as it limits the security for those that know 
> and care about security, but has some tendency to instill better practices 
> for those that care or know less, but do at least care enough to 'set a 
> password'.  My desire in this front would be an additional public/private key 
> based auth mechanism to allow diligent users and software to implement 
> something more unambiguously secure.  However, such diligent users can limit 
> shared secret scope already through unique key data everywhere (though no one 
> seems willing).
> 
Overall in theory you're correct (I might quibble a bit about the details, but 
it's 6 of one vs. a half-dozen of another.)  My argument, however, is that this 
isn't how people use it in the real world.  When you have over 100K servers all 
with the same password over a period of years you might well call them foolish, 
but this isn't uncommon at all.  People are selling servers on eBay with no 
notion that it might be a problem.

I'll revisit how I was unfair to RAKP - but while I think you know I agree 
about the xCAT and other implementations that offer this feature, I've never 
heard of a single place ever using it (I'm sure it's out there somewhere, but 
it certainly doesn't appear to be popular.)  I'd love to simply say go that 
way, but as you've said in the past, people want to cling to their 
preconceptions and want to hold onto those passwords.  I just checked: 32 hits 
on "xCAT" & "RAKP" on google, and it looks like 5 of those links are actually 
valid.  Adding security trims the list to 2 links.   ("kq" "rakp" "security" 
"ipmi" gets zero hits!)  There are no implementation guides or usage stories or 
questions.  How do you expect people to know what to do?  (I hope you know that 
this isn't an attack on you or xCAT in particular; I hold both in high esteem, 
I'm simply trying to point to the current state of affairs.)

I would say the major issue I have with the IPMI community in general is that 
there seemingly has been no effort to communicate to people what to avoid, or 
give out some best practices on how to use the stuff wisely.  I've repeatedly 
said I've never even (consciously) heard of IPMI prior to a few months ago.  I 
was the security architect of the largest security company in the world and I 
knew only vaguely of the management network, and the various iDRACs, IMM's, 
etc. of the world, but mostly it was one of those "ops-things".  You could 
rightfully say I was ignorant, and I was, but let me assure you that I wasn't 
alone.  No one knows anything about this stuff WRT security.

That no one in the community has ever tried to even write up a list of best 
security practices, or how to dispose of a motherboard that has a BMC (or tell 
people it's an issue), let alone jot down a simple scanner to check for such 
issues, is simply astounding to me, and it points to the serious ignorance of 
the non-IPMI community.  I wrote the first audit tool ever put on the net, and 
coauthored first security scanner anyone had heard of, and I thought my little 
configuration checking days were long past, but it seems like we keep doing the 
same things over and again.  I've no illusions that my little effort will make 
a big difference, but I am trying to spread some education (hopefully not 
scaremongering or being inaccurate while doing so) so people can make more 
informed decisions.
> "it has to ask a potentially compromised BMC to answer truthfully."  This can 
> be controlled vendor to vendor.  E.g. an IBM IMMv2 has the entire boot 
> process and filesystem signed in such a way that malicious attempts to 
> manipulate it are thwarted.  This exacerbates the 'precludes customer for 
> applying fixes prior to the vendor' issue, but it does mean that commands 
> shall work as intended by the manufacturer.  The key here being to pay 
> attention to how the vendor protects the integrity of their implementation. 
> 
It could be that IBM does a good job, and you alluded to that earlier (and IBM 
has wonderful documentation as well).  That said… there are lots of things that 
are "work as intended" by vendors that are really freakin' aggravating ;)  And 
look: IBM has a list of features several pages long.  Don't you think it's 
possible that one of those might be a security problem?  And if so, what do I 
as a customer do?  I can't patch it, I can audit the thing, I can't safeguard 
it, I can't log it, I can't remove the feature (it can be simply turned back 
on.)  I'm just hosed.

And if I really can't subvert the boot process (for sake of argument; no one 
has seen the stuff and its undocumented, so I can't comment), that's fine - I 
don't care about the boot process, that's only a single vector.  BMCs typically 
have very long uptimes - I'll just put something ephemerally that subverts 
everything, and renew it if a boot ever happens.  IBM could have carved the OS 
in rock, but I don't think think they're immune from a bazillion security 
issues in the OS and applications.  This is not a solved problem.  And the BMC 
- at least with some IBM things that I've seen it's made by Renesas, which has 
a semiconductor design center and manufacturing things in China.  Do you really 
think you can completely trust that it only does what its spec'd for?  

May I remind you of the paper where IBM's undocumented feature to generate 
SMI's from the BMC was used to have absolutely control over memory and virtual 
machines?  This feature, I was informed, was gotten under an NDA by the 
researchers.  What other backdoors are there?  A couple of months ago I found a 
backdoor to login to the BMC from one of the largest server vendors in the 
world (name elided since I'm working with them on removing and warning 
customers about it); did they put it in?  Did the OEM'ers?  Who knows?  But 
hearing a vendor say "trust us, your security is safe with us", when it's been 
demonstrably shown that they can't be trusted, doesn't mollify me.

By making the BMC a black box with immense power the vendors are begging or 
nearly designing the BMCs for abuse.
> In general, my recommendation would be for environments worried about 
> security to stop caring so much about direct human interaction and let higher 
> order software manage unique keys everywhere there is a desire to use 
> 'passwords' today.   Someone recovers the BMC password off an ebay discarded 
> box?  No big deal, the scope of that key was unique.  Someone tricks the 
> security framework responsible for key coordination into divulging a new key? 
>  No heightened privilege, but perhaps a way to remove all access to a BMC 
> which is less bad.  
> 
The problem isn't with IPMI, the problem isn't with the vendors who make the 
BMCs and add on features, the problem is not how its used - you can't untangle 
any of these things and claim "but it's not my fault!"

I've a different proposal - open up the BMC.  Let people inside.  Let people 
understand what's going on, and allow them to take matters into their own 
hands, and perhaps even make things better.  I'm not an open source zealot, but 
come on, give people a chance, at least (not you, talking to vendors here!)

I'll close with a historical bit - there is a long history of systems that use 
closed source and design, are widely used, and it's not a pretty sight 
(security speaking.  Check out this paper on automobile security!) 

dan
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Ipmitool-devel mailing list
Ipmitool-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ipmitool-devel

Reply via email to