fbpx
Wikipedia

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 isolation metaphor is taken from the idea of children who do not play well together, so each is given their own sandbox to play in alone. It is often used to execute untested or untrusted programs or code, possibly from unverified or untrusted third parties, suppliers, users or websites, without risking harm to the host machine or operating system.[1] 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, sandboxes may be seen as a specific example of 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.[2]

Implementations edit

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.[3]

Examples of sandbox implementations include the following:

  • Linux application sandboxing, built on Seccomp, cgroups and Linux namespaces. Notably used by Systemd, Google Chrome, Firefox, Firejail.
  • Android was the first mainstream operating system to implement full application sandboxing, built by assigning each application its own Linux user ID.[4]
  • Apple App Sandbox is required for apps distributed through Apple's Mac App Store and iOS/iPadOS App Store, and recommended for other signed apps.[5][6]
  • Windows Vista and later editions include a "low" mode process running, known as "User Account Control" (UAC), which only allows writing in a specific directory and registry keys. Windows 10 Pro, from version 1903, provides a feature known as Windows Sandbox.[7]
  • Google Sandboxed API.[8]
  • 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.
  • A jail: network-access restrictions, and a restricted file system namespace. Jails are most commonly used in virtual hosting.[9]
  • Rule-based execution gives users full control over what processes are started, spawned (by other applications), or allowed to inject code into other applications and have access to the net, by having the system assign access levels for users or programs according to a set of determined rules.[10] 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 for infecting a computer. The SELinux and Apparmor security frameworks are two such implementations for Linux.
  • Security researchers rely heavily on sandboxing technologies to analyse malware behavior. By creating an environment that mimics or replicates the targeted desktops, researchers can evaluate how malware infects and compromises a target host. Numerous malware analysis services are based on the sandboxing technology.[11]
  • Google Native Client is a sandbox for running compiled C and C++ code in the browser efficiently and securely, independent of the user's operating system.[12]
  • 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.
  • Secure Computing Mode (seccomp) strict mode, seccomp only allows the write(), read(), exit(), and sigreturn() system calls.
  • HTML5 has a "sandbox" attribute for use with iframes.[13]
  • Java virtual machines include a sandbox to restrict the actions of untrusted code, such as a Java applet.
  • The .NET Common Language Runtime provides Code Access Security to enforce restrictions on untrusted code.
  • Software Fault Isolation (SFI),[14] allows running untrusted native code by sandboxing all store, read and jump assembly instructions to isolated segments of memory.

Some of the use cases for sandboxes include the following:

See also edit

References edit

  1. ^ 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. Retrieved 25 October 2011.
  2. ^ Geier, Eric (2012-01-16). . TechHive. Archived from the original on 2014-07-12. Retrieved 2014-07-03.
  3. ^ "Sandboxing Applications" (PDF). 2001. Retrieved 7 May 2013.
  4. ^ "Application Sandbox - Android Open Source Project". Retrieved 2021-04-02.
  5. ^ "About App Sandbox". developer.apple.com. Retrieved 2020-12-09.
  6. ^ "Security of runtime process in iOS and iPadOS". Apple Support. Retrieved 2021-04-04.
  7. ^ "Windows Sandbox". 2018-12-18. Retrieved 2010-01-07.
  8. ^ google/sandboxed-api, Google, 2020-12-08, retrieved 2020-12-09
  9. ^ "Auto-Sandboxing secure system". Retrieved 2015-01-30.
  10. ^ . 1991. Archived from the original on 28 May 2013. Retrieved 17 May 2013.
  11. ^ "Native Client Sandbox – Untrusted x86 Native Code" (PDF). Retrieved 2015-01-03.
  12. ^ Welcome to Native Client
  13. ^ Internet Explorer Team Blog (14 July 2011). "Defense in Depth: Locking Down Mash-Ups with HTML5 Sandbox". IEBlog.
  14. ^ Wahbe, Robert (1993). "Efficient Software-Based Fault Isolation" (PDF).

External links edit

  • Security In-Depth for Linux Software: Preventing and Mitigating Security Bugs
  • Sandbox – The Chromium Projects
  • FreeBSD capsicum(4) man page – a lightweight OS capability and sandbox framework
  • OpenBSD pledge(2) man page – a way to restrict system operations
  • Sandbox testing importance 2021-04-26 at the Wayback Machine{sandbox} Importance of sandbox in zero day flaw

