Google App Engine Java security sandbox bypasses
seclists.org
seclists.org
The App Engine CPython runtime can also be subverted in a variety of ways, but about the most exciting thing you can trigger here is for the process hosting your code to immediately be killed.
See:
* http://www.security-explorations.com/en/SE-2011-01-press.htm...
* http://www.security-explorations.com/en/SE-2012-01-press.htm...
* http://www.security-explorations.com/en/SE-2013-01-press.htm...
* http://www.security-explorations.com/en/SE-2014-01-press.htm...
Of course, Google now has virtualization (GCE) because some customers demanded it, but if GAE already works there's no reason to redesign it.
This post is accurate. AppEngine-the-PAAS uses containerization for resource control and as a security layer on top of the (J)VM security.
GAE-the-EC2 competitor uses virtualization to segment machines. The Google Docker offering uses Docker containers, and segments each customer into a VM.
This incident demonstrates the need for it.
Additionally it isn't really redundant. AppEngine supports Python and Go as well as Java, and it makes sense to have a common isolation infrastructure.
If you are not getting money when the app is not performing tasks, you need to minimize the costs related to that state. Two ways to minimize the costs: 1)put as many apps as possible to singe machine 2)implement a fast mechanism for loading/unloading the apps based on demand.
Xen like virtualization is not best choice for this purpose. Virtual machines have overhead which limits on how many of those you can put on one server. Even if the app running on VM does nothing, you still have the overhead. Also starting up the VM takes time so reacting to demand is slower. At least the original GAE would quite often shutdown the application completely and only start it when a new web request came in.
-Robert J. Hanlon
Seriously, it's probably an issue with the Java Security Manager. This will no doubt help the JVM community be better.
Managed VM's are the new direction because now you just install the latest Oracle or whatever VM you want. https://cloud.google.com/appengine/docs/managed-vms/
Do you have sources for this? Java 7 on GAE took really long and eventually shipped only shortly before Java 8 was released. From history I would expect the same to the case for Java 8 on GAE. It will take years and ship around the time Java 9 is released. OTOH if Google created a maintenance horror for themselves by patching the fuck out of the JDK and Jetty (I don't think Servlet 3 is ever going to happen) I don't really have many sympathies for them.
They didn't have such a strong focus on GCE and managed VM's before. It is clear with the release of the public beta of managed VM's, they want people to really test it so they can get it out of beta as quickly as possible. I imagine that most of the team that was allocated to work on GAE is now working on GCE and managed VM's.
I'll be switching to managed vm's at some point in the near future (when I can find some time for it). They are also less expensive, which is nice.
That being said though, allow me to take the opportunity to express the utter disdain and contempt I have for the reference of Hanlon's razor. First off, any rule that uses the word "never" is already probably going to be wrong most of the time. Secondly, there are innumerable instances where stupidity would work in place of malice despite the fact that it was actually malice. I see it used almost exclusively by apologetics of some sort or another. It's a useless straw man of a logical fallacy not conducive to intellectual debate.
It's official, Hanlons razor should be put into retirement and not used by anyone with a respect for logic and rationality.
Stupidity is one of the most commonly used disguises for malice.