Actions

sandbox-app-launcher - Sandboxed Application Launcher

From Whonix



Overview[edit]

sandbox-app-launcher is an application launcher that starts each app inside its own restrictive sandbox. It runs each app as its own user, in a bubblewrap sandbox and confined by AppArmor.

The directory, /shared, is shared across all app sandboxes to transfer files across.

This implements a permissions system to configure what apps can access. There are currently 5 available permissions:

  • Network access
  • Webcam access
  • Microphone access
  • Shared storage access (read-only or read-write)
  • Dynamic native code execution

All apps the user installs will be automatically configured to run in the sandbox and a prompt will ask the user which permissions they wish to grant the application (not implemented yet).

Currently a WIP and not for actual use.

Design[edit]

Bubblewrap allows us to make use of namespaces and seccomp. All apps are run in mount, PID, cgroup and UTS namespaces (IPC namespaces are planned but are not currently implemented due to limitations in Xorg). Fine-grained filesystem restrictions are implemented via mount namespaces and AppArmor. Seccomp blocks certain syscalls which can greatly reduce kernel attack surface among other things.

All apps by default use a seccomp whitelist to block dangerous and unused syscalls. In addition, we filter the arguments of some syscalls to:

  • Block unused socket families.
  • Block any dangerous or unused ioctls such as TIOCSTI (can be used in sandbox escapes), TIOCSETD (can increase kernel attack surface by loading vulnerable line disciplines), SIOCGIFHWADDR (can retrieve the user’s MAC address), etc.
  • Implement W^X (explained in detail further below).

Apparmor also gives fine-grained controls over IPC signals, D-Bus, UNIX sockets, ptrace and more.

D-Bus[edit]

D-Bus is common avenue for sandbox escapes [1]. We mitigate this by denying access to the system bus and only allowing access to the session bus. This is safe since each app runs as their own user with their own session bus, ensuring no IPC between sandboxes.

PulseAudio[edit]

PulseAudio was also not written with isolation in mind [2] so access to it is blacklisted from within the sandbox however this will break a lot of things so we may use a more robust solution such as PipeWire [archive] in the future.

X11[edit]

X11 has no GUI isolation [3] so it's trivial to escape sandboxes with it. We don't protect against this right now but we're planning to switch to Wayland [4] or if that's not an option, use a nested X11 server like Xpra.

Dynamic Native Code Execution[edit]

Dynamic native code execution is generally a security issue since it allows an attacker to execute new arbitrary code so we prevent it by enforcing strict W^X in both memory and the filesystem. Seccomp is used to prevent creating memory mappings that are both writable and executable and transitioning a writable memory mapping to executable. AppArmor is used to prevent executing programs from writable directories. This will force the attacker to utilize the already existing code (e.g. ROP/JOP) which is much more limited and difficult. The main things that legitimately require this are JIT engines in browsers.

Malware Persistence[edit]

The only places malware can persist inside the sandbox are the home directory or shared storage (if enabled as read-write) and it can only ever be executed if W^X is disabled. Everything else is mounted read-only or as a tmpfs.

References[edit]



text=Jobs in USA
Jobs in USA


Search engines: YaCy | Qwant | ecosia | MetaGer | peekier | Whonix ™ Wiki


Follow: Twitter.png Facebook.png Iconfinder news 18421.png Rss.png Matrix logo.svg.png 1024px-Telegram 2019 Logo.svg.png Discourse logo.svg Reddit.jpg

Donate: Donate Bank Wire Paypal Bitcoin accepted here Monero accepted here Contriute

Whonix donate bitcoin.png Monero donate whonix.png United Federation of Planets 1000px.png

Share: Twitter | Facebook

Please help in testing new features and bug fixes in Whonix ™.

https link onion link

This is a wiki. Want to improve this page? Help is welcome and volunteer contributions are happily considered! Read, understand and agree to Conditions for Contributions to Whonix ™, then Edit! Edits are held for moderation. Policy of Whonix Website and Whonix Chat and Policy On Nonfreedom Software applies.

Copyright (C) 2012 - 2020 ENCRYPTED SUPPORT LP. Whonix ™ is a trademark. Whonix ™ is a licensee [archive] of the Open Invention Network [archive]. Unless otherwise noted, the content of this page is copyrighted and licensed under the same Freedom Software license as Whonix ™ itself. (Why?)

Whonix ™ is a derivative of and not affiliated with Debian [archive]. Debian is a registered trademark [archive] owned by Software in the Public Interest, Inc [archive].

Whonix ™ is produced independently from the Tor® [archive] anonymity software and carries no guarantee from The Tor Project [archive] about quality, suitability or anything else.

By using our website, you acknowledge that you have read, understood and agreed to our Privacy Policy, Cookie Policy, Terms of Service, and E-Sign Consent. Whonix ™ is provided by ENCRYPTED SUPPORT LP. See Imprint, Contact.