All Projects β†’ hobochild β†’ Sandy

hobochild / Sandy

A tiny "sandbox" to run untrusted code πŸ–οΈ

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Sandy

Imag
imag - Text based personal information management suite
Stars: ✭ 318 (-5.07%)
Mutual labels:  cli
Fd
A simple, fast and user-friendly alternative to 'find'
Stars: ✭ 19,851 (+5825.67%)
Mutual labels:  cli
Ack3
ack is a grep-like search tool optimized for source code.
Stars: ✭ 330 (-1.49%)
Mutual labels:  cli
Swagger Cli
Swagger 2.0 and OpenAPI 3.0 command-line tool
Stars: ✭ 321 (-4.18%)
Mutual labels:  cli
Graphback
Graphback - Out of the box GraphQL server and client
Stars: ✭ 323 (-3.58%)
Mutual labels:  cli
Tqdm
A Fast, Extensible Progress Bar for Python and CLI
Stars: ✭ 20,632 (+6058.81%)
Mutual labels:  cli
Horusec
Horusec is an open source tool that improves identification of vulnerabilities in your project with just one command.
Stars: ✭ 311 (-7.16%)
Mutual labels:  cli
Jet
CLI to transform between JSON, EDN and Transit, powered with a minimal query language.
Stars: ✭ 331 (-1.19%)
Mutual labels:  cli
Teachcode
A tool to develop and improve a student’s programming skills by introducing the earliest lessons of coding.
Stars: ✭ 325 (-2.99%)
Mutual labels:  cli
Nord Dircolors
An arctic, north-bluish clean and elegant dircolors theme.
Stars: ✭ 328 (-2.09%)
Mutual labels:  cli
Percollate
A command-line tool to turn web pages into beautiful, readable PDF, EPUB, or HTML docs.
Stars: ✭ 3,535 (+955.22%)
Mutual labels:  cli
Wasm Pack
This tool seeks to be a one-stop shop for building and working with rust- generated WebAssembly that you would like to interop with JavaScript, in the browser or with Node.js. wasm-pack helps you build rust-generated WebAssembly packages that you could publish to the npm registry, or otherwise use alongside any javascript packages in workflows that you already use, such as webpack.
Stars: ✭ 3,848 (+1048.66%)
Mutual labels:  cli
Corber
CLI for building hybrid apps with Ember/Vue/Glimmer/Cordova
Stars: ✭ 327 (-2.39%)
Mutual labels:  cli
Docker Lock
Automatically manage image digests in Dockerfiles, docker-compose files, and Kubernetes manifests by tracking them in a separate Lockfile
Stars: ✭ 319 (-4.78%)
Mutual labels:  cli
Pipx
Install and Run Python Applications in Isolated Environments
Stars: ✭ 4,398 (+1212.84%)
Mutual labels:  cli
Img
Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder.
Stars: ✭ 3,512 (+948.36%)
Mutual labels:  cli
Pkg
Package your Node.js project into an executable
Stars: ✭ 19,349 (+5675.82%)
Mutual labels:  cli
Typeorm Fixtures
πŸ’Š Fixtures loader for typeorm
Stars: ✭ 330 (-1.49%)
Mutual labels:  cli
Create Dmg
Create a good-looking DMG for your macOS app in seconds
Stars: ✭ 3,494 (+942.99%)
Mutual labels:  cli
Go Tea
Tea provides an Elm inspired functional framework for interactive command-line programs.
Stars: ✭ 329 (-1.79%)
Mutual labels:  cli

Sandy

A tiny sandbox to run untrusted code. πŸ–οΈ

Sandy uses Ptrace to hook into READ syscalls, giving you the option to accept or deny syscalls before they are executed.

WARNING: While sandy is able to intercept READ syscalls there are a variety of ways to get around this. Full details can be found in the hackernews thread. Some of which can be patched to catch simple attacks, but you should use sandy with the expectation that it is better than nothing but it is not true isolation.

Usage

Usage of ./sandy:

  sandy [FLAGS] command

  flags:
    -h	Print Usage.
    -n value
        A glob pattern for automatically blocking file reads.
    -y value
        A glob pattern for automatically allowing file reads.

Use cases

You want to install anything

> sandy -n "/etc/password.txt" npm install sketchy-module

  BLOCKED READ on /etc/password.txt
> sandy -n "/etc/password.txt" bash <(curl  https://danger.zone/install.sh)

  BLOCKED READ on /etc/password.txt

You are interested in what file reads you favourite program makes.

Sure you could use strace, but it references file descriptors sandy makes the this much easier at a glance by printing the absolute path of the fd.

> sandy ls
Wanting to READ /usr/lib/x86_64-linux-gnu/libselinux.so.1 [y/n]

You don't want to buy your friends beer

A friend at work knows that you are security conscious and that you keep a /free-beer.bounty file in home directory. With the promise of a round of drinks and office wide humiliation Dave tries to trick you with a malicious script under the guise of being a helpful colleague.

You run there script with sandy and catch him red handed.

> sandy -n *.bounty bash ./dickhead-daves-script.sh

  BLOCKED READ on /free-beer.bounty

NOTE: It's definitely a better idea to encrypt all your sensitive data, sandy should probably only be used when that is inconvenient or impractical.

NOTE: I haven't made any effort for cross-x compatibility so it currently only works on linux. I'd happily accept patches to improve portability.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].