Bromium, DIE Endpoint-Lösung?

drfuture

Zeitreisender
Teammitglied
Registriert
14 Juli 2013
Beiträge
7.710
Ort
in der Zukunft
Servus,
nachdem hier auch einige Leute mit Verstand sind und evtl. das ein oder andere Produkt kritisch beugen und an neuem Interessiert sind - möchte ich euch eine Software "Vorstellen" und nach eurer Einschätzung / Meinung fragen.

Es geht um
Die Software gibt es seit ~2 Jahren als fertiges Produkt, ist aber bisher Quasie nur auf dem Amerikanischen Markt vertreten gewesen und in Deutschland kaum bekannt. Erfinder / Founder sind unter anderem die Erfinder von "Xen..."
Die Denkweise / Funktion der Software ist nicht ganz simpel zu verstehen - daher wird der Beitrag wohl ein wenig länger ;)

Was ist Bromium nicht?
- keine x-te Sandbox Lösung
- keine Anwendungsvirtualisierung (Thinapp, Docker usw.)

Was macht Bromium (außer einen komischen Namen zu haben)
Die Software erstellt grob gesagt beim Boot ein Abbild des OS im Speicher (OS, nicht alle laufenden Anwendungen) (benötigt also im Betrieb ~1gb Ram)
Und erstellt dann für jeden Thread der in einer Bromium-Session läuft einen linked-Clone auf diese Virtuelle Version des Betrienssystems als Micro-VM die direkt über die z.B. Vt-x Erweiterung / den Bromium-Hypervisor auf der CPU läuft.
Micro-VM deswegen da kein OS geklont wird sondern ausschließlich eine minimal-Referenz (das was die Software benötigt) virtualisiert wird.
Der Hypervisor simuliert dabei unterhalb des Kernels bzw. den gesamten Kernel mit.
Der ganze Hypervisor hat ~70.000 Zeilen Code uns ist somit sehr überschaubar > Fehleranfälligkeit bzw. Sicherheitslücken sinken Statistisch erst mal.

Der Administrator teilt nun den PC in "gut" und "böse" auf. Böse ist per default erst mal alles was mit dem Internet in irgendeiner Weise zu tun hat, sprich Anwendungen wie der Webbrowser, E-Mail aber auch mal Teamviewer usw. Es geht nicht darum jegliche Software auf dem PC zu kapseln oder vorhandene Firmen-Parameter deswegen zu ersetzen (Proxy, Firewalls, Virenscanner, IPS und vieles mehr). Was aber für mich auch durchaus Sinn macht. Ebenso können *unbekannte, vom Anwender installierte Programme* oder Dateiendungen usw. nach belieben als böse definiert werden.

Wenn man nun das Beispiel Webbrowser nimmt.
Der Anwender öffnet den Internet Explorer > für den ersten Tab! wird eine Micro-VM erzeugt. Zeitdifferenz hierbei ~20ms zur normalen Startzeit.
Zusätzlicher Ram-Bedarf ca. 50KB pro Micro-VM. Der Anwender Surft und öffnet einen weiteren Tab. jeder Tab ist eine eigene Micro-Vm, sobald ein Tab geschlossen wird wird die Micro-VM (inkl. allem was sich dort eingenistet haben könnte) zerstört.
Die Micro-VM läuft dabei vollständig transparent für den Anwender (etwa wie bei Vmware Workstation Unity-Mode).
Nun möchte der Anwender eine Datei downloaden, ist das kein Problem. Die Datei wird normal ins Filesystem gespeichert. ABER Bromium merkt sich das diese Datei aus einer Bromium-Session (also aus potenziell böser Quelle) gekommen ist und öffnet die z,B. pdf beim Doppelklick im PDF-Viewer wieder automatisch in einer Bromium-Session. So das anhand der Herkunft einer Datei (Somit auch eines Schädlings) sichergestellt ist das dieser nicht ausbrechen kann.
Insofern nun ein .docx das per E-Mail gekommen ist geöffnet wird und schadhafte Prozesse ausführt passieren diese alle in der Micro-VM, selbst Kernel-Exploits haben keine Change da der Kernel ebenso virtuell ist. Daten wie Username, ip usw. sind gefaked. Der Angriff wird jedoch zusätzlich protokolliert und den Administratoren zur Verfügung gestellt (mit kompletter Prozesskette was in der Micro-VM passiert ist / versucht wurde.) Passiert in *echt* ist jedoch natürlich nichts.
Zusätzlich läuft in der Micro-VM eine Heuristic die bösartiges Verhalten im Ansatz trotzdem erkennt und verhindert (auch wenn das Verhalten keinen Schaden anrichten würde) - um unter anderem dem Anwender ein Reibungsloses Arbeiten sicherzustellen, wenn das geöffnete Makro eine DDOS-Attacke startet und das Netzwerk auslastet ist das Arbeiten halt etwas langsamer :D.

