Cloud security, bugbear of the masses. For my last workshop of Velocity Day 1 I went to a talk on that topic. I read some good stuff on it in Cloud Application Architectures on the plane in and could stand some more. I “minor” in security, being involved in OWASP and all, and if there’s one area full of more FUD right now than cloud computing, it is cloud security. Let’s see if they can dispel confusion! (I hope it’s not a fluffy presentation that’s nothing but cloud pictures and puns; so many of these devolve into that.)
Anyway, Ward Spangenberg us Directory of Security operations for Zynga Game Networks, which does Farmville and Mafia Wars. He gets to handle things like death threats. He is a founding member of the Cloud Security Alliance ™.
Gratuitous Definition of Cloud Computing time! If you don’t know it, then you don’t need to worry about it, and should not be reading this right now.
Cloud security is “a nightmare,” says a Cisco guy who wants to sell you network gear. Why? Well, it’s so complicated. Security, performance, and availability are the top 3 rated challenges (read: fears) about the cloud model.
In general the main security fuss is because it’s something new. Whenever there is anything new and uncharted all the risk averse types flip out.
With the lower level stuff (like IaaS), you can build in security, but with SaaS you have to “RFP” it in because you don’t have direct control.
Top threats to cloud computing:
- Abuse/nefarious use
- Insecure APIs
- And more but the slide is gone. We’ll go over it later, I hope. Oh, here’s the list.
The “process next door” may be acting badly, and with IPs being passed around and reused you can get blacklisted ones or get DoSsed from traffic headed to one. No one likes to share. You could get germs. Anyway, they have to manage 13,000 IPs and whitelisting them is arduous.
Not Hosted Here Syndrome
You don’t have insight into locations and other “data center level” stuff. Even if they have something good, like a SAS 70 certification, you still don’t have insight into who exactly is touching your stuff. Azure is nice, but have you tried to get your logs? You can’t see them. Sad.
Management tools and development frameworks don’t have all the security features they should. Toolsets are immature and stuff like forensics are nonexistent. And PaaS environments that don’t upgrade quickly end up being a large attack surface for “known vulnerabilities.” You can reprovision “quickly” but it’s not instantaneous.
Stuff like DDoS and botnets are classic abuse. He says there’s “always something behind it” – people don’t just DoS you for no profit! And only IaaS and PaaS should be concerned about it! I think that’s quite an overstatement, especially for those of us who don’t run 13,000 servers – people do DoS for kicks and for someone with 100 or fewer servers, they can be effective at it.
Note “Clobbering the Cloud” from DefCon 17.
XSS, injection, CSRF, all the usual… Use the tools. Validate input. Review code. And insecure crypto, because doing real crypto is hard.
Malicious insiders/Pissy outsiders
Devs, consultants, and the cloud company. You need redundant checks. Need transparent review.
Shared Technology Issues
Data Loss and Leakage
Can happen. Do what you would normally do to control it. Encrypt some stuff.
Account or Service Hijacking
Users aren’t getting brighter. Phishing etc. works great. There’s companies like Damballa that work against this. Malware is very smart in lots of cases, using metrics, self-improving.
Public deployment security impacts
Advantages – anonymizing effect, large security investments, pre-certification, multisite redundancy, fault tolerance.
Disadvantages – collateral damage, data & AAA security requirements, regulatory, multi-jurisdictional data stores, known vulnerabilities are global.
Going hybrid public/private helps some but increases complexity and adds data and credential exchange issues.
Advantages: Control of encryption, minimized privileged user attacks, familiar AAA mechanisms, standardized and cross-vendor deployment, full control at VM level.
Disadvantages: Account hijacking, credential management, API security risks, lack of role based auth, full responsibility for ops, and dependence on the security of the virtualization layer.
Advantages: Less operational responsibility, multi-site business continuity, massive scale and resiliency, simpler compliance analysis, framework security features.
Disadvantages: Less operational control, vendor lockin, lack of security tools, increased likelihood of privileged user attack, cloud provider viability.
Advantages: Clearly defined access controls, vendor’s responsible for data center and app security, predictable scope of account compromise, integrationwith directory services, simplified user ACD.
Disadvantages: Inflexible reporting and features, lack of version control, inability to layer security controls, increased vulnerability to privileged user attacks, no control over legal discovery.
If you are using something like Flash that goes in the client, how do you protect your IP? You don’t. Can’t. It’ll get reverse engineered. You can do some mitigations. Try to detect it. Sic lawyers on them. Fingerprint code.
Yes, he plays all their games.
In the end, it’s about risk management. You can encrypt all the data you put in the cloud, but what if they compromise your boxes you do the encryption on, or what if they try to crack your encryption with a whole wad of cloud boxes? Yep. It brings the real nature of security into clearer relief – it’s a continuum of stopping attacks by goons and being vulnerable to attacks by Chinese government and organized crime funded ninja Illuminati.
Can you make a cloud PCI compliant? Sure. Especially if you know how to “work” your QSA, because in the end there’s a lot of judgment calls in the audit process. Lots of encryption even on top of SSL; public key crypt it from browser up using JS or something, then recrypt with an internal only key. Use your payment provider’s facilities for hashing or 30-day authorizations and re-auth. Throw the card number away ASAP and you’re good! Protecting your keys is the main problem in the all-public cloud. (Could you ssh-agent it, inject it right into memory of the cloud boxes from on premise?)
Private cloud vs public cloud? Well, with private you own the infrastructure.
This session was OK; I suspect most Velocity people expect something a little more technical. There weren’t a lot of takeaways for an ops person – it was more of an ISSA or OWASP “technology decisionmaker” focused presentation. If he had just put in a couple hardcore techie things it would have helped. As it was, it was a long list of security threats that are all existing system security threats too. How’s this different? What are some specific mitigations; many of these were offered as “be careful!” Towards the end with the specific IaaS/PaaS/SaaS implications it got better though.