Cross-posting to dev-tech-dom & dev-security.

As part of Electrolysis development, we need to consider the security implications of the architecture we are implementing. Even though security per se is not an explicit goal at this point (phase 2) of the project, the risk remains that we could actually introduce a number of security issues while refactoring the code into separate processes. Some areas of risk that come to mind:

1) separating atomic security checks across IPC boundaries could introduce security bugs from security checks failing due to a) race conditions (ex. redirect could happen while a related security check happens on the other side of the IPC boundary) b) context sync issues (ex. redirects notifications may not be propagated across IPC) c) plugins/NPAPI may have odd behavior when in a separate process from chrome

2) security foundation for process isolation / low rights
 a) routing all network access through parent process
b) how/when can remote tabs access cookies, password manager, certificate information, file system access for file upload/download c) avoiding proxies for the above - don't have a generic process in the parent process that just passes through all requests from remote processes d) preventing impersonation of chrome dialogs by a remote process (to the degree feasible)
 e) cache - who determines origin of documents, who writes to cache?

A larger threat model is located at https://wiki.mozilla.org/Security/ProcessIsolation/ThreatModel . Though it is focused on security improvements from process isolation, it should still provide useful information for laying the foundation for future phases.

The goal is to start a discussion around the security implications of electrolysis so please chime in, even if its with general skepticism. :) Thanks,
  Lucas.
_______________________________________________
dev-security mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security

Reply via email to