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.
Multitenancy
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.
DoS
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.
Insecure Coding
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
With a virtualized level, you can always potentially attack through it. Check out Cloudburst and Red Pill/Blue Pill.
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.
IaaS 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.
PaaS Issues
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.
SaaS Issues
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.
Q&A
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.
Great comments. Anything in particular you would like see a deep tech dive on? That’s the problem I always have with this presentation.
Hey man! Well, two vectors of thought. From one vector (the OWASP guy in me), I would like to see more differentiation of cloud specific threats from “good old everywhere” threats to better show the relative lack of unique threats in the cloud. From the “techie butts in seats” vector, you can cheat with the ‘cloud specific” angle and really show anything interesting – show the protocols behind Farmville and how someone attacked it in the past, or something. “Ways people have attacked an API-based service and things we’ve done about it” is uber specific hot takeaway material.
Thanks again for the feedback. I will see what i can do for future presentations.
Cool – hey if you come through Austin the Austin OWASP chapter would love to have you speak!
Very useful… I’m just putting together a presentation for a similar audience, and this helps me think of how I need to tackle my topic! So thanks!
BTW, my recent blog “Security is irrelevant. Resistance is futile” might be on interest. It’s not techie, but touches on the findings of the recent Ponemon Institute survey on cloud security amongst early adopters. http://ow.ly/23fNa
Good post, and very true… One of the biggest threats in the security space (and ops space in general) is thinking you can say “no” to new things like cloud computing… They’re going to happen; through, over, or around you. You have to figure out how to align.
That’s one of the reasons we cover security issues on this otherwise largely DevOpsey blog – security is nothing more than an ops/qa function that needs to start adopting the more collaborative mindset to thrive. There’s a reason the average Web app does “nothing” in terms of security even though common best practices like input validation have been known and preached for more than a decade.
Absolutely agree… And actually this is one of the things that I find exciting about virtualization and cloud computing. Security (as well as few other disciplines that often get ignored or managed as silos) cannot be bolted on after the fact if we are to properly make the most of them. As you said, it will need to be an integral part of DevOps and the overall business services fabric… and this time it cannot just remain as a best practice that often gets ignored, otherwise the necessary discipline, automation and economies of scale will not be achievable.
Actually this is a good topic for a blog post to get into specifics, examples and early adopter use cases… so stay tuned and thanks again for yet more ideas!
Absolutely agree… And actually this is one of the things that I find exciting about virtualization and cloud computing. Security (as well as few other disciplines that often get ignored or managed as silos) cannot be bolted on after the fact if we are to properly make the most of them. As you said, it will need to be an integral part of DevOps and the overall business services fabric… and this time it cannot just remain as a best practice that often gets ignored, otherwise the necessary discipline, automation and economies of scale will not be achievable.
Actually this is a good topic for a blog post to get into specifics, examples and early adopter use cases… so stay tuned and thanks again for yet more ideas!