Ubuntu 24.04 LTS
- UFW firewall
- unattended-upgrades
- GNOME desktop
- Signature-verified checksum
Sandfort is a native macOS app that builds disposable Linux virtual machines in UTM. Run the take-home challenge, the unvetted dependency, or the sketchy repository inside one — then throw it away and start clean in seconds.
Why it exists
A recruiter sends a coding challenge. A tutorial says to pipe a script into your shell. A dependency you have never heard of wants a post-install hook.
Each of those runs with your files, your SSH keys, your browser profile, and your password manager sitting right there. Attackers know it — Elastic Security Labs documented a campaign that delivered malware through fake interview challenges, which is part of what prompted this project.
Sandfort's answer is boring on purpose: give that work a whole separate computer, make the separate computer cheap to create, and make throwing it away the normal thing to do rather than a chore.
How it works
Sandfort provisions one trusted protected baseline per distribution, then stamps out numbered disposable instances from it. Resetting an instance restores its disk and firmware state from that baseline — it does not clean up a dirty machine, it replaces it.
Sandfort downloads the distribution's official ARM64 cloud image, verifies its pinned SHA-256, and provisions it with cloud-init: desktop, firewall, guest tools, security updates, and the development tools you picked.
Every clean sandbox is a full independent copy with its own disk, UEFI state, VM UUID, and MAC address. Open the untrusted thing there. Instances run side by side, and offline is the default.
Reset & Run Clean restores that instance from the baseline. Resume deliberately keeps its state — and its contamination. Deleting moves the bundle to the Trash, and numbers are never reused.
Curated guests
The catalog is deliberately small. A profile ships only after its official image, pinned checksum, ARM64 boot behaviour, desktop, firewall, and completion checks are tested end to end on real hardware — not just configured and hoped for.
Isolation
A sandbox that overstates itself is worse than no sandbox, because you trust it with things you shouldn't. So here is the honest version of both halves.
osascript, or UI automation.No personal accounts, SSH keys, cloud credentials, password managers, wallets, work files, or secrets. Sandfort reduces the blast radius of running untrusted code. It does not make running untrusted code safe, and it shows you this disclosure before you can create your first environment.
A minimal, bounds-checked OpenPGP verifier confirms that a pinned checksum is a value the distribution actually signed — with no dependency on the gpg tool and no key ever fetched at runtime.
Each distribution keeps its own baseline, credentials, tool configuration, and instance numbering. Verified downloads are shared; mutable disks and firmware never are.
Advanced mode embeds your own shell script into cloud-init. It runs as root inside the guest during trusted baseline creation — never on your Mac.
Every line in the activity log carries a wall clock and elapsed time, so a slow step is visible and the log correlates with the guest's own setup output.
Guest sign-in uses a four-word phrase drawn from a reviewed 2,048-word list. The entropy claim is written down, enforced by tests, and documented alongside its limits.
Guest provisioning and host virtualization sit behind a deliberate provider boundary, so other hypervisors and hosts can be added without weakening the shared policy.
Get started
Sandfort is source-first today. Clone the repository, build the app, and open it.
# 1. install UTM from https://mac.getutm.app $ git clone https://github.com/shaztechio/sandfort.git $ cd sandfort $ make test $ make app $ open dist/Sandfort.app
Requires macOS 13 or later on Apple silicon, Xcode command line tools, and UTM. The app finds UTM wherever it is installed and offers to fetch it if it is missing.
Documentation