sandbox, computer, security, this, article, about, computer, security, mechanism, software, testing, environment, sandbox, software, development, computer, security, sandbox, security, mechanism, separating, running, programs, usually, effort, mitigate, system. This article is about the computer security mechanism For the software testing environment see Sandbox software development 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 isolation metaphor is taken from the idea of children who do not play well together so each is given their own sandbox to play in alone It is often used to execute untested or untrusted programs or code possibly from unverified or untrusted third parties suppliers users or websites without risking harm to the host machine or operating system 1 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 sandboxes may be seen as a specific example of 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 2 Contents 1 Implementations 2 See also 3 References 4 External linksImplementations editA 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 3 Examples of sandbox implementations include the following Linux application sandboxing built on Seccomp cgroups and Linux namespaces Notably used by Systemd Google Chrome Firefox Firejail Android was the first mainstream operating system to implement full application sandboxing built by assigning each application its own Linux user ID 4 Apple App Sandbox is required for apps distributed through Apple s Mac App Store and iOS iPadOS App Store and recommended for other signed apps 5 6 Windows Vista and later editions include a low mode process running known as User Account Control UAC which only allows writing in a specific directory and registry keys Windows 10 Pro from version 1903 provides a feature known as Windows Sandbox 7 Google Sandboxed API 8 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 A jail network access restrictions and a restricted file system namespace Jails are most commonly used in virtual hosting 9 Rule based execution gives users full control over what processes are started spawned by other applications or allowed to inject code into other applications and have access to the net by having the system assign access levels for users or programs according to a set of determined rules 10 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 for infecting a computer The SELinux and Apparmor security frameworks are two such implementations for Linux Security researchers rely heavily on sandboxing technologies to analyse malware behavior By creating an environment that mimics or replicates the targeted desktops researchers can evaluate how malware infects and compromises a target host Numerous malware analysis services are based on the sandboxing technology 11 Google Native Client is a sandbox for running compiled C and C code in the browser efficiently and securely independent of the user s operating system 12 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 Secure Computing Mode seccomp strict mode seccomp only allows the write read exit and sigreturn system calls HTML5 has a sandbox attribute for use with iframes 13 Java virtual machines include a sandbox to restrict the actions of untrusted code such as a Java applet The NET Common Language Runtime provides Code Access Security to enforce restrictions on untrusted code Software Fault Isolation SFI 14 allows running untrusted native code by sandboxing all store read and jump assembly instructions to isolated segments of memory Some of the use cases for sandboxes include the following Online judge systems to test programs in programming contests New generation pastebins allowing users to execute pasted code snippets on the pastebin s server See also editFreeBSD jail Sandboxie seccomp Test bench Tor anonymity network References edit Goldberg Ian Wagner David Thomas Randi amp Brewer Eric 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 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 Sandboxing Applications PDF 2001 Retrieved 7 May 2013 Application Sandbox Android Open Source Project Retrieved 2021 04 02 About App Sandbox developer apple com Retrieved 2020 12 09 Security of runtime process in iOS and iPadOS Apple Support Retrieved 2021 04 04 Windows Sandbox 2018 12 18 Retrieved 2010 01 07 google sandboxed api Google 2020 12 08 retrieved 2020 12 09 Auto Sandboxing secure system Retrieved 2015 01 30 Computer System Security and Access Controls 1991 Archived from the original on 28 May 2013 Retrieved 17 May 2013 Native Client Sandbox Untrusted x86 Native Code PDF Retrieved 2015 01 03 Welcome to Native Client Internet Explorer Team Blog 14 July 2011 Defense in Depth Locking Down Mash Ups with HTML5 Sandbox IEBlog Wahbe Robert 1993 Efficient Software Based Fault Isolation PDF External links editSecurity In Depth for Linux Software Preventing and Mitigating Security Bugs Sandbox The Chromium Projects FreeBSD capsicum 4 man page a lightweight OS capability and sandbox framework OpenBSD pledge 2 man page a way to restrict system operations Sandbox testing importance Archived 2021 04 26 at the Wayback Machine sandbox Importance of sandbox in zero day flaw Retrieved from https en wikipedia org w index php title Sandbox computer security amp oldid 1219412198, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.