Bisher habe ich die Software selber nicht im Einsatz - es gibt jedoch Überlegungen diese zu implementieren. Bisher gibt es die Lösung *leider* nur für Enterprise-Kunden, evtl. kommt ja auch mal eine Consumer-Variante.
So ziemlich an allen Next-Gen Security-Lösungen hat mich recht viel gestört, sei es die schlichte Wirkungslosigkeit (jedenfalls wenn man weiter als 6 Monate denkt), der kaum Stemmbare Administrative Aufwand (z,B. bei Applikations-Whitelisting) oder das der Anwender an der Arbeit gehindert wird / geschult werden muss / einen Umweg gehen muss um sein Ziel zu erreichen (normale Sandboxing verfahren unterschiedlichster Art).

Die ganze Software wird regelmäßigen Pen-Tests unterworfen und die Firma veröffentlicht Kunden die Ergebnisse + die Tests die darauf ausgeführt wurden.


Was haltet ihr von dem ganzen?
 
  • Thread Starter Thread Starter
  • #4
Alternativen sind zwar durchaus interessant - dennoch hilft das bei der Beurteilung dieser Software leider 0 wenn die Begründung "da FLOSS".
Vor allem da die Kosten von Software ein komplett andere Thema sind und OpenSource nicht wirklich was mit Sicherheit / Sicherer und besserer Software zu tun hat.

LXC gibts nur für Linux, was im Unternehmensumfeld für Anwender nun mal keine Alternative ist (nenn mir eine größere Firma die den Versuch das zu ändern geschafft hat) - und wie soll das vor Schadsoftware helfen die ungehindert ins System kommt?
Nun könnte man natürlich wieder mit dem Ammenmärchen kommen Linux hat dieses Problem nicht - aber das hilft mir nun leider bei meiner Frage 0 Weiter.

QubesOS braucht pro VM soweit ich das verstehe
- für jede laufende VM komplette Resourcen
- müsste man den Arbeitsbereich eines jeden PC's in Zonen aufteilen, da "jeder" andere tätigkeiten hat dürfte das unmöglich sein.
- Dem Anwender zu "Überlassen" zu entscheiden was welcher Schutzklasse bedarf ist a) nicht Schulbar b) nicht Alltagstauglich und c) Unsicher da der Anwender immer die größte Schwachstelle ist.
- "Sicheres" kopieren zwischen Zonen, der Anwender kann nicht entscheiden ob eine Datei sicher ist wie auch? - Folglich ist das kopieren zwischen den einzelnen VM's auch ungut.

Finde QubesOS zwar durchaus Cool, gut zu kennen - evtl. für Privat was, aber eben nur für Ambitionierte Bastler mit Background.
 
Nun könnte man natürlich wieder mit dem Ammenmärchen kommen Linux hat dieses Problem nicht - aber das hilft mir nun leider bei meiner Frage 0 Weiter.
Das Ammenmärchen hält sich halt hartnäckig, da bisher noch keine großflächige Vireninfektion bei Linux-Rechnern bekannt geworden ist. Bei Windows hingegen wird auch die 20.000-ste Lösung das OS nicht von seinen Designschwächen befreien können. Aber ich bewundere Deinen Forschungsdrang im Windowsbereich. :)

Btw. schöner Schwank aus der Windowswelt:
 
Naja Erpressungstrojaner lassen sich 1:1 auf jedes andere gängige OS übertragen. Erklär mal warum das Windowsspezifisch sein sollte. Sämtliche Benutzerdaten verschlüsseln geht immer es sei denn der Nutzer hat keinen Schreibzugriff auf diese, was wohl auch den gewünschten Interaktionsrahmen limitiert.

Was ich in deinem Link sehe ist fürchterliche Inkompetenz der deutschen Behörden und nur das.
 
Das Problem bei der Stadt war weniger Windows, als viel mehr die Unfähigkeit der IT-Administration. Die hatten weder Backups, noch per GPO eine EXE-Whitelist angelegt. Beides sind Standard-Sicherheitsmaßnahmen, die eigentlich jede mittlere bis größere Firma standardmäßig anwenden sollte.
 
