Sandbox (Computersicherheit)

Im Computersicherheit, a Sandkasten ist ein Sicherheitsmechanismus zur Trennung von laufenden Programmen, in der Regel, um Systemfehler und/oder Software -Schwachstellen durch die Ausbreitung zu mindern. Es wird oft verwendet, um ungetestete oder nicht vertrauenswürdige Programme oder Code auszuführen, möglicherweise aus nicht zu bearbeitenden oder nicht vertrauen Betriebssystem.[1] Eine Sandkasten bietet in der Regel eine fest kontrollierte Ressourcenmenge für Gastprogramme, die in der Ausführung von Speicher und Speicher werden können Kratzerraum. Netzwerkzugriff, die Fähigkeit, das Hostsystem zu inspizieren oder aus Eingabegeräten zu lesen, sind normalerweise nicht zugelassen oder stark eingeschränkt.

Im Sinne einer hoch kontrollierten Umgebung können Sandkästen als spezifisches Beispiel für gesehen werden Virtualisierung. Sandboxen wird häufig verwendet, um nicht überprüfte Programme zu testen, die a enthalten können Virus oder andere Schadcode ohne der Software dem Host -Gerät zu schädigen.[2]

Implementierungen

Eine Sandbox wird implementiert, indem die Software in einer eingeschränkten Betriebssystemumgebung ausgeführt wird, wodurch die Ressourcen kontrolliert werden (z. Dateideskriptoren, Speicher, Dateisystemraum usw.), den ein Prozess verwendet kann.[3]

Beispiele für Sandbox -Implementierungen umfassen die folgenden:

  • Linux Anwendungssandboxing, aufgebaut auf SecComp, CGROUPS und Linux -Namespaces. Insbesondere von Systemd, Google Chrome, Feuerfuchs, FireJail.
  • Android war das erste Mainstream -Betriebssystem, das eine vollständige Anwendungssandboxing implementiert, indem jeder Anwendung eine eigene Linux -Benutzer -ID zugewiesen wurde.[4]
  • Apfel App Sandbox ist für Apps erforderlich, die über Apple's verteilt sind Mac App Store und iOS/iPados Appstoreund für andere signierte Apps empfohlen.[5][6]
  • Windows Vista und spätere Ausgaben enthalten einen "niedrigen" Modusprozess, der als bekannt als als bekannt ist "Benutzerkontosteuerung" (UAC), was nur das Schreiben in einem bestimmten Verzeichnis und Registrierungsschlüssel ermöglicht. Windows 10 ProAus Version 1903 bietet eine Funktion als Windows Sandbox.[7]
  • Google Sandbox -API.[8]
  • Virtuelle Maschinen emulieren, nacheifern Ein vollständiger Host -Computer, auf dem ein herkömmliches Betriebssystem wie auf tatsächliche Hardware booten und ausgeführt wird. Das Gastbetriebssystem läuft in dem Sinne, dass es nicht nativ auf dem Host funktioniert, und kann nur über den Emulator auf Host -Ressourcen zugreifen.
  • A Gefängnis: Netzwerk-Zugriffsbeschränkungen und ein begrenzter Dateisystem-Namespace. Gefängnisse werden am häufigsten in verwendet Virtuelles Hosting.[9]
  • Die regelbasierte Ausführung gibt den Benutzern die vollständige Kontrolle darüber, welche Prozesse gestartet, hervorgebracht werden (nach anderen Anwendungen) oder den Code in andere Anwendungen einfließen lassen und Zugriff auf das Netz haben, indem das System Zugriffsstufen für Benutzer oder Programme gemäß a zugewiesen wird Satz bestimmter Regeln.[10] Es kann auch die Sicherheit der Datei/Registrierung steuern (welche Programme das Dateisystem/die Dateisystem/Registrierung lesen und schreiben können). In einer solchen Umgebung haben Viren und Trojaner weniger Möglichkeiten, einen Computer zu infizieren. Das Selinux und Apparmor Sicherheitsrahmen sind zwei solche Implementierungen für Linux.
  • Sicherheitsforscher verlassen sich stark auf Sandboxing -Technologien, um das Malwareverhalten zu analysieren. Durch die Schaffung einer Umgebung, die die gezielten Desktops nachahmt oder wiederholt, können Forscher bewerten, wie Malware einen Zielwirt infiziert und gefährdet. Zahlreich Malware -Analyse Die Dienstleistungen basieren auf der Sandboxing -Technologie.[11]
  • Google Native Client ist eine Sandbox für den kompilierten C- und C ++ - Code im Browser effizient und sicher, unabhängig vom Betriebssystem des Benutzers.[12]
  • Fähigkeit Systeme können als feinkörniger Sandbox-Mechanismus betrachtet werden, bei dem Programme beim Aufbringen und undurchsichtigen Token erhalten werden und die Fähigkeit haben, spezifische Dinge zu tun, basierend auf den Token, die sie haben. Funktionen basierende Implementierungen können auf verschiedenen Ebenen von Kernel bis Benutzerraum funktionieren. Ein Beispiel für das Sandboxing auf fähigbasierter Benutzerebene beinhaltet das HTML-Rendering in a Webbrowser.
  • Secure Computing -Modus (SECComp) ist ein Sandkasten im Linux -Kernel. Wenn SecComped im strengen Modus aktiviert wird, erlaubt er nur das schreiben(), lesen(), Ausfahrt(), und Sigreturn () Systemaufrufe.
  • HTML5 hat ein "Sandbox" -attribut für die Verwendung mit iframes.[13]
  • Java virtuelle Maschinen Fügen Sie eine Sandbox ein, um die Aktionen nicht vertrauenswürdiger Code einzuschränken, wie z. Java Applet.
  • Das Netz Gemeinsame Sprachlaufzeit bietet Code -Zugriffssicherheit Einschränkungen des nicht vertrauenswürdigen Codes durchzusetzen.
  • Software Fehlerisolation (SFI),[14] Ermöglicht das Ausführen von nicht vertrauenswürdigem nativem Code durch Sandboxen aller Speicher-, Lesen- und Sprunganweisungen in isolierte Speichersegmente.

