safe-cargo-0.1.2 is not a library.
Visit the last successful build:
safe-cargo-0.1.3
Problem
Supply chain attacks became very common thing these days, but we're still running untrusted code on our machines everyday. This crate provides safe-cargo subcommand, that runs all commands in a sandboxed environment.
For now it is working on macOS only using Apple's sandboxing mechanism.
How to use it?
Installation
$ cargo install safe-cargo
Using is pretty simple, you can use any cargo command:
$ safe-cargo buld
$ safe-cargo test
$ safe-cargo run
Or any other cargo command.
What is allowed inside sandoxed environment
Read access
Sandobx allow access to list all files (without reading their content), and read/execute following files and directories:
/dev/randomand/dev/urandom/dev/tty- All files in
PATHdirectiories - All files in following directories (and subdirectories):
/private/etc//private/var/db/timezone//Applications/Xcode.app/Contents/Developer/usr/lib//private/var/db/dyld//System/Library//System/Volumes/Preboot/Cryptexes/OS/System/Cryptexes/OS//Library/Preferences/
Write access
- OS temporary directory
cargoandtargetdirectories private to a sandbox (separate from$HOME/.cargoandtargetin your workdir)Cargo.lockin your project directory – otherwise it's impossible to build a project
Network access
- communication over
/private/var/run/mDNSResponder– to allow DNS lookups - outbound network connections to ports 80/443 - to download crates
Full list of permissions can be found in sources.