188 stable releases
3.25.1 | Sep 2, 2024 |
---|---|
3.23.17 | Jul 25, 2024 |
3.15.7 | Mar 27, 2024 |
3.9.13 | Dec 31, 2023 |
3.6.2 | Nov 30, 2023 |
#18 in Unix APIs
497,224 downloads per month
3MB
69K
SLoC
Syd is a rock-solid unikernel to sandbox applications on Linux>=5.19. Syd is similar to Bubblewrap, Firejail, GVisor, and minijail. Syd is secure by default, and intends to provide a simple interface over various intricate Linux sandboxing mechanisms such as LandLock, Namespaces, ptrace, and seccomp-{bpf,notify}, most of which have a reputation of being brittle and difficult to use. You may run Syd as a regular user, with no extra privileges, and you can even set Syd as your login shell. A brief overview of Syd's capabilities are as follows:
- Read sandboxing
- Write sandboxing (and Path Masking)
- Stat sandboxing (aka Path Hiding)
- Exec sandboxing (and SegvGuard)
- Ioctl sandboxing (contain AI/ML workloads, access PTY, DRM, KVM safely)
- Force sandboxing (aka Verified execution, like Veriexec and Integriforce )
- TPE sandboxing (aka Trusted Path Execution)
- Network sandboxing (feat. UNIX, IPv4, IPv6, Netlink, and KCAPI sockets)
- Lock sandboxing (uses Landlock LSM)
- Crypt sandboxing (Transparent File Encryption with AES-CTR)
- Proxy sandboxing (SOCKS proxy forwarding with network namespace isolation, defaults to TOR)
- Memory sandboxing
- PID sandboxing (simpler alternatives to Control Groups)
- SafeSetID (Safe user/group switching with predefined UID/GID transitions)
- Ghost mode (similar to Seccomp Level 1 aka Strict Mode)
- Namespaces and Containerization
- Learning mode with Pandora
Read the fine manuals of syd,
libsyd,
gosyd,
plsyd,
pysyd,
rbsyd,
syd.el and watch the asciicasts Memory
Sandboxing, PID
Sandboxing, Network
Sandboxing, and Sandboxing Emacs with
syd. Join the CTF event at
https://ctftime.org/event/2178 and try to read the file /etc/CTF
¹ on
syd.chesswob.org with ssh user/pass: syd.²
- Use cargo to install from source, requires libseccomp.
- To use with Docker, Podman, or CRI-O build with the "oci" feature, see: https://man.exherbolinux.org/syd-oci.1.html
- Packaged for Alpine, Exherbo, and Gentoo.
- Binary releases for arm64, armv7, and x86-64 are located at https://distfiles.exherbolinux.org/#sydbox/
- Releases are signed with this key: https://distfiles.exherbolinux.org/sydbox/syd.asc
- Report security issues to
syd AT chesswob DOT org
. Encrypt with the key above. - Change Log is here: https://gitlab.exherbo.org/sydbox/sydbox/-/blob/main/ChangeLog.md
- VIM syntax highlighting file for Syd profiles is here: https://gitlab.exherbo.org/sydbox/sydbox/-/tree/main/vim
- Tested on arm64, armv7, x86, and x86-64 with GitLab Pipelines, and SourceHut Builds.
Maintained by Ali Polatel. Up-to-date sources can be found at https://gitlab.exherbo.org/sydbox/sydbox.git and bugs/patches can be submitted to https://gitlab.exherbo.org/groups/sydbox/-/issues. Follow toots with the #sydbox hashtag and discuss in #sydbox on Libera Chat.
¹: SHA256(/etc/CTF
)=f1af8d3946546f9d3b1af4fe15f0209b2298166208d51a481cf51ac8c5f4b294
²: Start by reading the CTF sandbox profile.
Dependencies
~10–24MB
~359K SLoC