Insofern nun ein .docx das per E-Mail gekommen ist geöffnet wird und schadhafte Prozesse ausführt passieren diese alle in der Micro-VM, selbst Kernel-Exploits haben keine Change da der Kernel ebenso virtuell ist. Daten wie Username, ip usw. sind gefaked.
Diesen Teil finde ich nun doch recht interessant. Wenn ich Dich richtig verstanden habe, gibt es so praktisch keine Möglichkeit, dass das System durch eine heruntergeladene Datei gekapert wird. Du schreibst aber auch weiter, dass man heruntergeladene Dateien speichern kann und diese dann später wieder entfernt werden - heißt für mich aber auch, dass jede der VMs zumindest Lesezugriff auf das Dateisystem haben muss. Was passiert hier also mit meinen wichtigen Unternehmensdaten, wenn man z. B. ein trojanisches Pferd in einer der VMs ausführt? Ich bezweifle ja, dass die VM in der Lage ist, hier alles durch Fake-Daten zu ersetzen.


Zweiter Punkt: Was passiert, wenn ein Anwender eine Datei dauerhaft behalten möchte? Hier sehe ich noch ein viel größeres Problem. Wie weiter vorne gesagt, der Anwender ist in den meisten Fällen nicht in der Lage, zu entscheiden, ob eine Datei gut oder böse ist. Er wird aber sehr schnell die Situation haben, dass er eine heruntergeladene Datei dauerhaft speichern und z. B. auch im Unternehmen auf USB-Sticks weitergeben möchte. Wenn man das Speichern am Schutz vorbei ermöglicht, ist die Lösung fast obsolet. Wenn das der Anwender einmal heraus hat, wird er das nämlich möglicherweise immer machen.

Bei einem USB-Stick ist die Frage, wie die Software es genau handhabt. Wenn Dateien von externen Medien grundsätzlich als böse eingestuft werden, hält sich das Problem in Grenzen, genauso wenn in VMs heruntergeladene Dateien irgendwie markiert werden. Passiert aber beides nicht, gibt es hier imho ein Loch.
 
  • Thread Starter Thread Starter
  • #9
Wow einer der sich mit Thema beschäftigt, vielen Dank dafür Thom!

Zum Thema abgreifen von unternehmensdaten, sehr interessanter Punkt. Das notiere ich mir und Frage den Hersteller.
Zum Thema behalten, es wird *nur* der pc / die laufzeitumgebung zerstört (inkl ä. Registry usw) die Datei selber wird normal ins Dateisystem geschrieben und gemerkt das die Datei potentiell gefährlich ist. Dann beim nächsten öffnen in einer neuen Session geöffnet in der die gefährliche Datei wieder machen kann was sie will.
Ebenso bleibt die Markierung beim kopieren auf usb Stick oder netzlaufwerke erhalten (es wird ein verstecktes Verzeichnis mit metainfos im Verzeichnis der Datei erstellt) Daten von usb Sticks sind immer als gefährlich abgegeben und außerdem greift hier zusätzlich (in unserem Fall) die portsecurity).

Auf was die Session genau Zugriff hat ist aber eine gute Frage , da ich ja auch in Word *manuell* über Datei öffnen eine Datei Laden kann. Dieser Dialog ist ja aber eine Windows api, evtl darf nur diese auf das Datei System. Wenn ich da mehr weis schreibe ich das hier ;)
 
  • Thread Starter Thread Starter
  • #11
Also @Thom und Rest,
z.B. der Webbrowser hat eine i-net Verbindung, öffne ich nun dort herraus eine z.B. Word-Datei wird die Word-Datei in einer neuen Bromium-Session geöffnet. Diese neue Session hat keine Internet-Verbindung mehr > Trojaner könnte keinen c&c Server etc. erreichen.

Der öffnen-Dialog findet selbst in einer Sicheren Umgebung statt, beim Auswählen einer Datei wird die Datei in ein Bromium-Eigenes zwischen-Dateisytem gelagert. Die Micro-VM selber hat nur Zugriff auf dieses Laufwerk, nicht auf das ganze Host-Filesystem. Sprich ein Makro das mehrere Word-Dokumente auf dem Team-Laufwerk durcharbeitet (wenn vom User gewollt) ginge aus der Session heraus nicht. Ein Solches Dokument + Makro würde aber inhaus erstellt und damit nicht in einer Bromium-Session gestartet werden.
Genau auf dieses Szenario, Abzug von Informationen / Sessionübergreifende Schwachstellen wurde auch ein Pen-Test, inkl. Code-Review durchgeführt dessen (erfolgreiches, also es konnte aus der vm nicht ausgebrochen werden) Resultat mir vorliegt.
 
Wie würde das System für Endverbraucher aussehen.
Im Hinblick auf Ressourcenhungrige Programme? (Spiele zB)
 
Das Spiel + 1GB im RAM, gerade da dürfte das bemerkenswert wenig ausmachen.