Einige der Anwendungsfälle für Sandboxen enthalten Folgendes:

  • Online -Richter Systeme zum Testen von Programmen in Programmierwettbewerben.
  • Neue Generation Pastebins Ermöglichen, dass Benutzer eingefügt werden können Code Ausschnitte Auf dem Server des Pastebins.

Siehe auch

Verweise

  1. ^ Goldberg, Ian; Wagner, David; Thomas, Randi & Brewer, Eric (1996). "Eine sichere Umgebung für nicht vertrauenswürdige Helferanwendungen (beschränken den schlauen Hacker)" (PDF). Verfahren des sechsten Usenix Unix -Sicherheitssymposiums. Abgerufen 25. Oktober 2011.
  2. ^ Geier, Eric (2012-01-16). "Wie Sie Ihren PC mit Sandboxen sicher halten". Techhive. Abgerufen 2014-07-03.
  3. ^ "Sandboxing -Anwendungen" (PDF). 2001. Abgerufen 7. Mai 2013.
  4. ^ "Anwendungssandbox - Android Open Source -Projekt". Abgerufen 2021-04-02.
  5. ^ "Über App Sandbox". Entwickler.apple.com. Abgerufen 2020-12-09.
  6. ^ "Sicherheit des Laufzeitprozesses in iOS und iPados". Apfelunterstützung. Abgerufen 2021-04-04.
  7. ^ "Windows Sandbox". 2018-12-18. Abgerufen 2010-01-07.
  8. ^ Google/Sandboxed-API, Google, 2020-12-08, abgerufen 2020-12-09
  9. ^ "Auto-Sandboxing Secure System". Abgerufen 2015-01-30.
  10. ^ "Computersystemsicherheit und Zugriffssteuerung". 1991. archiviert von das Original am 28. Mai 2013. Abgerufen 17. Mai 2013.
  11. ^ "Native Client Sandbox - nicht vertrauenswürdiger x86 nativer Code" (PDF). Abgerufen 2015-01-03.
  12. ^ Willkommen beim einheimischen Kunden
  13. ^ Internet Explorer Team Blog. "Verteidigung in der Tiefe: Mash-ups mit HTML5-Sandbox einsperren". Ieblog.
  14. ^ Wahbe, Robert (1993). "Effiziente Software-basierte Fehlerisolation" (PDF).

Externe Links