Ubuntu Forum Security Breach
pinkstuff writes "There has been a major security breach of the Ubuntu Forums database. Every user's email address and salted password has been taken. From the forum home page: Unfortunately the attackers have gotten every user's local username, password, and email address from the Ubuntu Forums database. The passwords are not stored in plain text, they are stored as salted hashes. However, if you were using the same password as your Ubuntu Forums one on another service (such as email), you are strongly encouraged to change the password on the other service ASAP. Ubuntu One, Launchpad and other Ubuntu/Canonical services are NOT affected by the breach."
Dupe of http://it.slashdot.org/story/13/07/21/0318243/ubuntuforumsorg-hacked
Posting anon so no karma whoring
I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
Probably, my database dump is from late last year.
During last days I have bumped to the "ubuntuforums.org is down for maintenance" message several times while googling some Linux stuff. I never realized before that I visit that site so often.
NSA don't need to hack the forums. They've got all the packets in and out of the servers saved on a disk. Not to mention a back door into the servers.
Seven puppies were harmed during the making of this post.
The hashes are salted. Who cares about a breach with salted hashes?
Dupe.
samzenpus, you fucking suck sometimes. Hope you're not getting paid for this.
They use vBulletin.. the passwords are salted.. but it's just md5(salt+md5(password)). The salt is in the db, and it's just 2 md5 hashes -- NO stretching, PBKDF2, bcrypt, or anything else. It's literally one step up from plaintext. You can recover those passwords in very little time. You SHOULD assume the passwords are compromised.
http://www.vbulletin.org/forum/showthread.php?t=178091
So has this happened yet again or just another Dupe?
I don't know about Ubuntu being that popular, but this story seems to be. We had this one on /. only four days ago. Editors asleep at the wheel again... :-|
Indeed...
Here is a 25 GPU cluster that can go after MD5 hashes.
The cluster can try 180 billion combinations per second against the widely used MD5 algorithm
Realize that an 8 character password is only about 48 bits of entropy, so if you find a key that hashes to that 128-bit MD5 hash code then its almost certain that that is in fact the password and not just a random collision. I am appalled at the horrible password "protection" practice in use today. In the 1980's we knew better and didnt store the entire god damned hash.
"His name was James Damore."
It's literally one step up from plaintext. You can recover those passwords in very little time. You SHOULD assume the passwords are compromised.
Really? Can you explain how this is done? My understanding is that MD5 is a one way hash function. I know of no real way to reverse an MD5 hash. I know there are MD5 databases that can do a reverse lookup, but they are only limited to dictionaries the common strings they contain. Surely that is only really useful if your password was something stupid like a dictionary word, or some lame leetified word like "l0ve". How do you reverse an MD5 hash if it is not?
I am genuinely interested.
You can never know everything, and part of what you do know will always be wrong. Perhaps even the most important part.
Script kiddies don't hack.
/* No Comment */
How do you reverse an MD5 hash if it is not?
You try all possible inputs at a rate of 180 billion combinations per second.
For an 8 character alphanumeric with a few symbols, thats about 48 bits of entropy, which equates to 1564 seconds (26 minutes) to try every single possible input. Since you used a 128-bit hash on 48 bits of entropy, the odds are very very very good that only one single input will result in the stored MD5 hash.
Thus the attack knows precisely what the original password was in only 26 minutes, which fits the definition of "reversing" the hash in no more than 26 minutes.
"His name was James Damore."
MD5 is just not computationally intensive by todays standards. You can easily calculate several BILLION MD5 hashes per second on a modern GPU. It's fast enough that you can simply bruteforce it.. you can rent an EC2 cluster for a few dollars if you don't want to spend the money on the GPUs.
There's a reason why at a minimum stretching is used (this is when you hash a password + salt, then hash the hash typically a few 10000 times)... this is standard practice BTW if you're going to use hashes (or better, use bcrypt or pbkdf)
The only thing the salt does is prevent them from cracking all of the passwords at once.. they'll have to crack each user individually.
The Ubuntu forums run on vBulletin, a proprietary solution. Nothing open-source about it.
You try all possible inputs at a rate of 180 billion combinations per second. Thus the attack knows precisely what the original password was in only 26 minutes, which fits the definition of "reversing" the hash in no more than 26 minutes.
Ok. That is fast. Still - there are two md5 hashes with a salt added - so it would likely take 52 minutes - although I think you could call that a distinction without a difference.
You can never know everything, and part of what you do know will always be wrong. Perhaps even the most important part.
To expand further on this, it is a violation of CWE-257 to store a much wider hash than the passwords entropy.
"The storage of passwords in a recoverable format makes them subject to password reuse attacks by malicious users."
Storing a 128-bit hash of a typical password, due to their much lower entropy, is in fact storing it in a recoverable format.
"His name was James Damore."
Ok. That is fast. Still - there are two md5 hashes with a salt added - so it would likely take 52 minutes - although I think you could call that a distinction without a difference.
Dont forget that since the users account name isnt part of the salt (or so I presume, given the bad hashing practice already noted by others), then every accounts hash can be attacked simultaneously. Thats 26 or 52 minutes to crack the password of every single account.
"His name was James Damore."
the salt is random.. so each user's password would need to be cracked individually.
that doesn't make it 52min though..
You could speed this up by hashing the password you want to try, then hashing it with each user's salt. So instead of 2x hashes, you would have (# of users) + 1 md5 calcs for each password attempt.
And the average time would be 1/2 of the max time.
Also... most of those passwords are probably dictionary words.
"Still - there are two md5 hashes with a salt added "
No, even that part was done improperly. Since they hashed the password, then added the salt, then hashed the result.. it's actually just (# of users) + 1 md5 hashes.
1) hash password
2) concat hash + salt
3) hash result
4) repeat 2 & 3 for each user
That isn't very comforting without knowing the hacker's intentions. For all we know, maybe your password was the only one they wanted.
There's no -1 for "I don't get it."
What happened is that you apparently dont know the difference between operating system vulnerabilities, and someone gaining unauthorized access to a forum.
This will probably hurt their campaign to bring Ubuntu to mobile.
Their kickstarter at Indiegogo already seems to be slowing down.
Not quite fair to link a forum breach to Ubuntu, but public perception is what matters.
Then don't use 8 letter passwords. 11 random alphanumerics at 180e9 tries per second is 62^11/180e9/(60*60*24) = 3345 days
Not to mention that we are talking about a 25 GPU's rig. I'm quite certain that some botnet owners have access to a hundred thousand decent GPU's, and a million not-so-decent GPU's. Welcome to reality.
"His name was James Damore."
slimjim8094: Failed. :P
Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
Btw, the article you linked says it's actually md5(md5(password)+salt).
Great. ...), I bet they have way more information than they needed to have.
With their policy of needing to sign-in in order to download anything (script, picture,
And this information is now compromised....
I hope the iterated with a sufficiently high count in addition. But as they do not say that, I am doubtful. Any competently done set-up would at the very least use PBKDF2 or scrypt with an iteration count > 100'000.
Why do people keep getting this very basic stuff wrong?
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
It's not news, even for nerds, when it is reported a week after everybody else reported it.
You're right.. the hash is appended to the password hash (not prepended). Carelessness on my part.. good catch.
The source was available to them right? So they could have audited it for security problems. So why didn't they detect the problems? Not enough resources allocated? Not enough talent? Same problem goes for OSS.
Skilled eyes are magnitudes better at spotting security bugs. How many skilled eyes are really looking at open source stuff AND working to get it fixed compared to the number of skilled eyes who are looking at it and keeping the exploits for their benefit.
The security of OSS is overrated. There are limits to what they can do in practice due to users and usability[1] - for example the apparmor profile for firefox etc are disabled by default, and the default profiles are also quite lax (firefox with apparmor enabled can still access most of the files in the HOME directory)
[1] and that's the main security problem for Windows too.
Well they can try and use the same username & password on other forums.
They can try and use the same password on your email address.
If they get into your email, then they can request password resets for online banking, paypal, etc.
This is why you don't use the same passwords on different systems.
If you have your own domain, then use different email addresses for each site filtering into a central inbox. This also makes it easier to track where spammers get your address from.
Nothing "Happened". *No* operating system is 100% secure, especially when humans are involved. At the place where I work, people send around user names and passwords in e-mail. Twice I've sent out notes to the entire company admonishing them to not do that and why, but the practice continues.
.net and java.
Beyond simply the operating system, you've got vulnerabilities in things like
http://technet.microsoft.com/en-us/security/bulletin/ms13-040
http://www.cvedetails.com/vulnerability-list/vendor_id-26/product_id-3091/Microsoft-Asp.net.html
http://www.oracle.com/technetwork/topics/security/alerts-086861.html
If you really believe that Windows is just as secure as Linux, then go ahead believing that. You're going to anyway.
vBulletin is written in plain/visible PHP. It is open source. I have worked in places using it in the past and modified the source to fix issues or add functionality (though directly editing the source is not usually a good solution, it's better to use one of the built in hooks).
That said, one should distinguish between OSS and FOSS. vBulletin is not FOSS. You do pay licensing for it, and it's not free to distribute. Various modules can also be encoded/encrypted, as many third-parties that create vBulletin plugins have been known to do.
If Ubuntu want to go full FOSS, they could have used something like SMF, however vBulletin is more popular and (when last I used the two) featureful.
I don't think that brute forcing to identify passwords is what's meant by "recoverable" here. Though, I suppose I'm with you in the idea that if it's easy enough it's virtually the same.
I'm not getting what (other) significance you're assigning to the idea of passwords being much lower entropy than their hashes. Is there something about the relative entropies that matters, or are you just again pointing to the ease of brute forcing something like passwords (which are going to be, in practice, only a small fraction of the hash entropy), which exists regardless of the potential hash entropy?