Cloudsecurity.org Interviews Guido van Rossum: Google App Engine, Python and Security

Guido Homepage

In this interview, cloudsecurity.org talks to Guido van Rossum about Python, Google App Engine and security.

Guido is the creator of the Python programming language and more recently, Google App Engine team member.  His involvement with the App Engine project was pretty late - the code “was almost ready for release” when he get involved.  The security architect of App Engine was primarily project lead, Kevin Gibbs, supported by the rest of the App Engine crew and the Google Security Team.

The Interview

cloudsecurity.org: What security principles did you follow for App Engine?

GvR: While I can’t share any specifics on what we’re doing to secure App Engine, I can say that the main principle we’ve followed could be called “defense in depth”. We’re not relying exclusively on a secure interpreter, or any other single security layer, to protect our users.

cloudsecurity.org: Please provide some examples of how those principles played out in terms of the current implementation?

GvR: Sorry, we don’t divulge such information.

cloudsecurity.org: What criteria did you apply to Python module selection?

GvR: We first looked for modules that were useful and straightforward to audit. If a module was large or complex, we’d only audit it (fixing things we found) if it was deemed essential or at least useful for a large number of users; otherwise we’d exclude it.

cloudsecurity.org: What do you see as the security risks inherent in exposing an interpreter runtime in a shared environment?

GvR: I presume you’re asking about risks to users, like providing accidental access to data belonging to another app. We’ve taken extensive measures to isolate different apps from each other. For example, each app runs in a separate process, and the datastore prevents an app from accessing data belonging to other apps.

cloudsecurity.org: I recently attended a fascinating talk by Justin Ferguson (a Seattle based security consultant) at eusecwest in London.  He gave a great talk exploring security vulnerabilities in language interpreters and specifically highlighted some security weaknesses in Python App Engine.  What are your thoughts on his research and specifically the Python issues he highlighted?  When do you anticipate they will get fixed?

GvR: We’ve anticipated all of the possibilities raised in Justin’s talk, and took measures to protect our users. Justin highlighted weaknesses in Python, but not in App Engine. Furthermore, our security model does not rely solely upon protections within the Python interpreter; there are additional protections that these external analyses have missed.

cloudsecurity.org: How do you contain an attacker that exploits bugs in App Engine from exploiting the underlying OS and potentially interfering with other users processes or attacking backend systems?

GvR: You are correct that there are strong measures in place, but I’m not at liberty to discuss details.

cloudsecurity.org: Python was the first language to get the App Engine treatment, what language is next and what are some of the language specific security challenges the team has had to deal with?

GvR: Although I can’t comment on what language is next, we are working on this, and have gotten a lot of great feedback from our developers. As far as language-specific security challenges, they stemmed mostly from the complexity of the Python interpreter. We spent a lot of time auditing this, and did a great deal more than just identifying buffer overflows.  I can also add that Google is actively researching the security of interpreted languages.  Google engineers routinely contribute security fixes to open source projects, including but not limited to Python.

cloudsecurity.org: How does the team decide when ‘enough is enough’ in terms of hardening the interpreter?

GvR: That’s not really how we approach it. We realize that security is an ongoing effort, and try to stay ahead of threats through continuous monitoring and testing.

cloudsecurity.org: Some commentators have suggested that perhaps the difficulty of auditing the implementation led to some modules being more heavily restricted than perhaps necessary.  What are your thoughts on that and what plans, if any, are there to bring back code objects/functions that were eliminated in the initial release?  (with the benefit of hindsight).

