Massachusetts Institute of Technology. Vorlesung # 6.858. "Sicherheit von Computersystemen." Nikolai Zeldovich, James Mickens. 2014 Jahr
Computer Systems Security ist ein Kurs zur Entwicklung und Implementierung sicherer Computersysteme. Die Vorträge behandeln Bedrohungsmodelle, Angriffe, die die Sicherheit gefährden, und Sicherheitstechniken, die auf jüngsten wissenschaftlichen Arbeiten basieren. Zu den Themen gehören Betriebssystemsicherheit, Funktionen, Informationsflussmanagement, Sprachsicherheit, Netzwerkprotokolle, Hardwaresicherheit und Sicherheit von Webanwendungen.
Vorlesung 1: „Einführung: Bedrohungsmodelle“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 2: „Kontrolle von Hackerangriffen“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 3: „Pufferüberläufe: Exploits und Schutz“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 4: „Trennung von Privilegien“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 5: „Woher kommen Sicherheitssysteme?“
Teil 1 /
Teil 2Vorlesung 6: „Chancen“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 7: „Native Client Sandbox“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 8: „Netzwerksicherheitsmodell“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 9: „Sicherheit von Webanwendungen“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 10: „Symbolische Ausführung“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 11: „Ur / Web-Programmiersprache“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 12: Netzwerksicherheit
Teil 1 /
Teil 2 /
Teil 3Vorlesung 13: „Netzwerkprotokolle“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 14: „SSL und HTTPS“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 15: „Medizinische Software“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 16: „Seitenkanalangriffe“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 17: „Benutzerauthentifizierung“
Teil 1 /
Teil 2 /
Teil 3Vorlesung 18: „Privates Surfen im Internet“
Teil 1 /
Teil 2 /
Teil 3 Der erste Ansatz wird also darin bestehen, virtuelle Maschinen zu verwenden, um die Garantie für privates Surfen zu verbessern. Das heißt, wir werden den Datenschutz auf der Ebene der virtuellen Maschinen berücksichtigen.
Die Grundidee ist, dass jede private Sitzung in einer separaten virtuellen Maschine ausgeführt werden sollte. Wenn der Benutzer die private Browsersitzung beendet, wird die virtuelle Maschine gelöscht. Was ist der Vorteil dieser Idee?

Es ist wahrscheinlich, dass Sie stärkere Vertraulichkeitsgarantien erhalten, die Sie dem Benutzer bieten können, da die virtuelle Maschine vermutlich über eine ziemlich saubere Dateneingabe- / Ausgabeschnittstelle verfügt. Es kann davon ausgegangen werden, dass Sie diese virtuellen Maschinen beispielsweise zu einer sicheren Swap-Lösung kombinieren, z. B. Open BSD zusammen mit der Verschlüsselung von Festplattendaten.
Wir haben hier oben also eine sehr klare Trennung zwischen der VM und allen unten auftretenden E / A-Vorgängen. Dies bietet Ihnen stärkere Garantien als die, die Sie von einem Browser erhalten, der nicht von Grund auf so konzipiert wurde, dass alle Arten der Eingabe / Ausgabe von Informationen und die Geheimnisse, die sich im Data Warehouse befinden können, sorgfältig überwacht werden .
Also ja, es bietet stärkere Garantien. Darüber hinaus sind keine Änderungen an Ihren Anwendungen, dh am Browser, erforderlich. Sie nehmen den Browser, setzen ihn in eine dieser virtuellen Maschinen ein - und alles wird auf magische Weise besser, ohne dass Änderungen an der Anwendung vorgenommen werden.
Was ist daran falsch? Ich werde einen traurigen Smiley auf die Tafel zeichnen. Es ist umständlich. Mit umständlich meine ich, dass Sie die gesamte virtuelle Maschine starten müssen, wenn Sie eine der privaten Browsersitzungen starten möchten. Dies kann sehr schmerzhaft sein, da Benutzer frustriert sind, da sie lange brauchen, um ihre privaten Browsersitzungen zu starten.

