Hi,

I have some concerns toward the current B2G model at the OS/kernel
level, which I have discussed with various people already. I'd like to
raise awareness about these concerns and see if we currently have a
solution, or if a solution is really planned.

Note that the solution is likely to be electrolysis, but, while it's on
the roadmap, as far as I understand, it is likely that B2G won't
actually ship with electrolysis enabled, nor would it really be planned
in the future. (I also understand that having a proper "1 process per
window" electrolysis with the current code base may be a huge task).

The main concern is that B2G currently uses a single process model,
where the userspace API handles and control hardware (think WebAPI) and
memory access (and perhaps more) for the apps.

More specifically, the apps run in the same process as the API itself.
This raises both reliability and security concerns IMO.

This means the OS/kernel has no control over it. Here is the list of
issues I see with that model:

- Memory bound checking is done via the JS engine, any bug there, and
everything (apps Gecko) may be compromised, or crashes.
* Kernel level (or even CPU level) memory using paging in protected mode
(default) ensure an app (aka a process) can only break itself

- Resource usage is not controlled, AFAIK
* Kernel level resource control can freeze or regulate apps (control
groups and limits in Linux)

- Can't use regular Linux access control, since everything happens in
one process
* When using separate processes, all I/O, IPC, etc uses system calls and
can be controlled via various models such as SELinux, etc.

There may be additional issues and the list could, I suppose, be extended.

While using electrolysis is arguable for a "regular" browser, I think
it's something important to think about for a browser which supports
WebAPI, and which is designed to run most of the apps on the system.


Guillaume
_______________________________________________
dev-security mailing list
dev-security@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security

Reply via email to