In meinem Artikel will ich versuchen, einen Überblick über die Möglichkeiten und Unmöglichkeiten von Sandboxing und die Unterschiede zur Hardware basierten Isolation zu geben. In diesem Artikel konzentriere ich mich auf Software Sandboxing auf dem Client. Hardware Appliances gibt es natürlich auch, stehen hier jetzt aber nicht im Fokus.

Für den Einstieg bietet sich eine Analogie an: Die lieben Kleinen sitzen in einer Sandbox, respektive Sandkasten, tun, was man in so einer Sandbox halt so tut, Sandburgen bauen und Katzenkot aussieben, und tragen danach unabsichtlich den Sand in die gute Stube. Natürlich schauen die um Sauberkeit besorgten Eltern mit Argus-Augen, dass der junge Spross nicht voller Sand, oder Schlimmerem, in die gute Stube läuft. Aber die Eltern können halt eben nur den Dreck bereinigen, den sie finden und als solchen erkennen. Viel effektiver wäre es da doch, wenn man dem Spross konsequenterweise schlicht den Zugang zum getrauten Heim verwehrt und zwar unabhängig davon, ob man den Dreck als solchen erkennt oder eben nicht. Wenn der Knirps oder die Knirpsin auch nur potenziell Dreck ins getraute Heim bringen könnte, soll er/sie gefälligst draussen bleiben! Man merkt’s vielleicht, ich bin selber noch kein Vater 😉 Die Analogie hinkt natürlich ein wenig, denn wir haben die Kleinen ja lieb. So oder so ähnlich verhält es sich aber mit Sandboxing und Isolation.

Die Idee einer Sandbox ist eigentlich simpel: man hat eine abgeschirmte, sichere Umgebung, um ein File zu öffnen und zu prüfen ob es unbedenklich oder maliziös ist. Dafür wird das Programm in der Sandbox gestartet und überwacht. Nach einer definierten Zeitdauer stoppt die Sandbox das Programm und analysiert das Verhalten auf untypische oder maliziöse Aktivitäten. Da Sandboxen nicht ausschliesslich auf Signaturen vertrauen, ist es theoretisch auch möglich Zero Day Lücken zu entdecken die von gängigen AV-Lösungen noch nicht erkannt werden.


Sandbox ist nicht gleich Sandbox

Sandbox ist nicht gleich Sandbox, es gibt verschiedene Ansätze:

  • OS Emulation: dabei wird in einer virtuellen Maschine ein Gast Betriebssystem installiert. Die Hardware des Host Systems kann dann optional mit den Gast Systemen geteilt werden, beispielsweise Zugriff auf USB Sticks oder die Freigabe von Verzeichnissen auf der Harddisk des Hosts. Bekannte Beispiele sind VMware, VirtualBox oder Xen.
  • Application Sandbox: im Gegensatz zu den virtuellen Maschinen der OS Emulation und deren generellem Ansatz, bietet eine Application Sandbox spezifischen Schutz für einzelne Applikationen. Beispielsweise die Google Chrome Sandbox oder Sandboxie.

 

Etwas haben aber beide Ansätze gemeinsam: es handelt sich um Software. Und je komplexer und umfangreicher eine Software ist, desto wahrscheinlicher ist es auch, dass es Fehler im Code gibt die früher oder später gefunden und als Sicherheitslücken ausgenutzt werden. Stichwort Zero Day Exploit. Die Google Chrome Sandbox beispielsweise wurde über einen Zeitraum von rund 12 Jahren entwickelt und umfasst ungefähr 1.5 Millionen Zeilen Code. Schon eher unwahrscheinlich, dass es darin keine Fehler gibt, oder? Von einer Zero Day Lücke in Java Virtual Machine, die 2012 entdeckt wurde, waren schätzungsweise weltweit rund 3 Millionen Maschinen potenziell betroffen. Wie viele davon noch heute ungepatched im Einsatz sind ist ein anderes Thema.


Limitationen

Abgesehen davon haben Software Sandboxen auch gewisse Limitationen:

  • Eine Application Sandbox ist in der Anwendbarkeit stark eingeschränkt. Die Funktionalität beschränkt sich auf spezifische Applikationen und Funktionen. Bei einer Browser Sandbox wird beispielsweise der Browser geschützt, was aber geschieht mit den Downloads?
  • Fortschrittliche Malware, aka APT Advanced Persistence Threat, nutzt Techniken um zu erkennen, ob sie in einer virtuellen Maschine läuft. Beispielsweise wird geprüft was für Hardware vorhanden ist, was für Prozesse laufen, ob spezifische Registry Einträge gesetzt sind, oder wie die MAC Adresse des Netzwerkadapters lautet. Oder es wird einfach ein Sleep Call verwendet, wodurch sich die Malware erst nach einer bestimmten Zeit ausführt. So kann es sein, dass während der Analyse durch die Sandbox nichts passiert und erst danach, wenn die Sandbox das File als sauber markiert hat und es nativ auf dem Client des Benutzers geöffnet wird, die Malware zuschlägt und Schaden anrichtet.

 

Traditionelle Sandbox Lösungen bieten zwar eine mehr oder minder sichere Möglichkeit um gefährliche Files zu öffnen, sind aber nahezu blind was die Aktivitäten innerhalb der Sandbox angeht.


