Sandbox (computer security): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Ruinia (talk | contribs)
partially unbreaking markup
Line 10: Line 10:
==Examples==
==Examples==
{{Technical|section|date=September 2011}}
{{Technical|section|date=September 2011}}
Examples of sandboxes include:|url=http://docs.oracle.com/javase/tutorial/deployment/applet/security.html |title=What Applets Can and Cannot Do|work=The Java Tutorialsimplementations]]—provide (at minimum) a rectangular window with which to interact with the user and some persistent storage (at the user's permission).
Examples of sandboxes include:<ref>{{cite web |url=http://docs.oracle.com/javase/tutorial/deployment/applet/security.html |title=What Applets Can and Cannot Do|work=The Java Tutorialsimplementations}}</ref>—provide (at minimum) a rectangular window with which to interact with the user and some persistent storage (at the user's permission).
* A [[jail (computer , network-access restrictions and a restricted filesystem namespace .<ref>{{cite web |url=http://www.dmst.aueb.gr/dds/pubs/conf/2001-Freenix-Sandbox/html/sandbox32final.pdf |title=Sandboxing Applications|year=2001|accessdate=7 May 2013}}</ref>. Jails are most commonly used in [[virtual hosting]].
* A [[jail (computer security)|jail]], network-access restrictions, and a restricted filesystem namespace<ref>{{cite web |url=http://www.dmst.aueb.gr/dds/pubs/conf/2001-Freenix-Sandbox/html/sandbox32final.pdf |title=Sandboxing Applications|year=2001|accessdate=7 May 2013}}</ref>. Jails are most commonly used in [[virtual hosting]].
* 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- by having the system assign access levels for users or programs according to a set of determined rules.<ref>{{cite web | url=http://oreilly.com/catalog/csb/chapter/ch03.html | title=Computer System Security and Access Controls | year=1991 | accessdate=17 May 2013}}</ref> It also can control file/registry security (what programs can read and write to the file system/registry). In such an environment, viruses and trojans have fewer opportunities of infecting a computer. The [[SELinux]] and [[Apparmor]] security frameworks are two such implementations for [[Linux kernel|Linux]].
* 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- by having the system assign access levels for users or programs according to a set of determined rules.<ref>{{cite web | url=http://oreilly.com/catalog/csb/chapter/ch03.html | title=Computer System Security and Access Controls | year=1991 | accessdate=17 May 2013}}</ref> It also can control file/registry security (what programs can read and write to the file system/registry). In such an environment, viruses and trojans have fewer opportunities of infecting a computer. The [[SELinux]] and [[Apparmor]] security frameworks are two such implementations for [[Linux kernel|Linux]].
* [[Virtual machine]]s [[emulator|emulate]] a complete host computer, on which a conventional operating system may boot and run as on actual hardware. The guest operating system runs sandboxed in the sense that it does not function natively on the host and can only access host resources through the emulator.
* [[Virtual machine]]s [[emulator|emulate]] a complete host computer, on which a conventional operating system may boot and run as on actual hardware. The guest operating system runs sandboxed in the sense that it does not function natively on the host and can only access host resources through the emulator.

Revision as of 18:56, 27 May 2013


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, untrusted users and untrusted websites.[1]

The sandbox typically provides a tightly controlled set of resources for guest programs to run in, such as scratch space on disk and memory. Network access, the ability to inspect the host system or read from input devices are usually disallowed or heavily restricted. In this sense, sandboxes are a specific example of virtualization.

Examples

Examples of sandboxes include:[2]—provide (at minimum) a rectangular window with which to interact with the user and some persistent storage (at the user's permission).

  • A jail, network-access restrictions, and a restricted filesystem namespace[3]. Jails are most commonly used in virtual hosting.
  • 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- by having the system assign access levels for users or programs according to a set of determined rules.[4] It also can control file/registry security (what programs can read and write to the file system/registry). In such an environment, viruses and trojans have fewer opportunities of infecting a computer. The SELinux and Apparmor security frameworks are two such implementations for Linux.
  • 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 runs sandboxed in the sense that it does not function 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 analyse malware behaviour. By creating an environment that mimics or replicates the targeted desktops, researchers can evaluate how malware infects and compromises a target host.
  • 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 kernel to user-space. An example of capability-based user-level sandboxing involves HTML rendering in a Web browser.
  • Online judge systems to test programs in programming contests.
  • New-generation pastebins allowing users to execute pasted code snippets.
  • Secure Computing Mode (seccomp) is a sandbox built in the Linux kernel. When activated seccomp only allows the write(), read(), exit() and sigreturn() system calls.
  • HTML5 has a "sandbox" attribute for use with iframes [5]
  • Applications for Apple's mobile operating system iOS are sandboxed. They are only able to access files inside their own respective storage areas, and cannot change system settings.

References

  1. ^ Ian Goldberg, David Wagner, Randi Thomas, and Eric Brewer (1996). "A Secure Environment for Untrusted Helper Applications (Confining the Wily Hacker)" (PDF). Proceedings of the Sixth USENIX UNIX Security Symposium. Retrieved 25 October 2011.{{cite web}}: CS1 maint: multiple names: authors list (link)
  2. ^ "What Applets Can and Cannot Do". The Java Tutorialsimplementations.
  3. ^ "Sandboxing Applications" (PDF). 2001. Retrieved 7 May 2013.
  4. ^ "Computer System Security and Access Controls". 1991. Retrieved 17 May 2013.
  5. ^ http://blogs.msdn.com/b/ie/archive/2011/07/14/defense-in-depth-locking-down-mash-ups-with-html5-sandbox.aspx, IEBlog