Andere Probleme sind, dass diese Lösung unpraktisch ist. Der Grund für die Unpraktikabilität ist nicht, dass es für Benutzer wirklich schwierig ist, beispielsweise Dateien, die sie im privaten Browsermodus gespeichert haben, auf einen Computer zu übertragen und alle Lesezeichen zu übertragen, die sie in diesem Modus generiert haben - all dies kann letztendlich sein fertig. Aber hier gibt es viele Unannehmlichkeiten, die mit Faulheit verbunden sind.
Die zweite Herangehensweise an das Problem ähnelt der ersten, wir implementieren sie jedoch tatsächlich im Betriebssystem selbst und nicht in einer virtuellen Maschine. Die Hauptidee dabei ist, dass jeder Prozess möglicherweise in einer privaten Domäne ausgeführt werden kann. Eine private Domäne ist eine Art Sammlung von gemeinsam genutzten Ressourcen des Betriebssystems, die ein Prozess verwendet, und das Betriebssystem verfolgt all diese Dinge. Sobald der Prozess beendet ist, scannt das Betriebssystem alles in der privaten Domäne und gibt alle diese Ressourcen vollständig für die neue Verwendung frei.
Der Vorteil dieses Ansatzes gegenüber der Verwendung von VM ist das geringere Gewicht, da die virtuelle Maschine, wenn Sie darüber nachdenken, im Wesentlichen unabhängig vom Status des Betriebssystems und dem Status aller ausgeführten Anwendungen ist. Die Verwendung von VM verursacht somit mehr Arbeit als das Betriebssystem, da das Betriebssystem vermutlich alle Punkte kennt, an denen ein privater Browser mit der Dateneingabe / -ausgabe in Kontakt kommt, mit dem Netzwerk „spricht“ und dergleichen. Vielleicht weiß das Betriebssystem sogar, wie man den DNS-Cache selektiv löscht.
Sie können sich also vorstellen, dass es viel einfacher ist, diese Datenschutzdomänen zu "lösen", damit Sie sie später einfach "abreißen" können. Der Nachteil dieser Lösung, zumindest im Hinblick auf das Starten der VM, ist jedoch, dass es viel schwieriger ist, sie richtig auszuführen. Daher habe ich den Ansatz mit VM als progressiv beschrieben, da die virtuelle Maschine im Wesentlichen unabhängig von allem ist, was im Betriebssystemcontainer funktioniert.

Das Schöne ist, dass sich der VM-Ansatz nur auf wenige Low-Level-Schnittstellen konzentriert. Beispielsweise verursacht die Schnittstelle, die von einer virtuellen Maschine zum Schreiben auf die Festplatte verwendet wird, ein höheres Maß an Vertrauen, da sie alles enthält, was Sie benötigen. Bei Verwendung des Betriebssystems ist dies viel komplizierter, da Sie erwarten, dass einzelne Dateien mit einer Systemschnittstelle verwendet werden, z. B. mit einer einzelnen Netzwerkschnittstelle. Wenn Sie dies alles auf Betriebssystemebene tun, ist die Wahrscheinlichkeit eines Datenverlusts viel größer.
Dies waren also zwei Hauptansätze zur Verbesserung der Vertraulichkeitsgarantien bei Verwendung des privaten Browsermodus, der derzeit implementiert werden kann.
Sie fragen sich vielleicht, ob wir die Identität des Benutzers noch offenlegen können, wenn er eine dieser leistungsstärkeren Sicherheitslösungen anwendet - das Surfen im Internet mit einer virtuellen Maschine oder Datenschutzdomänen im Betriebssystem? Können wir dem Benutzer die Anonymität rauben? Die Antwort auf diese Frage lautet: Ja, das können wir!
Die Deanonymisierung eines Benutzers ist möglich, da die virtuelle Maschine aus irgendeinem Grund eindeutig ist. Dies ähnelt der Art und Weise, wie wir Browser-Fingerabdrücke über die Panopticlick-Website erfassen konnten. Die Konfiguration der virtuellen Maschine hat wahrscheinlich etwas Einzigartiges, mit dem Sie ihre Fingerabdrücke abnehmen können. Es ist auch möglich, dass der VM-Monitor oder das Betriebssystem selbst in gewisser Weise eindeutig ist. Auf diese Weise kann ein Netzwerkangreifer die Identität des Benutzers preisgeben.
Ein typisches Beispiel ist das TCP-Fingerprinting. Die Idee ist, dass die Spezifikation des TCP-Protokolls tatsächlich die Installation bestimmter Protokollparameter während der Implementierung dieses Protokolls ermöglicht. Mit TCP können Ausführende beispielsweise die anfängliche Größe von Paketen auswählen, die im ersten Teil des Herstellens einer TCP-Verbindung gesendet werden. Auf diese Weise können Ausführende beispielsweise die anfängliche Lebensdauer dieser Pakete auswählen.

