sandboxes and policies
Learning Objectives
Understand
- the risks associated with mobile code;
- sandboxing as a risk mitigation technique;
- the use of policies as a technique for making sandboxes more flexible;
- policy enforcement mechanisms.
Overview
In today's networked world code mobility is ubiquitous: downloading of applications from the Internet, automatic updating, installation
of plugins, Javascript in web pages, and so forth...
Depending on the context in which the code is run, running such code may carry a substantial risk. Sandboxing is the process of running untrustworthy code in such a way that the amount of damage it can do is limited. Sandboxing policies specify what the code is allowed to do and, more importantly, what it is not allowed to do. These policies then need to be enforced either by monitoring what the code is doing at run-time, by statically inspecting the code before running it, by rewriting the code before running it, or by a combination of these techniques.
In this module we discuss what kinds of policies can be relevant, and what kind of enforcement mechanisms exist. We discuss both existing practical systems as well as theoretical limitations on what policies can be enforced.