OLD | NEW |
1 # Linux Sandboxing | 1 # Linux Sandboxing |
2 | 2 |
3 Chromium uses a multiprocess model, which allows to give different privileges | 3 Chromium uses a multiprocess model, which allows to give different privileges |
4 and restrictions to different parts of the browser. For instance, we want | 4 and restrictions to different parts of the browser. For instance, we want |
5 renderers to run with a limited set of privileges since they process untrusted | 5 renderers to run with a limited set of privileges since they process untrusted |
6 input and are likely to be compromised. Renderers will use an IPC mechanism to | 6 input and are likely to be compromised. Renderers will use an IPC mechanism to |
7 request access to resource from a more privileged (browser process). | 7 request access to resource from a more privileged (browser process). |
8 You can find more about this general design | 8 You can find more about this general design |
9 [here](http://dev.chromium.org/developers/design-documents/sandbox). | 9 [here](http://dev.chromium.org/developers/design-documents/sandbox). |
10 | 10 |
(...skipping 28 matching lines...) Expand all Loading... |
39 | 39 |
40 ## Sandbox types summary | 40 ## Sandbox types summary |
41 | 41 |
42 | **Name** | **Layer and process** | **Linux flavors where available** | **State
** | | 42 | **Name** | **Layer and process** | **Linux flavors where available** | **State
** | |
43 |:---------|:----------------------|:----------------------------------|:-------
---| | 43 |:---------|:----------------------|:----------------------------------|:-------
---| |
44 | [Setuid sandbox](#The_setuid_sandbox.md) | Layer-1 in Zygote processes (render
ers, PPAPI, [NaCl](http://www.chromium.org/nativeclient), some utility processes
) | Linux distributions and Chrome OS | Enabled by default (old kernels) and mai
ntained | | 44 | [Setuid sandbox](#The_setuid_sandbox.md) | Layer-1 in Zygote processes (render
ers, PPAPI, [NaCl](http://www.chromium.org/nativeclient), some utility processes
) | Linux distributions and Chrome OS | Enabled by default (old kernels) and mai
ntained | |
45 | [User namespaces sandbox](#User_namespaces_sandbox.md) | Modern alternative to
the setuid sandbox. Layer-1 in Zygote processes (renderers, PPAPI, [NaCl](http:
//www.chromium.org/nativeclient), some utility processes) | Linux distributions
and Chrome OS (kernel >= 3.8) | Enabled by default (modern kernels) and actively
developed | | 45 | [User namespaces sandbox](#User_namespaces_sandbox.md) | Modern alternative to
the setuid sandbox. Layer-1 in Zygote processes (renderers, PPAPI, [NaCl](http:
//www.chromium.org/nativeclient), some utility processes) | Linux distributions
and Chrome OS (kernel >= 3.8) | Enabled by default (modern kernels) and actively
developed | |
46 | [Seccomp-BPF](#The_seccomp-bpf_sandbox.md) | Layer-2 in some Zygote processes
(renderers, PPAPI, [NaCl](http://www.chromium.org/nativeclient)), Layer-1 + Laye
r-2 in GPU process | Linux kernel >= 3.5, Chrome OS and Ubuntu | Enabled by defa
ult and actively developed | | 46 | [Seccomp-BPF](#The_seccomp-bpf_sandbox.md) | Layer-2 in some Zygote processes
(renderers, PPAPI, [NaCl](http://www.chromium.org/nativeclient)), Layer-1 + Laye
r-2 in GPU process | Linux kernel >= 3.5, Chrome OS and Ubuntu | Enabled by defa
ult and actively developed | |
47 | [Seccomp-legacy](#The_seccomp_sandbox.md) | Layer-2 in renderers | All
| [Deprecated](https://src.chromium.org/viewvc/chrome?re
vision=197301&view=revision) | | 47 | [Seccomp-legacy](#The_seccomp_sandbox.md) | Layer-2 in renderers | All
| [Deprecated](https://src.chromium.org/viewvc/chrome?re
vision=197301&view=revision) | |
48 | [SELinux](#SELinux.md) | Layer-1 in Zygote processes (renderers, PPAPI) | SELi
nux distributions | [Deprecated](https://src.chromium.org/viewvc/chr
ome?revision=200838&view=revision) | | 48 | [SELinux](#SELinux.md) | Layer-1 in Zygote processes (renderers, PPAPI) | SELi
nux distributions | [Deprecated](https://src.chromium.org/viewvc/chr
ome?revision=200838&view=revision) | |
49 | Apparmor | Outer layer-1 in Zygote processes (renderers, PPAPI) | Not used
| Deprecated | | 49 | AppArmor | Outer layer-1 in Zygote processes (renderers, PPAPI) | Not used
| Deprecated | |
50 | 50 |
51 ## The setuid sandbox | 51 ## The setuid sandbox |
52 | 52 |
53 Also called SUID sandbox, our main layer-1 sandbox. | 53 Also called SUID sandbox, our main layer-1 sandbox. |
54 | 54 |
55 A SUID binary that will create a new network and PID namespace, as well as | 55 A SUID binary that will create a new network and PID namespace, as well as |
56 `chroot()` the process to an empty directory on request. | 56 `chroot()` the process to an empty directory on request. |
57 | 57 |
58 To disable it, use `--disable-setuid-sandbox`. (Do not remove the binary or | 58 To disable it, use `--disable-setuid-sandbox`. (Do not remove the binary or |
59 unset `CHROME_DEVEL_SANDBOX`, it is not supported). | 59 unset `CHROME_DEVEL_SANDBOX`, it is not supported). |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
142 | 142 |
143 * [this page](linux_suid_sandbox_development.md) for the `setuid` sandbox | 143 * [this page](linux_suid_sandbox_development.md) for the `setuid` sandbox |
144 * [this page](http://www.chromium.org/for-testers/bug-reporting-guidelines/han
ging-tabs) | 144 * [this page](http://www.chromium.org/for-testers/bug-reporting-guidelines/han
ging-tabs) |
145 for triggering crashes | 145 for triggering crashes |
146 * [this page for debugging tricks](linux_debugging.md) | 146 * [this page for debugging tricks](linux_debugging.md) |
147 | 147 |
148 ## See also | 148 ## See also |
149 | 149 |
150 * [LinuxSandboxIPC](linux_sandbox_ipc.md) | 150 * [LinuxSandboxIPC](linux_sandbox_ipc.md) |
151 * [How Chromium's Linux sandbox affects Native Client](https://chromium.google
source.com/native_client/src/native_client.git/+/master/docs/linux_outer_sandbox
.md) | 151 * [How Chromium's Linux sandbox affects Native Client](https://chromium.google
source.com/native_client/src/native_client.git/+/master/docs/linux_outer_sandbox
.md) |
OLD | NEW |