GvR: The only thing we are likely to put back is the _ast module, which was not audited based upon an underestimation of its usefulness (see my answer to question #3 above).  We will also put back some dummy functions and other objects whose absence currently prevents some popular frameworks from being loaded without modifications. For example, some harmless functionality in the imp module will come back. We’re also looking into making urllib2 work (to some extent), though that’s not really a security issue but merely a matter of API adjustment.

cloudsecurity.org: It is reported that Google encourages small groups to go off and create.  How involved were the Google security team with App Engine in terms of design and implementation review/testing?  Given the dynamics, is it possible to have a meaningful security process that shadows the development process?

GvR: The Google Security team is involved in everything we do. They have been extremely helpful.

cloudsecurity.org: How can people report security weaknesses they discover in App Engine?  What commitment does Google give in terms of dealing vulnerability reports?

GvR: There is a standard process for submitting security issues. See http://www.google.com/corporate/security.html. Google moves very fast to protect its users when a verifiable security vulnerability is reported.

cloudsecurity.org: One concern is the potential misuse of App Engine to exploit security vulnerabilities in visitors browsers.  This is not a new problem per se, shared hosting providers know all about this.  But with Google and other Cloud providers, the scalability potential is much higher.  What are your thoughts on this and what pro-active steps is Google taking to detect and terminate evil apps?

GvR: This is high on our list of concerns. We deal with this through a combination of restrictions on what you can do (e.g. certain HTTP headers and ports are off-limits) and, again, monitoring.

cloudsecurity.org: Beyond App Engine, what role do you think Python will play in the Cloud both now and in the future?

GvR: Sorry, I’m not prone to philosophizing about the future.

cloudsecurity.org: Trust is often cited as a barrier to enterprise adoption of Cloud Computing.  What role do you personally think Google can play in building that trust?

GvR: I think trust is built up over a long period of experience. Our actions in terms of being open to our users will be the most important factor in establishing trust. Of course, Google’s reputation also helps: everybody understands that Google doesn’t want its name associated with a bad product.

cloudsecurity.org: Looking at the Cloud Computing landscape beyond Google, what are your thoughts on the current state of Cloud Computing and Security?

GvR: It’s obvious that Cloud Computing is only just taking off. The next few years will be very exciting.

cloudsecurity.org: Lastly, what are some of your favourite App Engine apps?

GvR: There are too many to enumerate. If you insist on a highlight, well, I like Rietveld (http://codereview.appspot.com), a tool for collaborative code review which I (largely) wrote myself. It is open source and includes some essential components from Mondrian, a similar internal tool which I created before I joined the App Engine team.

Thanks

My thanks to Guido for his time and sharing his views.

If you are curious about Cloud Computing and security, don’t miss out on future posts: subscribe by RSS or subscribe by email.

13 Responses to “Cloudsecurity.org Interviews Guido van Rossum: Google App Engine, Python and Security”

  1. It is a shame he wasn’t able to share some of the details, it would have been interesting to see what can be done to secure apps in a shared space like this. If it is for proprietary reasons that he can’t discuss what they’ve done, I understand - but if it is to keep attackers from learning what systems are in place, he should know that security by obscurity is a failed model. Thanks for the interview transcript, it was a good read!

  2. they virtualized stuff, they have aslr/etc, its a hand wavy answer hidden behind nda’s. this is the problem with interfacing with companies, this was a chance for them to advertise, not have an honest discourse, which is why I dropped out of being involved in it.

    Also, Google, next time you send someone to do a hit job on me, don’t send someone as nice as Chris.


  3. “While I can’t share any specifics on what we’re doing to secure App Engine, …”

    “Sorry, we don’t divulge such information.”

    “You are correct that there are strong measures in place, but I’m not at liberty to discuss details.”

    Here’s the zinger:


    I think trust is built up over a long period of experience. Our actions in terms of being open to our users will be the most important factor in establishing trust.

    Yeah. Being open to your users.

  4. I understand Guido’s constraints; as a Google employee he can only say so much. You, however, are journalists. If you don’t get meaningful information you are under no obligations to publish a series of “No comments.”

  5. I’m not at liberty to comment on this interview at this time.

  6. Thanks all for the comments…

    @Robert: agree.

    @jf: Wasn’t aware that Google had approached you. Agree with your sentiment around a potential missed opportunity. Thanks for sharing your research.

    @Christopher: You noticed that too eh? ;-)

    @George: I’m not a journalist. I agree that I am under no obligation to publish a series of ‘No comment’ style answers but I think in some cases - like this - its illustrative.

    @SDC: :P

  7. cool stuff sir

  8. > While I can’t share any specifics on what we’re doing > Sorry, we don’t divulge such information. > I’m not at liberty to discuss details. > I can’t comment on what language is next > Sorry, I’m not prone to philosophizing about the future. > There are too many to enumerate. Wow. What a disappointingly uninformative interview. I wonder why he even agreed to give it in the first place — it’s not as if he planned to answer perfectly reasonable questions.

  9. As an addendum, I talked to Chris and apparently what I was told about Google’s intentions were inflated and didn’t correspond to reality, strike what I said there, sorry.

  10. […] has an interview with Guido van Rossum on the topics of Google App Engine, Python and Security. […]

  11. […] på en intervju med Guido van Rossum, skaparen av Python och BDFH (Benevolent Dictator For Life) om säkerheten i Google App […]

  12. […] Google App Engine, Python und die Sicherheit: »In this interview, cloudsecurity.org talks to Guido van Rossum about Python, Google App Engine […]

  13. […] plan is to harden Perl (one layer of defense in App Engine’s hardened environment); implement Protocol Buffers and stubs of the […]

Leave a Reply

You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>