nsjail
ports
nsjail | ports | |
---|---|---|
6 | 14 | |
2,785 | 473 | |
1.2% | 1.3% | |
7.9 | 10.0 | |
3 months ago | 7 days ago | |
C++ | Makefile | |
Apache License 2.0 | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nsjail
-
Server-side sandboxing: Containers and seccomp
So what's the difference between nsjail[1] and bubblewrap[2]?
[1] https://github.com/google/nsjail
- Firejail: Light, featureful and zero-dependency security sandbox for Linux
-
Sandboxing C++, Rust, Python Code?
I am currently working on a code execution engine (also written in Rust) which uses nsjail for sandboxing and gnu time for measuring time and memory usage under the hood. You can run arbitrary code simply using a rest api and there is also a client library for Rust. It can already run C++, Rust and Python (and a few other languages) while allowing you to specify multiple source files, environment variables, command line arguments, standard input and resource limits (e.g. time, memory, maximum number of processes and whether network access is allowed or not). After running the program, the engine reports exit codes, outputs (stdout and stderr) and the amount of resources the program used.
- WebAssembly: Adding Python Support to WASM Language Runtimes
- Notes on Running Containers with Bubblewrap
- Bubblewrap: Unprivileged Sandboxing Tool for Linux
ports
- Wayland on OpenBSD
-
Firejail: Light, featureful and zero-dependency security sandbox for Linux
I think OpenBSD comes the closest to what you want with its two easy to use syscalls that provide syscall filtering and restricting access to paths:
https://man.openbsd.org/pledge.2
https://man.openbsd.org/unveil.2
A few random examples:
https://github.com/tmux/tmux/blob/c8494dff7b6b9a996866edaf8c...
https://github.com/openbsd/ports/blob/master/www/mozilla-fir...
https://github.com/openbsd/ports/blob/master/www/mozilla-fir...
To get the best isolation you need to patch the source — the application needs to go through initial setup and then drop privileges to the absolute possible minimum. But it's easy to make custom wrappers for third-party applications — the above profiles taken from the OpenBSD ports tree are the proof.
-
Understanding rc.d/
Have you checked the no-ip port: https://github.com/openbsd/ports/blob/master/net/no-ip/pkg/noip2.rc
-
OpenBSD: Shutdown/reboot now require membership of group _shutdown
> https://github.com/openbsd/ports/commit/bf33ea5f3ff390d8cde3...
Now, this is surprising. I randomly clicked on that link and I immediately see that the code and the patch has a bug. It only checks the first 8 characters:
- if (gr != NULL && strncmp(gr->gr_name, "operator", 8) == 0)
-
Does OpenBSD have temperature monitoring and CPU usage issues?
Some people are working around this by using obsdfreqd, some by patching sys/kern/sched_bsd.c (change if (hw_power) to if (0 && hw_power)), some by simply setting to a lower speed (sysctl hw.perfpolicy=manual and hw.setperf=99 might be enough as this disables turbo mode found on some CPUs).
-
How to compile something that requires OpenSSL?
You could also look into a port that has a hard dependency on openssl like: https://github.com/openbsd/ports/tree/master/security/sslscan
-
How I would sell OpenBSD as a salesperson
For me it's the ease of management and good documentation.
For example, during 6.8 to 6.9 upgrade, there was a major postgresql upgrade.
It is mentioned in the doc https://www.openbsd.org/faq/upgrade69.html (see Special packages at the bottom).
You're redirected to the package README with special instructions on how to setup and upgrade: https://github.com/openbsd/ports/blob/master/databases/postg...
Et voilà, everything is explained.
On debian, if I am not careful, I'll do an upgrade and risk breaking something during a db migration (I'm looking at you MySQL upgrades...).
- So I installed OpenBSD 7.0 on my iMac G3 and well no desktop environment will fully install because of missing packages… even compiling CDE was a no go because KSH93 is broken on macppc. At least it’s a step in the right direction as far as getting anything graphical working.
-
OpenBSD Gaming Updates Q2 2022
Godot engine gamecontroller support. This is limited and incomplete, but it's a start. A huge number of indie games made with Godot are released every week; most of which work at least partially with an XBox {360,One} controller. You can follow This Week in Godot if you're interested.
-
Handling argc==0 in the Linux kernel
> OpenBSD has handled this case for some years. I do not know if there was any breakage or fallout from this.
The other thing about OpenBSD is that when they make a change to their OS, they also go through to make sure all the (third-party) ports/packages:
* https://cvsweb.openbsd.org/ports/
* https://github.com/openbsd/ports
do not break. So they're create patches for the software and and submit them upstream.
What are some alternatives?
bubblewrap - Low-level unprivileged sandboxing tool used by Flatpak and similar projects
mlvwm - Macintosh-like Virtual Window Manager (official repo)
crosvm - The Chrome OS Virtual Machine Monitor - Mirror of https://chromium.googlesource.com/crosvm/crosvm/
NsCDE - Modern and functional CDE desktop based on FVWM
RIP - Free,Open-Source,Cross-platform agent and Post-exploiton tool written in Golang and C++.
xcape - Linux utility to configure modifier keys to act as other keys when pressed and released on their own.
wasmtime-py - Python WebAssembly runtime powered by Wasmtime
dxvk-native - D3D9/11 but it runs natively on Linux!
logkeys - :memo: :keyboard: A GNU/Linux keylogger that works!
OpenBSD-Games-Database - Database of games that run on OpenBSD
sandkasten - Run untrusted code in an isolated environment
Perimeter