Auf diese Weise erhalten Sie vorgefertigte Tools wie InMap, mit denen Sie mit hoher Wahrscheinlichkeit feststellen können, mit welchem Betriebssystem Sie arbeiten, indem Sie sorgfältig verarbeitete Pakete senden. Sie werden Dinge wie die Tatsache sehen, dass TTL hier präsentiert wird, und hier ist die Größe des Distributionspakets, und hier war die TTP-Seriennummer. So erstellen sie eine Datenbank mit Fingerabdrücken. Sie sagen: "Wenn das zurückgegebene Paket dieses, dieses und dieses Merkmal aufweist, arbeiten Sie laut Tabelle an Solaris, verwenden einen Mac und verwenden Windows" oder etwas anderes. Selbst wenn einer dieser Ansätze verwendet wird, um die Privatsphäre beim privaten Surfen mit einer virtuellen Maschine oder einem Betriebssystem zu verbessern, kann ein Angreifer dennoch einen dieser Angriffe zur Erkennung von Fingerabdrücken über TCP starten und viel über einen bestimmten Benutzer erfahren.
Es wird interessant sein zu wissen, dass der Benutzer, selbst wenn er auf eine dieser leistungsstärkeren Arten geschützt ist, immer noch zwischen beiden Anzeigemodi aufgeteilt ist - öffentlich und privat - und den Computer immer noch physisch verwendet. Dies ist interessant, da Sie selbst bei der Verwendung des Computers dazu beitragen können, dass Ihre persönlichen Daten verloren gehen.
Wie sich herausstellt, hat beispielsweise jeder Benutzer einen eindeutigen Tastenanschlag. Wenn ich Ihnen also die Aufgabe gebe, gleichzeitig den Ausdruck „schneller brauner Fuchs“ oder einen solchen Unsinn auf der Tastatur einzugeben, zeigt die Beobachtung, dass die Zeit, in der jeder von Ihnen die Tasten drückt, so einzigartig ist, dass möglicherweise Fingerabdrücke abgenommen werden können.
Es ist auch interessant, dass Benutzer einzigartige Schreibstile haben. Es gibt eine Sicherheitsbranche namens Stilografie.

Die Idee der Stilografie ist, dass ein Angreifer herausfinden kann, wer Sie sind, indem er sich nur die Muster Ihres Briefes ansieht. Stellen Sie sich vor, Sie hängen aus irgendeinem Grund an 4chan und ich möchte herausfinden, ob Sie wirklich dort rumhängen. Ich kann mir eine Reihe verschiedener Beiträge auf 4chan ansehen und sie zu Kommentaren zusammenfassen, die stilistisch gleich aussehen. Dann werde ich versuchen, öffentliche Beispiele Ihres Schreibstils zu finden, zum Beispiel in Hausaufgaben, bei denen Sie Autor sind. Danach vergleiche ich die Stilbeispiele in den 4chan-Kommentarsätzen mit Ihren Hausaufgaben. Wenn ich eine Übereinstimmung finde, kann ich Ihren Eltern schreiben, um die Gefahren des Einfrierens in den 4chan-Foren zu klären. Aus diesem Grund habe ich beschlossen, Ihre Aufmerksamkeit auf die Stilografie zu lenken. Das ist eigentlich ganz interessant.
Daher haben wir erläutert, wie Sie VMs oder geänderte Betriebssysteme verwenden können, um das private Surfen zu unterstützen. Daher fragen Sie sich vielleicht, warum Benutzer in Browsern nicht eines dieser Dinge ausführen müssen - eine virtuelle Maschine starten oder das Betriebssystem ändern? Warum übernehmen Browser die Implementierung all dessen?
Der Hauptgrund ist die Bereitstellbarkeit. Browserhersteller möchten ihre Benutzer normalerweise nicht dazu zwingen, etwas Besonderes zu tun, um den Browser zu verwenden, außer den Browser selbst zu installieren. Dies ähnelt der Motivation des nativen Clients, wenn Google diese coolen Funktionen Endbenutzercomputern hinzufügen möchte, die Benutzer jedoch nicht dazu zwingen möchte, spezielle Versionen von Windows oder Linux zu installieren oder etwas anderes zu tun. So sagt Google, dass "wir uns selbst darum kümmern werden".
Ein weiterer Grund ist die Benutzerfreundlichkeit. Viele dieser privaten Browsing-Lösungen auf der Ebene der virtuellen Maschine und des Betriebssystems machen es Benutzern, wie wir bereits besprochen haben, schwierig, während einer privaten Browsersitzung empfangene Daten zu speichern - heruntergeladene Dateien, Lesezeichen und dergleichen.

