Like many developers, I've had a long and tattered history with application programing interfaces (APIs). Back when I started my career (yes, in the Stone Age), I was a programmer on a 200-person team building telecom billing systems. I wrote screens that had to interface with the core foundation services of the billing platform via (you guessed it) an API.
I didn't last long in that job because it took me three days to troubleshoot an issue in the platform that broke my screen. Good times.
But APIs have become prevalent as development organizations move to build more modular and agile software. Many of these APIs expose key functionality in an open manner, not just within a self-contained environment using proprietary application calls like in the good old days. Rather, these APIs provide services available over the Internet to anyone authorized to use them. If I needed to add a real-time address parser to my billing address screen (which I had to do) back in the day, then I built it myself. And when we had to update the screen to support Canadian addresses, well, that was just miserable. I mean, who puts letters in their postal codes? Now I would just do a call to the U.S. (or Canadian) Postal Service's Web service and get the normalized address with the postal code. If it took an hour to code that, it's only because I was a crappy developer.
My partner Rich Mogull has been doing a lot of research about the management plane of the cloud and how even though everyone gets all excited about its elasticity, it's really the automation and orchestration afforded by cloud computing that will have the greatest impact on how we do security moving forward. In a recent post, he showed how about 50 lines of Ruby code can be used to identify unmanaged cloud instances in your account. It's very cool stuff. And it's all done through the APIs of Amazon Web Services.
Damn, those APIs again. It turns out APIs can do pretty much anything from a management context in the cloud. That provides these incredibly powerful software-defined security capabilities. But it also opens up your management plane to pretty much ... anyone. The APIs are accessible via the public Internet. If an attacker make an API call impersonating you, then they can do a lot of damage in your environment. Can you see your threat modeling team's collective heads exploding?
Thus, figuring out what vulnerabilities exist within your APIs is going to be a key part of managing threats of these cloud (and hybrid cloud) environments moving forward. Sure, traditional attacks will continue. But if an attacker could just spin up an instance using their malicious operating system in your cloud network, they don't have to worry about lateral movement to their target -- they are already there.
So there is an emerging category of technologies looking to protect the APIs against threats. These new "API gateways" are built to enable broader (and more secure) IT services accessibility as cloud and mobile applications provide broader and more open access to corporate IT data. As my partners Adrian Lane and Gunnar Peterson said in a recent blog series on API gateways: "API gateways curate APIs, provision access to users and developers, and facilitate key management. For security this is the place to focus – to centralize policy enforcement, implement enterprise protocols and standards, and manage the attack surface."
You may not be overly concerned with APIs today, nor will we see a lot of research at Black Hat this year breaking cloud APIs, but it's only a matter of time. When the attackers start to figure out what exactly they can do via the APIs, they will.
Mike Rothman is President of Securosis and author of "The Pragmatic CSO"
Mike's bold perspectives and irreverent style are invaluable as companies determine effective strategies to grapple with the dynamic security threatscape. Mike specializes in the sexy aspects of security, like protecting networks and endpoints, security management, and ... View Full Bio