Sichere Alternativen

Eine sicherere Alternative zu diesen Software Sandboxen bietet die Hardware Isolation. Auch dabei werden im Endeffekt virtuelle Maschinen verwendet, allerdings werden diese nicht aus einer Software heraus verwaltet die im OS läuft, sondern durch einen eigenen Hyper-Visor der direkt auf der CPU sitzt. Die Schnittstellen ins OS, die eine konventionelle Sandbox schützen muss, fallen also weg. Zudem handelt es sich bei diesen virtuellen Maschinen nicht um komplette OS Emulationen, sondern um Micro-VMs die sich an den Ansatz der Application Sandbox anlehnen.

Auch Microsoft hat die Vorteile der Hardware Isolation inzwischen erkannt und bietet seit Windows 10 1809 (Fall Creators Update) mit dem Windows Defender Application Guard eine Isolation für den Edge Browser die auf ihrem eigenen Hyper-Visor läuft. Ab Windows 10 1903 bietet Microsoft dann auch die Möglichkeit eine Sandbox zu verwenden. Der Trend geht also ganz klar in diese Richtung.

Doch auch der Ansatz von Microsoft hat einige Nachteile.

  • Die Edge Isolation bietet nur Schutz für ihren eigenen Edge Browser. (mittlerweilen gibt es Bestrebungen den Schutz mittels Extensions auf FireFox und Chrome auszuweiten. In den Fall würden Untrusted Sites in diesen Browsern in den Edge redirected)
  • Heruntergeladene Dateien können standardmässig auf dem Host nicht genutzt werden. Die Downloads werden im isolierten System gespeichert. Über GPO’s lässt sich das zwar anpassen, es gibt dann jedoch keinen Schutz beim Öffnen des heruntergeladenen Files.
  • Text oder Bilder können nicht per Copy & Paste auf den Host übertragen werden.
  • Heruntergeladene Downloads oder Browser Cookies werden nach einem Neustart des Hosts gelöscht.

Andere Lösungen wie zum Beispiel Bromium gehen da bedeutend weiter, schützen wesentlich mehr Applikationen und bieten zudem auch noch einen Schutz der Downloads aus dem Browser.

Die Hardware Isolation von Bromium bietet also einige Vorteile:

  • Keine Schnittstellen in’s OS. Die Angriffsfläche ist sehr stark minimiert.
  • Micro-VMs werden dann erstellt, wenn sie gebraucht werden (Copy-On-Write). Wird der Task beendet, sprich das File oder der Browser geschlossen, wird die Micro-VM spurlos gelöscht. Änderungen im File selber, also angepasster Text beispielsweise, wird natürlich gespeichert.
  • Eine Micro-VM enthält nur die Komponenten, die sie für den entsprechenden Task benötigen. Dadurch kann sie on-the-fly praktisch ohne Verzögerung erstellt werden.
  • Befinden wir uns mit einer herkömmlichen Sandbox in der Superschwergewichtsklasse, so geht eine Micro-VM eher als Fliegengewicht durch. Der Ressourcenverbrauch ist um ein X-faches kleiner als bei traditionellen Sandbox Lösungen.
  • Durch den Einsatz eines eigenen Hyper-Visors sieht man auch was in einer Micro-VM passiert. Bei einem Vorfall ist man also nicht nur optimal geschützt, sondern kann auch noch nachvollziehen was genau passiert ist.
  • Wird mit einem Browser eine Untrusted Website geöffnet und von da eine Datei heruntergeladen, so kann diese auf dem Host oder einem Netzlaufwerk gespeichert werden. Wird die Datei dann geöffnet, geschieht dies ebenfalls in einer isolierten Micro-VM.
  • Copy & Paste kann wie gewohnt benutzt werden. Sowohl aus einer Micro-VM auf den Host und umgekehrt. Was mit Copy & Paste übertragen werden darf, kann über ein Poliy Setting definiert werden.
  • Durch die Hardware Isolation interessieren uns Zero Day Lücken nicht mehr, oder es ist zumindest nicht mehr so dringend diese Lücken zu schliessen.
  • Im Gegensatz zur Lösung von Microsoft und der Konfiguration via GPOs werden die Policies bei Bromium in einer übersichtlichen Web Konsole erstellt und bearbeitet.

Fazit

Zusammenfassend kann ich also mit gutem Gewissen sagen, dass der hardwarebasierte Ansatz der Isolation den mit Abstand besten Schutz bietet, den man auf einem Windows Rechner erreichen kann.

Die Analyse einer Sandbox liefert ein Ergebnis, ob das File gut oder böse ist. Diesen Unterschied machen wir bei der Isolation à la Bromium nicht. Wir arbeiten ganz normal mit den Daten. Kopieren, Drucken und Speichern die Files sogar wieder, aber eventuell vorhandene Malware bleibt immer in der Isolation. Das ist der grosse Unterschied. Das Ergebnis der Analyse ist hier völlig irrelevant und hat keinerlei Einfluss auf den Schutz des Rechners.

Man kann halt nur erkennen was man kennt, mit welchen Mitteln man das auch immer erreichen will. Die Prävention der Hardware Isolation ist da einen Schritt voraus.


Links

Weitere Informationen dazu gibt es hier: https://www.avantec.ch/loesungen/bromium/