Grundsätzlich sagen Browserhersteller, dass sie, wenn sie selbst private Browsermodi implementieren, Benutzern erlauben können, im privaten Browsermodus heruntergeladene Dateien zu akzeptieren und auf einem Computer zu speichern. Es klingt zunächst gut. Beachten Sie jedoch, dass dieser Ansatz es Benutzern ermöglicht, eine Art privaten Status zu exportieren, wodurch viele Sicherheitslücken im Sicherheitssystem entstehen und die Analyse der Sicherheitseigenschaften, die bei der Implementierung des privaten Browsermodus verwendet werden, erheblich erschwert wird.
Daher versuchen die Autoren des Artikels, verschiedene Arten von Browserzuständen zu charakterisieren, die geändert werden können, und zu berücksichtigen, wie aktuelle private Browsermodi sie ändern können.
Dieser Artikel klassifiziert Änderungen des Browserstatus. Es gibt vier Arten von Änderungen in dieser Klassifizierung. Der erste Typ ist, wenn die Site selbst die Statusänderungen ohne Benutzereingriff initiiert hat. Beispiele für diese Art der Statusänderung sind das Abrufen von Cookies, das Hinzufügen von Informationen zum Adressverlauf des Browsers und möglicherweise das Aktualisieren des Cache des Browsers. Daher bleibt dieser Zustand im Grunde genommen während des gesamten privaten Anzeigemodus bestehen, wird jedoch nach seiner Fertigstellung zerstört.
Es kann davon ausgegangen werden, dass, da der Benutzer während der Bildung dieses Zustands nicht mit dem Browser interagiert, der Benutzer selbst nicht daran teilnehmen möchte.
Die zweite Art der Änderung des Browserstatus wird ebenfalls von der Website initiiert, es besteht jedoch eine gewisse Interaktion mit dem Benutzer, der diese Website besucht hat. Beispielsweise installiert ein Benutzer ein Client-Zertifikat oder verwendet ein Kennwort, um die Site zu autorisieren, dh versucht, irgendwohin zu gelangen. Gleichzeitig sagt der Browser sehr hilfreich: "Möchten Sie dieses Passwort speichern?". Wenn der Benutzer mit "Ja" antwortet, können beispielsweise gespeicherte Kennwörter außerhalb des privaten Browsermodus verwendet werden. Daher ist im Prinzip nicht klar, wie die Datenschutzrichtlinie in diesem Fall lauten soll. In der Praxis stellt sich heraus, dass Browser die Existenz von Dingen zulassen, die im privaten Browsermodus außerhalb aufgetreten sind, vorausgesetzt, der Benutzer selbst wählt die beste Option für ihn und sagt Ja oder Nein. Wenn der Benutzer klug genug ist, speichert er das Passwort nicht für eine zweifelhafte Site, da es dann von einer anderen Person verwendet werden kann. Es kann also zu einem Benutzerfehler und nicht zu einem Browser kommen, der zum Verlust der Privatsphäre führen kann.
Daher ist unklar, welche Richtlinie die beste ist, aber in der Praxis darf diese Art der Statusänderung außerhalb des privaten Browsermodus gespeichert werden.
Die dritte Art der Statusänderung wird vollständig vom Benutzer initiiert. Dies sind Dinge wie das Speichern von Lesezeichen oder das Herunterladen von Dateien. Dieser Status ähnelt dem vorherigen, da der Benutzer direkt an seiner Erstellung beteiligt ist. In diesem Fall stimmt der private Anzeigemodus zu, dass Statusänderungen dieses Typs für die zukünftige Verwendung außerhalb der privaten Anzeige gespeichert werden.