Wobei 1GB da ziemlich grosszügig geschätzt sein dürfte, die Instanzen brauchen doch keine eigenen GUI's oder?

Was für mich wieder die Fragen aufwirft:
Wie transparent? Wenns keine Separaten GUI Instanzen sind schreibt ja doch wieder etwas aus dem Prozess ins System, spätestens beim rendern des Icons in der Taskleiste. Oder der Prozessnahme im Taskmanager. Siehe USB Gerätenamen Lücke vor ein par Jahren im Linuxkernel.

Reduziert zwar drastisch die Angriffsfläche, aber schafft das Problem nicht ganz aus der Welt.
Außerdem würde mich noch interessieren wie die Codezeilen gezählt wurden.
 
  • Thread Starter Thread Starter
  • #14
@n87 Spiele würden wohl nicht isoliert werden bzw. dürfte das erst mal nicht möglich sein zwecks exzessiven Hardwarezugriffen auf die Grafikkarte.
Die Idee ist ja eben Angriffs-vektoren zu isolieren. Die meisten Spiele kommunizieren aktuell wohl ins Internet, jedoch normal "nur" direkt und hoffentlich verschlüsselt mit den Servern des Spiele-Herstellers die wiederrum vorher kompromitiert werden müssten damit darüber evtl. über eine weitere Lücke im Spiel Zugriff aufs System genommen werden kann. Nebenbei sollte das Spiel dann nicht mit Adminrechten laufen.... der Weg ist also wesentlich komplizierter.

Unter anderem da es erst mal Fachleute benötigt um die Software möglichst gut zu Konfigurieren und die Sicheren und Unsicheren Zonen zu definieren dürfte das Produkt aktuell nur für Unternehmen zu bekommen sein (und da es nicht ganz günstig ist). Für Konsumer könnte ich mir die Variante Vorstellen das die *größten* bekannten Einfallstore Isoliert werden, also bekannte Browser und Folge-Anwendungen wie PDF-Viewer, Office usw.

Nebenbei - was es für den Endanwender gibt und mit 4-5 Klicks konfiguriert ist - ist das Tool EMET von Microsoft. Das macht zumindest das Surfen inkl. aller Plugins wesentlich sicherer (vor allem auch für z.B. XP-Anwender definitiv Empfohlen).
Die Software Installieren, Neustarten, Starten (Achtung bei getrennten Konten von normal-User und Admin nicht RunAS machen, sondern als Admin am System anmelden sonst geht es nicht), Profil/Konfig laden und die Standard-Konfig laden... Fertig. Dann merkt man eigentlich voraussichtlich nichts mehr von der Anwendung.


@alter_Bekannter Die erstellung der Befehle für den Grafik-Treiber passiert ja im virtualisierten Kernel und getrennt vom Hauptsystem und wird vom CPU in der über die Vtx Erweiterung die Befehle auf Hardware-Ebene getrennt voneinander ablaufen an die Hardware weitergegeben und dann am Bildschirm angezeigt.
Nur weil die Pixel dann *Optisch* am Bildschirm nebeneinander liegen heißt das ja nicht das sie nicht von einander Getrennt ablaufen. Was im Taskmanager erscheint ist eine sehr gute Frage - ich denke da läuft 1x Bromium mit diversen Worker-Threads - jedoch nicht die z.B. Internet-Explorer die in der Session laufen.

@Codezeilen k.a da wird es wohl einen "standard" geben - so Hard-Core Entwickler bin ich nicht ^^ - Aber Code-Zeilen Angaben gibt es ja immer wieder zu Div. Produkten. Klar kann man bei manchen Sprachen auch alles in eine Zeile Schreiben...
 
Nicht nur die Konventionen, sondern auch eingebundene Bibliotheken. Die sehe ich noch wesentlich kritischer, wenn das nicht in Assembler ohne jegliche Verwendung irgendwelcher anderen Libs erstellt wurde hilft das Security technisch wenig.

Ein populäres Beispiel aus der jüngeren Vergangenheit wäre Stagefright. Das Problem lag nicht in der MMS App der Hersteller, das sind sicher hunderte verschiedene.
 
  • Thread Starter Thread Starter
  • #16
Ich "denke" mal sowas sollte ohne externe Lib's auskommen, vor allem da der Code nicht nur das eine mal der mir vorliegt sondern von unterschiedlichen Sicherheits-Firmen einem Review unterzogen wurde. Wenn die Software in c geschrieben und mit gcc compiliert wurde - aus dem offiziellen gcc Source der hoffentlich nicht kompromitiert ist sollte das passen. Dennoch ein Punkt den ich mir mal notiert habe für die nächste Fragerunde :)
 
