Compartmentalization
- •
What it is
- •
A security strategy of isolating different applications, tasks, or identities from each other so that a compromise in one place can't spread to everything else.
- •
- •
Why it matters
- •
You generally can't guarantee a piece of software is safe, or will stay safe — even trustworthy developers can ship an undetected vulnerability. Compartmentalization doesn't try to prevent every compromise; it limits the blast radius when one happens.
- •
- •
How it works
- •
Can be implemented at several levels: using entirely separate devices for different purposes, running groups of related applications inside separate virtual machines, or using an operating system built around strong application sandboxing and mandatory access control (e.g. Qubes OS). Mobile OSes generally sandbox better than desktop OSes by default — apps can't get root access and must request permission for system resources — while desktop OSes (aside from ChromeOS) generally lag behind, which is part of why specialized VM/container-heavy Linux distributions exist for this purpose.
- •
- •
Example
- •
Running your web browser and email client — both of which routinely execute untrusted, third-party code just by opening a page or attachment — inside a separate VM from your main system, so that a browser exploit can't reach your personal files.
- •
- •
Related