By: +David Herron; Date: March 21, 2019
The news broke today in a Krebs on Security report citing an unnamed source internal to Facebook. The lede says:
Hundreds of millions of Facebook users had their account passwords stored in plain text and searchable by thousands of Facebook employees — in some cases going back to 2012, KrebsOnSecurity has learned. Facebook says an ongoing investigation has so far found no indication that employees have abused access to this data.
This occurred after Facebook employees built internal applications to log unencrypted passwords. Facebook management discovered the practice during a security review.
The news seems to have been sourced from a single Facebook employee. According to that source the investigation turned up password data dating back to 2012, and that the data files contained plain-text passwords for hundreds of millions of Facebook accounts. The files were available to all Facebook employees.
Krebs goes on to cite an interview with "Facebook software engineer Scott Renfro". Presumably this is a different person than the source for the information summarized above.
Renfro said that Facebook plans to alert affected Facebook users, but will not require password resets. And:
“We’ve not found any cases so far in our investigations where someone was looking intentionally for passwords, nor have we found signs of misuse of this data. In this situation what we’ve found is these passwords were inadvertently logged but that there was no actual risk that’s come from this. We want to make sure we’re reserving those steps and only force a password change in cases where there’s definitely been signs of abuse.”
A written statement from Facebook quoted by Krebs said that Facebook plans to notify “hundreds of millions of Facebook Lite users, tens of millions of other Facebook users, and tens of thousands of Instagram users.” Facebook Lite is a version of Facebook used by folks on low-spec bandwidth connections, or who use low-spec mobile phones.
Renfro is quoted saying they discovered the problem in January 2019, and then set up a task force to take care of it.
Ahem -- Let me point out that Facebook employees knew of this, because they implemented the internal tool and were using its data. At best what happened is that other aspects of Facebook management learned of the problem. Maybe this is due to a few engineers in the Facebook Lite team who were debugging a problem?
The problem with storing plain-text passwords
Facebook is clearly doing their best to downplay the problem. That's typical for damage control, to minimize the scope and impact of the problem.
Storing plain-text passwords is a huge security problem. Anybody with access the file containing those passwords has the keys to the kingdom.
The best practice is to not store the password at all. Instead one uses the password as an encryption key, to encrypt a known value, and that is what's stored in the password database. Facebook's statement below describes such a method. Even if a nefarious person broke into internal systems, and got the user database, they would not have the passwords.
In this case Facebook wants us to believe the plain-text passwords were only available to Facebook employees. What about folks who break through Facebook security systems, and are searching around Facebook internal infrastructure? They, too, could gain access to these plain-text password logs.
Statement from Facebook
March 21, 2019
Keeping Passwords Secure
Pedro Canahuati, VP Engineering, Security and Privacy
As part of a routine security review in January, we found that some user passwords were being stored in a readable format within our internal data storage systems. This caught our attention because our login systems are designed to mask passwords using techniques that make them unreadable. We have fixed these issues and as a precaution we will be notifying everyone whose passwords we have found were stored in this way.
To be clear, these passwords were never visible to anyone outside of Facebook and we have found no evidence to date that anyone internally abused or improperly accessed them. We estimate that we will notify hundreds of millions of Facebook Lite users, tens of millions of other Facebook users, and tens of thousands of Instagram users. Facebook Lite is a version of Facebook predominantly used by people in regions with lower connectivity.
In the course of our review, we have been looking at the ways we store certain other categories of information — like access tokens — and have fixed problems as we’ve discovered them. There is nothing more important to us than protecting people’s information, and we will continue making improvements as part of our ongoing security efforts at Facebook.
How We Protect People’s Passwords
In line with security best practices, Facebook masks people’s passwords when they create an account so that no one at the company can see them. In security terms, we “hash” and “salt” the passwords, including using a function called “scrypt” as well as a cryptographic key that lets us irreversibly replace your actual password with a random set of characters. With this technique, we can validate that a person is logging in with the correct password without actually having to store the password in plain text.
Because we know that people may share, reuse or have their passwords stolen, we’ve built security measures to help protect people’s accounts:
- We use a variety of signals to detect suspicious activity. For example, even if a password is entered correctly, we will treat it differently if we detect that it is being entered from an unrecognized device or from an unusual location. When we see a suspicious login attempt, we’ll ask an additional verification question to prove that the person is the real account owner.
- People can also sign up to receive alerts about unrecognized logins.
- Knowing some people reuse passwords across different services, we keep a close eye on data breach announcements from other organizations and publicly posted databases of stolen credentials. We check if stolen email and password combinations match the same credentials being used on Facebook. If we find a match, we’ll notify you next time you login and guide you through changing your password.
- To minimize the reliance on passwords, we introduced the ability to register a physical security key to your account, so the next time you log in you’ll simply tap a small hardware device that goes in the USB drive of your computer. This measure is particularly critical for high-risk users including journalists, activists, political campaigns and public figures.
Securing Your Account
While no passwords were exposed externally and we didn’t find any evidence of abuse to date, here are some steps you can take to keep your account secure:
- You can change your password in your settings on Facebook and Instagram. Avoid reusing passwords across different services.
- Pick strong and complex passwords for all your accounts. Password manager apps can help.
- Consider enabling a security key or two-factor authentication to protect your Facebook account using codes from a third party authentication app. When you log in with your password, we will ask for a security code or to tap your security key to verify that it is you.
For more information on how to keep your Facebook account secure, please visit facebook.com/about/security.