jspahrsummers / sandboxing-guide

Suggestions for sandboxing Mac and Windows applications and workflows to improve security, while balancing usability

Home Page:https://jspahrsummers.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sandbox everything

Inspired by @alexdavid, I became obsessed with sandboxing everything on my computer—constraining applications to the minimum number of privileges they need to perform their job, limiting their data access as much as possible, and preventing any kind of modifications to other apps or the overall system.

The most obvious reasons to do this are, of course, security and privacy. Limiting the surface area for each application will significantly reduce the likelihood of data leakage and data theft (something especially important as a software engineer, given how frequently we have to run untrusted code). No solution is going to be 100% effective, but sandboxing is a relatively easy, low-overhead way to build defense in depth.

This guide offers suggestions for sandboxing Mac and Windows applications and workflows to improve security, while balancing usability.

Balancing security and usability

The most secure machines aren't even connected to the internet, and definitely don't run "apps" as we would know them. Consequently, to have a useful machine, we can't focus only on security—we need to to make some accommodation for usability too.

I think of the solution space for sandboxing sort of like this:

Different sandboxing options plotted in terms of their relative security and relative usability

In written form:

security: low security: medium security: high
usability: low Separate user accounts Virtual machines
usability: medium Web browser
Containers
usability: high Native app (no sandbox) App stores

Each of the solutions involves tradeoffs, and there isn't always a clear winner.

This guide

I've experimented with all of the above solutions, in varying combinations. In this guide, I'll share my preferences for how I prefer to use macOS and Windows while avoiding unnecessary risk.

These recommendations are just my opinion, and certainly not authoritative! I'm not responsible for any negative consequences you suffer if you apply my ideas here.

This guide is divided into three unordered sections:

Hopefully it's useful.

Contributing

This guide is primarily an attempt to evangelize sandboxing and share some of my personal recommendations/opinions on the matter; however, I would love any and all contributions:

Just please keep in mind that this is not meant to be an authoritative reference—as such, I may decline changes that I personally disagree with (on matters of opinion).

License

All contents of this repository are released under the CC0 1.0 Universal license (effectively public domain).

About

Suggestions for sandboxing Mac and Windows applications and workflows to improve security, while balancing usability

https://jspahrsummers.com

License:Creative Commons Zero v1.0 Universal