Browser Sandboxing
Do you know that malicious code from a website could attack your computer? Sandboxing is the security mechanism that puts web content in a restrictive box to limit the damage it can do.
Your mission is to create a video explaining how a modern browser like Chrome uses Linux kernel features to construct a secure sandbox.
You will investigate the multiple layers of this box. You will explain how each one removes a different set of dangerous capabilities from the code
Requirements
Principle of Least Privilege
Begin by explaining the core security concept that motivates sandboxing: the Principle of Least Privilege.
Why is it a terrible idea to let a process that parses HTML to have access to your entire file system or network?
The Layers of the Sandbox
Your video should explain how multiple layers of security work together. A single layer might be bypassed, but breaking through all of them is much harder. Focus on these key Linux features:
- Namespaces:
- Explain how namespaces trick a process into believing it’s the only one on the system.
- Cover at least the PID (Process ID) and User namespaces.
- System Call Filtering:
- seccomp-bpf: Explain how the browser can give the kernel a strict “allow list” of system calls that a renderer process is permitted to use. What happens when it tries to use a forbidden one, like
reboot()?
- seccomp-bpf: Explain how the browser can give the kernel a strict “allow list” of system calls that a renderer process is permitted to use. What happens when it tries to use a forbidden one, like
- Resource Management:
- setrlimit: How does this prevent a malicious process from crashing the system by using up all the memory or opening thousands of files?
- cgroups: Briefly explain how control groups can be used to limit CPU and memory usage so that one tab won’t slow down the entire machine.