4 ms·
Sorry, I just read the linked article so I don’t really know the exact specific of your system, but I think I’m having a flashback. These are exactly all the pr
by tigershark 8y ago
Sorry, I just read the linked article so I don’t really know the exact specific of your system, but I think I’m having a flashback.
These are exactly all the promises of the sandboxed JVM running in a browser, probably with 10-20x performance deficit to account for JavaScript vs java.
I think that after about 20 years we all know why that kind of “security” model failed.
I’m actually quite stunned seeing that you are running code from thousands of different websites in the same process.
The only game changing part that I can see is giving a huge incentive to a lot of not so good people to try to break the sandbox.
And I was hoping that after the intel spectre debacle we were finally going to move in the right direction...
Apparently we are still going in the wrong one.
I really hope that I misunderstood everything and that you are not really running code from thousands of different websites in the same process.
- zackbloom 8y agoOne of the fundamental truths behind any innovation is it breaks at least one 'sacred' belief of the last generation. The JVM was not a technology built for this kind of multi-tenancy, it was bolted on later. V8 is one of the most well tested and secured pieces of software in existance, and that it has a much smaller surface area than the Linux process isolation you're referring to.
- donmcronald 8y ago> 10,000+ tenants on one machine > a huge incentive to a lot of not so good people to try to break the sandbox > $15k bounty on this exact type of exploit Lol. What a joke.
- doctorless 8y agoOn the other hand, containerization typically occurs on an independent (from other owners) instance of a virtual machine, which typically is running on separate processor cores, helping increase the overall isolation despite residing on shared hardware. Exposed processor caches due to exploits like Meltdown are a significantly higher risk on a platform of this kind than on a containerized environment. V8 exists at a much higher level than hardware-level exploits. How does your platform mitigate these kinds of concerns? Presumably you have some kind of virtualization above this to manage roll out of your execution environment, but adding a shared execution context like V8 feels to me like the risk factor is doubled, not reduced.
- orf 8y ago> I’m actually quite stunned seeing that you are running code from thousands of different websites in the same process. Are you also stunned every time you open your browser? Because it's the same thing.
- tigershark 8y agoChrome has one process per tab. It seems exactly the opposite to me.
- orf 8y agoAs I understand that was introduced only as a mitigation for Spectre.
- kentonv 8y agoIt's a bit more complicated. Chrome has had the ability to run separate tabs in separate processes since day 1. However, quite often, JavaScript from separate web sites would end up running in the same process. Specifically, (i)frames, popup windows, and sometimes tabs created by a site would run in the same process as the creating site, even if the child window displayed a completely different domain. In this case, in fact, the sites would run in the same V8 isolate. The only separation was "context" separation, which essentially means that the objects from one site were prohibited from accessing the objects from another even though they occupied the same heap. More recently, Chrome has introduced Site Isolation, which actually allows iframes to run in separate processes. On desktop, this is enabled by default as of Chrome 67. On Android, it is not enabled yet, because it has been shown to be too expensive. The Chrome team wants to fix this, but it's not clear (to me, at least) whether they'll be able to overcome the inherent barriers here. Chrome started working on Site Isolation before Spectre, but Spectre accelerated interest in it. My take is that Spectre is probably not the main reason that the Chrome security people (who are awesome, BTW) want to do it, but it provided a great excuse to rally support behind it. For Workers -- much like for Android Chrome -- process-per-tenant is still too costly to be feasible. So, we need to pursue other approaches, as I've described elsewhere in this thread.