Sandbox (Sandboxing)

Dennis Faas's picture

In computer security, a sandbox is a security mechanism for separating running programs. It is often used to execute untested code, or untrusted programs from unverified third-parties, suppliers and untrusted users.

A sandbox in computing terms (also referred to as "sandboxing") provides a tightly-controlled set of resources for guest programs to run in, such as 'temporary' space on disk and memory. In such a scenario, network access and the ability to inspect the host system or read from input devices are disallowed or heavily restricted.

In this sense, sandboxes are a specific example of computing virtualization.

Examples of Sandboxing

Some examples of sandboxes are:

Applets

Applets are self-contained programs that run in a virtual machine or scripting language interpreter that does the sandboxing. In application streaming schemes, the applet is downloaded onto a remote client and may begin executing before it arrives in its entirety. Applets are common in web browsers, which use the mechanism to safely execute untrusted code embedded in web pages. Three common applet implementations -- Adobe Flash, Java applets and Silverlight -- provide (at minimum) a rectangular window with which to interact with the user and some persistent storage at the user's permission.

Jail

A jail is a set of resource limits imposed on programs by the operating system kernel. It can include I/O bandwidth caps, disk quotas, network access restrictions and a restricted file system namespace. Jails are most commonly used in virtual web hosting.

Rule-Based Execution

Rule-based Execution: gives users full control over what processes are started, spawned (by other applications), or allowed to inject code into other apps and have access to the net. It also can control file/registry security (What programs can read and write to the file system/registry) As such, viruses and Trojans will have a less likely chance of infecting your PC.

Virtual Machines

Virtual machines emulate a complete host computer, on which a conventional operating system may boot and run as on actual hardware. The guest operating system is sandboxed in the sense that it does not run natively on the host and can only access host resources through the emulator.

Sandboxing on Native Hosts

Security researchers rely heavily on sandboxing technologies to analyze malware behavior. By creating an environment that mimics or replicates the targeted desktops, researchers can evaluate how malware infects and compromises a target host.

Capability Systems

Capability systems can be thought of as a fine-grained sandboxing mechanism, in which programs are given opaque tokens when spawned and have the ability to do specific things based on what tokens they hold. Capability based implementations can work at various levels, from the kernel level to user-space. An example of capability-based user-level sandboxing would be HTML rendering in Google's Chrome web browser.

This document is licensed under the GNU Free Documentation License (GFDL), which means that you can copy and modify it as long as the entire work (including additions) remains under this license.

Rate this article: 
No votes yet