App Security: The Elephant in the Cloudy Room
Okay, kids. It's time we had "that talk". You know the one, the one you've been whispering about with your friends but heretofore were afraid to actually ask about because of course everyone else knows about it and you didn't want to appear, well, not cool by admitting you didn't really know.
Except they don't, or at least if they do, they aren't talking about it either. And it's really past time we talked about taking the right precautions when using the cloud. You know, how to protect your apps in the cloud from infection and attack.
Yes, today we're finally going to talk about application security in the cloud.
Not encryption. Not identity and access management. And not network security.
Because of all the documents, research, advice and general discussions on "cloud security" available on the vast Internet today very few* of them mention the words "app security." I can find research and statistics about the use of encryption, about who should (and isn't) protecting data in the cloud, and who's using what kind of identity and access management to gate access to apps anywhere and everywhere. But on the topic of application security? Nada. Nothing. Zilch. Zero.
Which is really quite surprising (and disturbing) given that web apps are the second leading cause of security incidents for financial services, just behind the evil-sounding crimeware according to the most recent Verizon Data Breach Investigation Report (DBIR). It's also surprising upon doing a bit of analysis on the top 25 breaches this century and finding out that nearly half (44%) were executed through a web application. It's also disheartening because there seems to be a correlation between a decreasing security posture and the migration of applications to the cloud.
The reality is that encryption is not a panacea.
Let me repeat that, this time in all caps to emphasize how serious this is: ENCRYPTION IS NOT A PANACEA.
Neither is network security or identity and access management.
All these things are good, but individually they are only one part of a much larger protection scheme. A protection scheme that should - but often does not - include application security in the mix.
Encryption isn't going to stop an SQLi. Encrypting malicious code just hides it from the myriad services in the network designed to find them.
The application is, by its purpose, a public-facing resource. We put it out there and expect - nay, we encourage, we entice, we beg - consumers to interact with it. To use it. To install it. To visit it often. It is an application world, and that means applications are critical to every aspect of business, whether that's customer-facing, employee-facing or internal-systems running. We rely on applications for just about everything we do these days, and yet when we mention security we never seem to remember it.
It's really about time we start paying more attention to application security, and not just data security or network security or encrypted communications. Data is most vulnerable when it's in process in the application. That's because at that point it is in plaintext, and it is completely under the control of that application. The application can display it, modify it, and deliver it to whomever (or increasingly whatever, given the rise of bots and spiders and malware) can coax it out.
That means we need to pay more attention to securing applications against exploitation and attack. From the platform (the web or app server) to the protocols (TCP and HTTP) to the actual code itself. We need to scan and scrub and discover and defend against the myriad methods used by attacks to exploit the entire application stack.
Web application attacks doubled in frequency from under 20% in 2012 to 40% in 2013 according to F-Secure Labs, and Neustar found in 2014 that 55% of DDoS targets experienced smokescreening (volumetric DDoS as a cover for the real, application layer attacks) with nearly 50% having malware/virus installed and 26% losing customer data.
Application attacks are a real and significant threat, especially as they migrate to the cloud where fewer options for protecting them may be available.
The native services available in the cloud focused on security are all about access and encryption. None of them are "application layer" security and none provide the coverage necessary to inspire confidence in withstanding an attack designed to disable, corrupt or exfiltrate data by exploiting the application itself. That means you need another solution; another service designed to protect applications and the data it is responsible for handling in the cloud just as you do in the data center. That may mean a cloud-enabled WAF (web application firewall) or WAF as a Service or at a minimum a thorough application of the best practices recommended by OWASP on every application deployed in the cloud.
Cloud security may be viewed as a shared responsibility, with the provider and the customer taking on the chore of different aspects of securing "the cloud" but application security is 110% the responsibility of the one who puts that application in the cloud in the first place. Consider this interview (via The Register) with AWS head of global security programs Bill Murray (emphasis mine):
“Security at AWS is a shared responsibility between AWS and customers,” Murray said in a recent interview. He is responsible for AWS security, spanning physical security of Amazon data centres, while also handling warrants and subpoenas from law enforcement.
“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.”
“We are asked this question a lot: 'What keeps you up at night?' What keeps us up at night in AWS security is the customer not configuring their applications correctly to keep themselves secure,” Murray said.
That's you, and that means you need to consider carefully what services and solutions you're deploying to protect that application from what inevitably looks like the attack that's going to come your way.
Application security isn't like an expensive bodyguard. It's not something that only the VIP apps get. It's more like personal security, and it's something every application that presents itself in public should have. And that's true whether those apps are in the data center or in the cloud.
* I say "very few" but honestly, I could not find even one. Mayhap that's my Google fu failing, but more likely it's because no one seems to want to talk about it.