Sandbox (computer security)

In computer security, a sandbox is a security mechanism for separating running programs, usually in an effort to mitigate system failures and/or software vulnerabilities from spreading. The sandbox metaphor derives from the concept of a child's sandbox—a play area where children can build, destroy, and experiment without causing any real-world damage. It is often used to analyze untested or untrusted programs or code, possibly originating from unverified or untrusted third parties, suppliers, users or websites, without risking harm to the host machine or operating system. A sandbox typically provides a tightly controlled set of resources for guest programs to run in, such as storage and memory scratch space. Network access, the ability to inspect the host system, or read from input devices are usually disallowed or heavily restricted.

In the sense of providing a highly controlled environment, sandboxing can be comparable to virtualization. Sandboxing is frequently used to test unverified programs that may contain a virus or other malicious code without allowing the software to harm the host device.

Implementations

A sandbox is implemented by executing the software in a restricted operating system environment, thus controlling the resources (e.g. file descriptors, memory, file system space, etc.) that a process may use.

Examples of sandbox implementations include the following:

Some of the use cases for sandboxes include the following:

See also

References

  1. ↑ "What Is a Sandbox Environment? - Meaning | Proofpoint UK". Proofpoint. 2023-09-13. Archived from the original on 2024-05-28. Retrieved 2024-05-28.
  2. ↑ Goldberg, Ian; Wagner, David; Thomas, Randi & Brewer, Eric (1996). "A Secure Environment for Untrusted Helper Applications (Confining the Wily Hacker)" (PDF). Proceedings of the Sixth USENIX UNIX Security Symposium. Archived (PDF) from the original on 15 June 2010. Retrieved 25 October 2011.
  3. ↑ Geier, Eric (2012-01-16). "How to Keep Your PC Safe With Sandboxing". TechHive. Archived from the original on 2014-07-12. Retrieved 2014-07-03.
  4. ↑ "Sandboxing Applications" (PDF). 2001. Archived (PDF) from the original on 23 September 2015. Retrieved 7 May 2013.
  5. ↑ "Application Sandbox - Android Open Source Project". Archived from the original on 2019-12-11. Retrieved 2021-04-02.
  6. ↑ Wilde, Daniel (2024-04-16). "GrapheneOS review: De-Googled goodness". 9to5google.
  7. ↑ "About App Sandbox". developer.apple.com. Archived from the original on 2020-12-04. Retrieved 2020-12-09.
  8. ↑ "Security of runtime process in iOS and iPadOS". Apple Support. Archived from the original on 2021-04-13. Retrieved 2021-04-04.
  9. ↑ vinaypamnani-msft. "How User Account Control works". learn.microsoft.com. Archived from the original on 2025-07-16. Retrieved 2025-07-14.
  10. ↑ google/sandboxed-api, Google, 2020-12-08, archived from the original on 2020-12-07, retrieved 2020-12-09
  11. ↑ "Auto-Sandboxing secure system". Archived from the original on 2015-02-12. Retrieved 2015-01-30.
  12. ↑ "Computer System Security and Access Controls". 1991. Archived from the original on 28 May 2013. Retrieved 17 May 2013.
  13. ↑ "Native Client Sandbox – Untrusted x86 Native Code" (PDF). Archived (PDF) from the original on 2015-02-12. Retrieved 2015-01-03.
  14. ↑ "Welcome to Native Client". Archived from the original on 2019-11-18. Retrieved 2019-11-18.
  15. ↑ Internet Explorer Team Blog (14 July 2011). "Defense in Depth: Locking Down Mash-Ups with HTML5 Sandbox". IEBlog. Archived from the original on 13 August 2018. Retrieved 2 September 2018.
  16. ↑ Wahbe, Robert (1993). "Efficient Software-Based Fault Isolation" (PDF).