Does anyone remember an article/interview a while back where Mark Fuckerberg shamelessly admitted that he chose not to hash passwords in the original Facebook codebase specifically because he wanted to be able to log into his users’ other accounts that use the same password? I swear I remember reading something like this but now I can’t find it.
Your memory is not far off. Mark used failed logins to access other people’s emails:
https://www.businessinsider.com/how-mark-zuckerberg-hacked-into-the-harvard-crimson-2010-3
I cant say if he intentionally saved passwords unencrypted, but he certainly saved login attempts
Usually these services have god mode where they can see a UI from a given user. They don’t need the password.
This sounds like a rumor spread by someone who doesn’t understand tech
The OP made the argument that Zuckerberg wanted to know their passwords, such that if the users reused the same passwords elsewhere, then he would be able to log in there and check out their accounts.
For example he could have seen a profile he was interested in, nabbed their password and looked into their email.
Not that he wouldn’t have godmode on their Facebook account, and needed their password to access their account, because of course he could have just accessed those accounts without needing the password.
I have not heard this rumor before, though I wouldn’t be completely surprised if it was true.
Well, Facebook did have an auth method that involved promoting you for your password so that they could log into your email and get an OTP iirc
It wasn’t zuckerberg doing something in secret. It was an explicit protocol that was terrible. They got called out and stopped it. Kinda like early days of open graph.
instead of in an encrypted format on its internal systems.
Riiight, like that’s any better. Jokes aside, it’s hard to imagine what kind of “mistake” results in storing plain text instead of hashing, unless the mistake was in choosing whoever made the security assessment
There was a previous article on this with more explanation that I’m struggling to find.
The gist was that they do hash all passwords stored, the problem was that there was a mistake made with the internal tool they use to do that hashing which led to the passwords inadvertently going into some log system.
“mistake”
I call BS. The reviews I’ve gone through for trivial stuff would’ve exposed this.
This was intentional.
Hanlon’s Razor revised: Never attribute to malice what can be attributed to incompetence, except where there is an established pattern of malice.
Yeah, cause trivial systems are a lot easier to parse and review. At a base level that’s nonsense logic.
This is not about facebook not hashing credentials, it is that they appeared in internal logs.
Facebook is probing a series of security failures in which employees built applications that logged unencrypted password data for Facebook users and stored it in plain text on internal company servers.
Source: Krebs on Security
that logged unencrypted password data
Why the fuck would you need to log a password ever? This is absolutely malice and not incompetence.
You are acting like someone checked off a “log passwords” box, as if that’s a thing that even exists
Someone configured a logger to write HTTP bodies and headers, not realizing they needed to build a custom handler to iterate through every body and header anonymizing any fields that may plausibly contain sensitive information. It’s something that literally every dev has done at some point before they knew better.
It’s something that literally every dev has done at some point before they knew better.
If you’re working for a multinational tech company handling sensitive user data and still make this mistake, then you are being malicious in your incompetence. This is something that would cause you to lose a significant amount of marks on a first year college programming project, let alone a production system used by literally billions of people.
You should never be sending passwords to a server. That is really bad practice. The right answer is to use cryptography to verify the client knows the password.
Just one open source example … freeradius has an option to log passwords:
log {
destination = files
auth = no
auth_badpass = no
auth_goodpass = no
}
Or another example: The apache web server has a module that dumps all POST data, with passwords, in plain text:
mod_dumpio
allows for the logging of all input received by Apache and/or all output sent by Apache to be logged (dumped) to the error.log file. The data logging is done right after SSL decoding (for input) and right before SSL encoding (for output). As can be expected, this can produce extreme volumes of data, and should only be used when debugging problems.
I don’t agree that this is “absolutely malice”, it could also be stupidity and forgetfulness.
101 million is too small for such an epic error.
Google did it too for a decade