[Mac] Start the RDD sandbox earlier
Categories
(Core :: Security: Process Sandboxing, enhancement, P1)
Tracking
()
People
(Reporter: haik, Assigned: haik)
References
Details
Attachments
(7 files)
47 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1525086 - Part 2 - Remove unneeded params and permissions from the utility sandbox r?Alex_Gaynor
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review | |
47 bytes,
text/x-phabricator-request
|
Details | Review |
+++ This bug was initially created as a clone of Bug #1498742 +++
Like with bug 1431441 which applied to the Mac sandbox for content processes, we should start the RDD sandbox early during process startup and unify the code with the content sandbox as much as possible.
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 1•6 years ago
|
||
In testing so far, starting the RDD sandbox earlier allows us to drop the connection to the windowserver and coreservices, but it breaks setting the process name resulting in Activity Monitor showing the process as "plugin-container". I've filed bug 1529390 to rename Mac content processes. For now, I'm working on code changes to start the sandbox earlier while still allowing access to the services needed to set the process name.
Assignee | ||
Comment 2•6 years ago
|
||
Move sandbox policies for different process types into their own files.
Create a new "utility" policy cloned from the GMP policy to be used for basic utility-type processes.
Use the utility policy for the RDD process.
Assignee | ||
Comment 3•6 years ago
|
||
Remove the unused plugin binary path and app binary path parameters and cleanup file path permissions.
Explicitly allow access to launchservicesd to allow SetProcessName() to work when the sandbox is started during startup.
Depends on D22405
Assignee | ||
Comment 4•6 years ago
|
||
Start the RDD process earlier by changing RDDProcessHost to pass the necessary command line arguments for enabling the sandbox.
Per lsmp output on 10.14.3, starting the RDD process sandbox removes access to WindowServer, coreservicesd, lsd and distnoted.
Add a pref (defaulting to on) to control enabling starting the RDD process earlier.
Move sandbox CLI param logic into MacSandboxInfo.
Depends on D22408
Assignee | ||
Comment 5•6 years ago
|
||
Cache the result of nsMacUtilsImpl::GetAppPath() to avoid doing I/O on repeated calls.
Depends on D22409
Assignee | ||
Comment 6•6 years ago
|
||
Use the new MacSandboxInfo CLI param methods to setup the content process command line arguments.
Depends on D22410
Assignee | ||
Comment 7•6 years ago
|
||
When the RDD process sandbox is started at launch, assert the sandbox has been enabled in the Init message.
Change AssertMacSandboxEnabled() to use the undocumented sandbox_check() function instead of sandbox_init().
Depends on D22411
Updated•6 years ago
|
Assignee | ||
Comment 8•6 years ago
|
||
Start the RDD process earlier by changing RDDProcessHost to pass the necessary command line arguments for enabling the sandbox.
Per lsmp output on 10.14.3, starting the RDD process sandbox removes access to WindowServer, coreservicesd, lsd and distnoted.
Add a pref (defaulting to on) to control enabling starting the RDD process earlier.
Depends on D22409
Comment 10•6 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/4c6dfbf1662d
https://hg.mozilla.org/mozilla-central/rev/4fc01165236c
https://hg.mozilla.org/mozilla-central/rev/49a9f3abb9a9
https://hg.mozilla.org/mozilla-central/rev/08e70a4f1768
https://hg.mozilla.org/mozilla-central/rev/0e5f0e49adac
https://hg.mozilla.org/mozilla-central/rev/beca0789c9df
https://hg.mozilla.org/mozilla-central/rev/c83b5d6e0777
Updated•6 years ago
|
Updated•6 years ago
|
Description
•