Is the app attack surface in the cloud really different than on-premises?
No.
Still here? Okay then, let me explain further. This whole thing started because I was reading the Internet the other day and happened upon a claim that stated: “the attack surface for cloud applications is dramatically different than for highly controlled data centers”.
And that made me frustrated because it isn’t true at all.
The attack surface for applications deployed in the cloud is the same as that of applications deployed on-premises. It doesn’t matter if we’re talking about SaaS or IaaS. An application’s attack surface is always the same.
An application may be attacked at the application layer, at the platform layer and sometimes* at the operating system layer.
The vast majority of threats against applications in the past 15 years have targeted protocols (HTTP, TCP, or SSL/TLS) that are the responsibility of the platform (app or web server) or at the application itself (SQLi, XSS, CSRF, etc…). Both of these layers of the application stack are the same irrespective of where that application might be deployed.
The attack surface for cloud applications remains the same. Let’s say you had an app, in the cloud, that was vulnerable to SQLi. Which shouldn’t be too much of a stretch cause there are a whole lot of apps that are today. Just saying.
Let’s say you decided to move that app on-premises. In that “highly controlled data center.”
Did the SQLi vulnerability go away?
Of course not. It’s still there and it’s still just as exploitable. We can reverse that process and guess what, the app is vulnerable (and exploitable) regardless of whether it’s “in the cloud” or “on-premises.”
If it was vulnerable to Heartbleed or Shellshock or Apache Killer on-premises, it’s still vulnerable in the cloud. And vice versa. The attack surface of an application does not change with its deployment location.
What changes when you move from on-premises to the cloud is what you are responsible for securing.
For example, the only thing you really have control over with SaaS (and are ultimately responsible for managing) is who is authorized access. That’s why ID federation is becoming such a big deal; it’s the best technological solution we have to providing the level of corporate governance over access to SaaS applications.
In IaaS, your responsibility goes deeper into the stack – down to the guest operating system. You may recall this statement from AWS head of global security programs Bill Murray:
“Customers are responsible for protecting everything from the guest operating system they run on AWS up through the applications they are running,” he told El Reg. We are responsible for the host OS and the VM and everything down to the concrete of the data centre floor.”
Which means the OS, platform, and application layers of the application stack are your responsibility in IaaS. Interestingly enough, they’re also your responsibility in the data center. And those layers – those attack surfaces – don’t magically disappear when you put an app into the cloud.
That’s important to remember when you start evaluating what services you need in the cloud for apps you may be deploying “out there.” DDoS. WAF. Data leak prevention. Access control. These are all app security services that remain as critical in the cloud as they are in the data center, on-premises – because the attack surface of an application doesn’t change with its deployment location.
* I say sometimes because while the rate at which malware/trojans are deposited during volumetric attacks is increasing, the thing is that the deposits are generally happening via the application layer. They aren’t directly targeting the operating system layer.