May 15th, 2020 |
Some years back, a trillion dollar financial fund hired me as an Ethical Hacker to test their security system. They had just spent millions with Cisco to implement a brand new security infrastructure. We started the project and within a day had compromised them 139 different ways. Of the 139 compromises, 138 of them were over HTTPS encrypted connections.
When we reported this to the client, they were miffed. Their director of security asked “How could that be? We just spent millions with Cisco. Their engineers approved the design!” And as soon as he got his bearings, he snapped, “You have to write in your report that there was no data exposed or accessed.”
“No data was taken because we chose not to take any data,” I replied.
Instead, we had successfully planted a flag on their systems. This is a practice used by white hat hackers of installing a file at some deep point on a compromised system to demonstrate privileged access. The ensuing three months involved a ton of back and forth in educating the customer on precisely why we were able to compromise them, and the wording of the final report. However, over that same time they had successfully managed to fix only one of the 139 vulnerabilities — the non-HTTPS exploit.
So, why were we able to compromise them, and how did HTTPS play into this?
Contrary to the implications in its name, Hypertext Transfer Protocol Secure (HTTPS) does not offer security. It is privacy. That means it purely serves to ensure that 1) the communications destined to the application server is validated against DNS, and 2) the communication is encrypted. Because this encryption was between the client and the server, their gateway security tools were bypassed. The only visibility and enforcement their tools could provide was access control allowing network protocol TCP using network port 443 to communicate to the appropriate server. Because of the encryption, their intrusion detection system (IPS) could not look inside the payload to identify the content’s intention — well or mal intended.
We found multiple systems on their network that were accessible externally via HTTPS and then, we had at them. One advantage for the hacker / disadvantage for the company is that HTTPS-based attacks do not need to be tempered. We could be as aggressive as we wanted to be because their security tools had no sense that any of the communications were malicious. Once we identified vulnerabilities, we exploited them and compromised the first system.
Another limitation in their security was that it was a thin hard shell on the outside with a soft gooey mess inside. Because they used gateway security, once we were in, we had access to cross-contaminate everything. And that is precisely what we did, until we gained access to some pretty critical systems.
So, what did the customer learn from this experience?
Well, he was successful in lawyering the report to not look bad, yet not lie. But what you should learn from their experience is that when HTTPS makes a connection private, it makes it private to everyone — including you and your security tools. This applies to communications you originate and communications destined to you.
Today, every SaaS company is in a mad dash to roll out HTTPS. The term they keep using is that it’s “for your security!” And I get pissed off every time I hear this. It is not for your security, it is to ensure that your communication to their systems remains private. They continue to tout this even though many of these same SaaS companies have learned from the experience to decrypt before a communication hits their threat management tools. This protects them – but not their users.
For the user of these applications, the HTTPS communications initiated outbound to third-party sites are significantly harder to protect. The result is that any site that uses HTTPS can behave maliciously toward the user, and it is very difficult for the user to identify and mitigate the attack. Yes, perhaps we could learn to trust some companies, but would you trust Google, or worst yet, Facebook? Would you trust some small unknown arbitrary site you may find yourself on?
A monster security hole.
Considering that over 60% of all Internet communications are encrypted, an investment in robust security tools without an effective means of decrypting all the HTTPS connections in and out of your network leaves a monster security hole.
The tunnel-visioned focus on preventing man-in-the-middle attacks has created a much greater security challenge for many organizations.
In another instance, at an IoT event, I asked the CTO of a IoT system integrator who builds large-scale “smart city” platforms, how he secures his technologies. His response: “We use HTTPS.” I waited for the rest, but it never came. This issue is not clearly understood even by technology, even some security, professionals.
As an industry we have done a piss-poor job of building clear and concise awareness that security is not any one of six things, but a harmonious combination of control, threat management, identity and yes, privacy. So the next time someone tells you they use HTTPS for security, nudge them to this article before they commit security suicide.
Acreto is the first cloud-delivered, end-to-end connectivity and security platform that can connect and protect any technology, on any network, anywhere. Acreto SASE +Plus delivers Secure Access Service Edge (SASE) functionalities for access technologies such as devices, networks, IoT / OT and third-parties; while Acreto Secure Application and Data Interconnect (SADI) connects and protects application delivery infrastructure such as clouds, SaaS, data centers and co-locations. Acreto SASE +Plus is SASE plus SADI — one platform with one interface from one provider for all of your technologies around the world. Learn more at https://acreto.io or @acretoio.