Apparently, not much has changed in 10 years. Ten years ago – almost to the day – I gave a presentation at the RSA 2005 Conference in San Francisco about a piece of ad/malware that was conducting Man-in-the-Middle (MitM) attacks on its victims’ SSL connections. Last week, it was discovered that a large number of Lenovo laptops had been shipped with software from a company called Superfish that does exactly the same thing.
The parallels are eerily similar:
- Both were a part of software that was purported to have legitimate uses
- Corporate representatives for both claimed that their software was not malicious in nature
- Both found their way onto machines by being bundled with other software
- The success of both hinged on placing a new root certificate into the machine’s Trusted Root certificate store
- In both cases, this new root certificate was considerably less secure than the legitimate trusted roots in the system
Is Superfish collecting everyone’s credit card numbers, passwords, and other sensitive data? Probably not. But the important point is that through this connection, they could. Even worse, it opens up the chance that others could as well: Because the certificate that gets added to the Trusted Root store has a key that is too small for today’s standards (1024 bits), anyone able to factor this smaller key would be able to conduct their own MitM attacks, using Superfish’s root certificate. They could also use a compromised root to conduct other attacks such as signing fraudulent code or documents.
Just as in 2005, the Root certificates that your systems trust is a critical part of your security posture. There are plenty of legitimate reasons to add new root certificates to a Trusted Root store. But placing trust in a new root certificate is a big deal, and is a decision that should be made by the owners of the machine. However, apparently also as in 2005, these Trusted Root stores still do not get the attention and awareness they deserve.
Apparently the private key for the Superfish root was also part of the distribution, and has been cracked. There was no need for Superfish to include the private key in their software in order to perform their man-in-the-middle attack, but apparently they did.
This means that anyone who knows what they’re doing can use the Superfish root to sign code, documents, emails, or even create their own, more malicious SSL man-in-the-middle attack. If you have the Superfish root on your system, get rid of it ASAP.