Darüber hinaus gibt es einige Arten von Zuständen, die keiner bestimmten Sitzung zugeordnet sind. Dies ist beispielsweise der Aktualisierungsstatus des Browsers selbst, dh eine Änderung in der Datei, die den Browser darstellt. Browser-Entwickler glauben, dass diese Statusänderung Teil eines globalen Status ist, der sowohl öffentlich als auch privat angezeigt werden kann.
Wenn Sie sich dies genau ansehen, werden Sie am Ende feststellen, dass es einige Bedingungen gibt, unter denen Datenverluste außerhalb des privaten Browsermodus möglich sind, insbesondere wenn eine Interaktion mit dem Benutzer besteht. Ich frage mich, ob dies der beste Kompromiss zwischen Sicherheit und Datenschutz ist.

Der Artikel besagt, dass es schwierig ist, die Möglichkeit zu verhindern, dass ein lokaler Angreifer feststellen kann, ob Sie den privaten Browsermodus verwenden oder nicht. Dies ist im Artikel etwas vage angegeben. Tatsache ist, dass die Art der Informationslecks Ihnen sagen kann, in welchem privaten oder öffentlichen Anzeigemodus sie auftreten. Wenn Sie beispielsweise in Firefox und Chrome ein Lesezeichen im privaten Browsermodus erstellen, sind diesem Lesezeichen eine Reihe von Metadaten zugeordnet, z. B. die für den Besuch der Website aufgewendete Zeit und dergleichen. In vielen Fällen sind diese Metadaten Null oder nahe einem Nullwert, wenn dieses Lesezeichen im privaten Browsermodus erstellt wurde. Dann kann jemand, der später Ihren Computer verwaltet, Ihre Lesezeicheninformationen anzeigen. Wenn er sieht, dass diese Metadaten Null sind, wird er zu dem Schluss kommen, dass dieses Lesezeichen wahrscheinlich im privaten Browsermodus erstellt wurde.
Wenn wir über Browsersicherheit sprechen, denken wir darüber nach, was genau Menschen mit JavaScript, HTML oder CSS tun. Was können sie mit Plugins oder Erweiterungen tun? Im Zusammenhang mit privatem Surfen sind Plugins und Erweiterungen sehr interessant, da sie in den meisten Fällen nicht auf dieselbe Ursprungsrichtlinie beschränkt sind, sondern beispielsweise die Verwendung von JavaScript einschränken können. Interessanterweise arbeiten diese Erweiterungen und Plugins normalerweise mit sehr hohen Berechtigungen. Grob gesagt können Sie sie sich als Kernelmodule vorstellen. Sie verfügen über eine hohe Autorität, sodass Sie neue Funktionen direkt in den Browsern selbst implementieren können. Dies ist daher etwas problematisch, da diese Plugins und Erweiterungen häufig von jemandem entwickelt werden, der nicht der eigentliche Browser-Entwickler ist. Dies bedeutet, dass jemand versucht, etwas Gutes zu tun und Ihrem Browser nützliche Eigenschaften zu verleihen, indem er ihm ein Plugin oder eine Erweiterung hinzufügt. Dieser Drittentwickler versteht den Sicherheitskontext, in dem seine Erweiterung ausgeführt wird, möglicherweise nicht vollständig, sodass eine solche Erweiterung möglicherweise nicht die Semantik des privaten Browsermodus oder falsch bereitstellt.
, , , . , , . , , , HTML5 , , . , Java Flash. , 2D 3D-, - Java Flash. , Web GL , , , .
, IE , , - , HTML5. , YouTube, , , - HTML5-, . . , . , , , , .
, , , , 2010 , , ?
, . , , , HTML5.
, , . , . - , .
, 2014 Firefox, pdf.js, PDF-, HTML5-. , , .
, - PDF-, . PDF- , pdf.js , . . , , . , — , .
. , , , , , , , .
, : , , .

Firefox , 2011 . . , , , about:memory, , , , URL- , . , , , about:memory. , Firefox. , Firefox . , , about:memory , .
, URL-, , , . , . .
Bugzilla, , . , , , , , . , , . , . : « , , , .» : « , ».
, — HTML5 — , , . , , , .
, . , , . , .
, Magnet, -, . , , , URL- . - .
, Tor.
.
Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung
aufgeben oder Ihren Freunden empfehlen, einen
Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).
VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis Dezember kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie
hier bestellen.
Dell R730xd 2 mal günstiger? Nur wir haben
2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über
den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?