ich weiss nicht so recht, der Aufwand der implementierung ist wie mir scheint riesig.

da bin ich mit anderen Lösungen um ein vielfaches schneller.
 
Kopiere einmal was aus dem Admin Forum stammt.

  1. Unbekannte Anwendungen unstartbar machen ( -GPOs/ ("SRP"))
  2. Kapselung des Browsings auf vom Datennetz getrennte Systeme,
  3. (von den RSW benutzte Dateiendungen via „Filescreening“ als unspeicherbar markieren und bei Versuch die Freigabe automatisch sperren, siehe ) Evtl. ist es sogar sinnvoll, die erlaubte Speicherung per Whitelisting zu regeln ("nur.pdf/.jpg/.html/.docx/...")
  4. Usergebundene Autostartbereiche überwachen/verschließen (Heises )
  5. Backups aller Nutzerdaten automatisieren und diese natürlich nicht dem Nutzer zugänglich machen


Zusätzlich wird da noch Sandboxie implementiert ;-)


Genau so baue ich aktuell eine Firmen Infrastruktur neu auf.
 
  • Thread Starter Thread Starter
  • #20
Nuja "neu" aufbauen ist ab einer gewissen Größe und im laufenden Betrieb denke ich kaum möglich... - ist dann natürlich auch noch von Branche zu Branche und vom Management abhängig.

Ich hab jedenfalls sagen wir mal grob ~2000 Rechner (weiß die Zahl schon genau so is das nich ^^) - Und jede Anwendung per Fingerprint whitelisten die erlaubt ist inkl. aller Aktualisierungen ist definitiv ein wesentlich höherer Aufwand in meinen Augen. Vor allem auch im täglichen Betrieb danach. Nicht das ich grundsätzlich was gegen Aufwende im Zuge der Sicherheit habe - ganz im Gegenteil... aber *Sicherheit* verkauft sich leider noch immer sehr schlecht - vor allem wenn bisher nichts passiert ist. Egal welcher Vorgesetzte auf welcher Ebene ist dafür leider Blind.
Auch ist das Whitlisting nur ein Tropfen auf den heißen stein - ich kann auch div. System-Anwendungen mit Parametern starten die etwas nachladen - und sei es ein .vbs, .ps1 oder was auch immer. Und das starten.

Dann könnte man Argumentieren sämtliche Scripting-Umgebungen auch zu sperren - aber man sollte mit dem PC ja auch arbeiten :D.
Klar gibt es in manchen Firmen Bereiche mit erhöhter Sicherheit in denen man das tun kann und auch argumentieren kann - im großen und ganzen sollte aber die Sicherheit des Systems nicht den Arbeitnehmer in seiner Tätigkeit stark einschränken bzw. sogar Behindern.
Andere Workflows, oder das div. Dinge vorgegeben / nicht erlaubt sind ist das eine (z.B. nur ein Webbrowser der speziell gehärtet ist...) aber dann auf die Idee kommen Internet ist gefährlich, sperren wir komplett - kommen eben auch nur wenige Firmen.

Kapselung des Browsings geht nicht aufgrund div. Webapplikationen die Intern laufen und auch mal ein Plugin / Programm anstarten... und Millionen-Teure Archiv-Systeme tauscht man nicht einfach mal so aus ;D

Der Dateiressourcenmanager geht halt "nur" bei Windows-Filern - eher weniger wenn z.B. eine große Netapp rum steht (die aber leider so etwas nicht kann :/) davon abgesehen funktioniert das auch nur Begrenzt finde ich... das hilft jetzt gegen locky - aber theo. könnte die nächste Version die Dateiendung einfach randomizen oder ganz weg lassen oder oder oder... - und auch die Cyptotrojaner sind ja nur eine Bedrohung von vielen. Eine die es wenigstens mal in die Presse schafft und die man dem Cheff vorhalten kann - aber jeder unique Trojaner der nicht verschlüsselt sondern sich einfach im System einnistet um mal schön alle Daten mit zu lesen um zu gucken was einem so hilfreich sein kann - bringt das auch nichts.

Das kafu liest sich an sich nicht schlecht - eher aber um ein paar andere nervige Programme da raus zu halten - nur allen Mitarbeitern den Autostart weg zu nehmen der aus Arbeitssicht auch durchaus Sinnvoll und gut ist - ist so eine Sache. Das verargumentiert sich dann einfach schlecht.

Ein gewählter Weg sollte dann auch für ein paar Jahre ein gangbarer Weg sein und nicht nur eine spezielle aktuelle Bedrohung adressieren finde ich.
 
Zurück
Oben