Coder Social home page Coder Social logo

jspahrsummers / sandboxing-guide Goto Github PK

View Code? Open in Web Editor NEW
16.0 2.0 0.0 15 KB

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

Home Page: https://jspahrsummers.com

License: Creative Commons Zero v1.0 Universal

sandboxing containerization security

sandboxing-guide's Introduction

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).

sandboxing-guide's People

Contributors

jspahrsummers avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.