MIT-Kurs "Computer Systems Security". Vorlesung 18: Privates Surfen im Internet, Teil 2

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 3
Vorlesung 2: „Kontrolle von Hackerangriffen“ Teil 1 / Teil 2 / Teil 3
Vorlesung 3: „Pufferüberläufe: Exploits und Schutz“ Teil 1 / Teil 2 / Teil 3
Vorlesung 4: „Trennung von Privilegien“ Teil 1 / Teil 2 / Teil 3
Vorlesung 5: „Woher kommen Sicherheitssysteme?“ Teil 1 / Teil 2
Vorlesung 6: „Chancen“ Teil 1 / Teil 2 / Teil 3
Vorlesung 7: „Native Client Sandbox“ Teil 1 / Teil 2 / Teil 3
Vorlesung 8: „Netzwerksicherheitsmodell“ Teil 1 / Teil 2 / Teil 3
Vorlesung 9: „Sicherheit von Webanwendungen“ Teil 1 / Teil 2 / Teil 3
Vorlesung 10: „Symbolische Ausführung“ Teil 1 / Teil 2 / Teil 3
Vorlesung 11: „Ur / Web-Programmiersprache“ Teil 1 / Teil 2 / Teil 3
Vorlesung 12: Netzwerksicherheit Teil 1 / Teil 2 / Teil 3
Vorlesung 13: „Netzwerkprotokolle“ Teil 1 / Teil 2 / Teil 3
Vorlesung 14: „SSL und HTTPS“ Teil 1 / Teil 2 / Teil 3
Vorlesung 15: „Medizinische Software“ Teil 1 / Teil 2 / Teil 3
Vorlesung 16: „Seitenkanalangriffe“ Teil 1 / Teil 2 / Teil 3
Vorlesung 17: „Benutzerauthentifizierung“ Teil 1 / Teil 2 / Teil 3
Vorlesung 18: „Privates Surfen im Internet“ Teil 1 / Teil 2 / Teil 3

Betrachtet jemand dies als potenzielles Problem? Das erste Problem ist, dass sich die Leute immer über die Leistung beschweren, wenn es um Sicherheit geht. Wenn Sie den Speicher zurücksetzen und Ihr Programm durch die Funktionen des E / A-Geräts eingeschränkt ist, ist dies kein Problem. Warten Sie nur, bis die mechanischen Teile der Festplatte oder etwas anderes funktionieren.



Stellen Sie sich jedoch vor, Ihr Programm ist an einen Prozessor gebunden und interagiert möglicherweise sehr intensiv mit dem Speicher, indem es Daten zuweist und freigibt. In diesem Fall kann das Nullsetzen des Speichers die Systemleistung erheblich beeinträchtigen und ist der Preis für die Sicherheit, den Sie nicht bezahlen möchten. Dies ist in der Praxis normalerweise kein Problem. Aber wie wir alle wissen, schätzen die Menschen die Leistung sehr, so dass die Möglichkeit, den Speicher zurückzusetzen, sicherlich auf Einwände stößt.

Eine Alternative zum Nullstellen des Speichers kann das Verschlüsseln der Daten sein, wenn diese zur dauerhaften Speicherung eintreffen. Das heißt, die Daten werden verschlüsselt, bevor die Anwendung sie auf die SSD oder HDD schreibt. Wenn dann die Daten auf Anforderung des Programms aus dem stabilen Speicher zurückgegeben werden, werden sie dynamisch entschlüsselt, bevor sie in den RAM gelangen. Bei dieser Schutzmethode ist es interessant, dass ein Angreifer diese Daten nicht von der Festplatte wiederherstellen kann, wenn Sie den Schlüssel wegwerfen, mit dem Sie Daten verschlüsselt und entschlüsselt haben. Dies setzt voraus, dass Sie der Kryptografie absolut vertrauen.

Das ist also sehr, sehr gut, weil es uns die Möglichkeit gibt, uns nicht an alle Stellen zu erinnern, an denen Sie diese verschlüsselten Daten schreiben. Sie fragen sich vielleicht, warum Sie die Schlüssel wegwerfen sollten, weil wir einfach alle verschlüsselten Daten als etwas betrachten, das erneut ausgewählt werden kann?

Betrachten Sie als Beispiel das Open BSD-Betriebssystem, das über eine Swap-Verschlüsselungsoption verfügt. Auf diese Weise können Sie Schlüssel verschiedenen Abschnitten der Auslagerungsdatei zuordnen, d. H. Was ich erwähnt habe, passiert. Daher generiert dieses Betriebssystem jedes Mal, wenn Sie den Computer starten, eine Reihe neuer Schlüssel. Nach dem Ausschalten oder Neustarten des Computers werden alle Schlüssel vergessen, mit denen der Swap Space verschlüsselt wurde. Wir können sagen, dass der Swap jetzt zur Wiederverwendung verfügbar ist, und da diese Schlüssel vergessen werden, können wir davon ausgehen, dass der Angreifer nicht in der Lage ist, an die dort gespeicherten Dinge zu gelangen.



Student: Wie ist die Entropie dieser Schlüssel zugeordnet und ist es möglich, sie zu entschlüsseln?

Professor: Das ist eine gute Frage. Ich weiß nicht, welche Entropieressourcen hier verwendet werden. Open BSD hat Paranoia in Bezug auf Sicherheit. Daher gehe ich davon aus, dass sie beispielsweise den Entropiepool berücksichtigt, der aus Dateneingaben über die Tastatur des Benutzers und anderen ähnlichen Dingen gewonnen wurde. Ich weiß nicht, wie dieses Betriebssystem Schlüssel verwaltet. Sie haben jedoch absolut Recht, dass wenn die verwendeten Entropieressourcen vorhersehbar sind, der Entropieraum des Schlüssels selbst komprimiert wird, wodurch er anfälliger wird.

Grundsätzlich bietet dieses Modell nur eine Swap-Verschlüsselung, dh es wird davon ausgegangen, dass RAM-Seiten für Schlüssel niemals aus dem Speicher entladen werden. Dies ist im Betriebssystem recht einfach, wenn Sie diese Seite nur im Speicher anheften. Es wird Ihnen auch nicht helfen, etwas mit jemandem zu tun, der Kontakte zum Speicherbus hat, oder mit jemandem, der durch die Kernel-Speicherseite oder dergleichen "gehen" kann.

Student: Unter dem Gesichtspunkt des Surfens hilft dies, sich vor Eindringlingen zu schützen, die nach dem privaten Surfen kommen, denn wenn Sie den Schlüssel wegwerfen müssen, bleibt er nicht im Speicher.

Professor: absolut wahr. Das Gute daran ist, dass für die Swap-Verschlüsselung keine Änderungen an den Anwendungen erforderlich sind.

Student: Gehen Sie ein bisschen zurück - wenn Sie sich die Daten ansehen, bevor sie in den Arbeitsspeicher gelangen, bleiben dann noch Speicherartefakte übrig?

Professor: Wenn ich Ihre Frage richtig verstehe, stört es Sie, dass die Daten zwar auf der Festplatte verschlüsselt sind, aber im Klartext im Speicher gespeichert sind. Zurück zur Diskussion der Swap-Verschlüsselung. Die verschlüsselte Datenübertragung auf die Festplatte schützt nicht vor einem Angreifer, der RAM in Echtzeit anzeigen kann. Wenn Sie also nur vom Angreifer nach einer privaten Browsersitzung gestört werden, bei der der Arbeitsspeicher nicht in Echtzeit angezeigt werden kann, funktioniert dies einwandfrei. Aber Sie haben definitiv Recht, dass dies keine RAM-Verschlüsselung bietet - mangels eines besseren Begriffs sagen wir dies. Es gibt einige Forschungssysteme, die versuchen, so etwas zu tun. Dies ist etwas komplizierter, da Ihr Prozessor beim Zugriff auf Ihre Hardware irgendwann etwas mit echten Daten tun muss. Wenn Sie beispielsweise etwas mit dem Befehl add tun möchten und Operanden mit einfachem Text übergeben müssen.

Es gibt auch einige interessante Forschungssysteme, die versuchen, Berechnungen basierend auf verschlüsselten Daten durchzuführen. Es explodiert das Gehirn wie der Film The Matrix. Es genügt jedoch zu sagen, dass der Datenschutz im RAM normalerweise viel schwächer ist als der Schutz von Daten auf stabilen Laufwerken. Haben Sie noch Fragen?



Student: Wir haben über einen Angreifer gesprochen, der nach einer privaten Browsersitzung handelt. Wenn Sie jedoch eine Registerkarte im öffentlichen Modus und eine Registerkarte im privaten Modus in Ihrem Browser haben und nach dem Schließen der Registerkarte für das private Surfen die Registerkarte für das öffentliche Surfen geöffnet bleibt, kann ein Hacker über sie Speicherartefakte erreichen?

Professor: Dies ist eine interessante Frage, und am Ende der Vorlesung werden wir über eine ähnliche Angriffsmethode sprechen. Tatsache ist, dass die meisten Bedrohungsmodelle im privaten Browsermodus nicht die Anwesenheit eines Angreifers in Echtzeit implizieren. Mit anderen Worten, sie gehen davon aus, dass beim privaten Surfen gleichzeitig keine andere Person einen öffentlichen Browsing-Tab oder ähnliches geöffnet hat. Aber Sie haben tatsächlich Recht, dass die Art und Weise, wie private Browsermodi häufig implementiert werden, nicht gut geschützt ist.

Angenommen, Sie öffnen die Registerkarte für das private Surfen und schließen sie nach einer Weile, um eine Tasse Kaffee zu trinken. Firefox speichert jedoch beispielsweise Statistiken wie die Speicherzuordnung. Wenn also der Speicher für Ihre private Browsing-Registerkarte mit dem gesamten vom Browser gesammelten Müll zusammenhängt, kann ich die von Ihnen besuchten URLs usw. in Ihrer Registerkarte sehen. Kurz gesagt, die meisten Angreifer-Modelle implizieren nicht gleichzeitig einen Angreifer, wenn Sie privat im Internet surfen.

Die Swap-Verschlüsselung ist daher eine nützliche Sache, da sie Ihnen einige interessante Sicherheitsfunktionen bietet, ohne dass Sie den Browser oder eine der darauf ausgeführten Anwendungen ändern müssen. In der Praxis sind die Kosten für die Verwendung eines Prozessors beim Verschlüsseln eines Swaps viel geringer als die tatsächlichen Kosten für die Ausführung von E / A-Vorgängen im Allgemeinen, insbesondere wenn Sie eine Festplatte haben, da Sie deren Leistung mit der Festplatte kaufen. Dies sind die Kosten für rein mechanische Teile und Hardware, sodass die Swap-Verschlüsselung die Leistung nicht so stark beeinträchtigt.

Die nächste Art von Angreifer, die wir uns ansehen werden, ist ein Web-Angreifer, den ich zu Beginn der Vorlesung erwähnt habe. Hier wird angenommen, dass der Angreifer die Website, die der Benutzer besuchen möchte, im privaten Browsermodus steuert, dieser Angreifer jedoch nicht den lokalen Computer des Benutzers. Dabei verfolgen wir zwei Sicherheitsziele, um uns vor Webangriffen zu schützen.

Zunächst möchten wir nicht, dass ein Angreifer Benutzer identifizieren kann. Identifikation bedeutet, dass ein Angreifer einen Benutzer von einem anderen Benutzer unterscheiden kann, der seine Site besucht.

Zweitens möchten wir nicht, dass der Angreifer erkennen kann, ob der Benutzer den privaten Browsermodus verwendet oder nicht. Wie ein Vortragsartikel schreibt, ist der Schutz vor einem Web-Angreifer eigentlich eine ziemlich zweifelhafte Aufgabe.

Was bedeutet es also, verschiedene Benutzer zu identifizieren? Wie gesagt, im globalen Sinne können Sie sich vorstellen, dass ein Benutzer genau wie alle anderen Benutzer aussieht, die diese Site besuchen. Angenommen, ein Web-Angreifer möchte möglicherweise eines von zwei spezifischen Dingen ausführen. Der erste sieht folgendermaßen aus: "Ich sehe, dass mehrere Personen meine Website im privaten Browsermodus besucht haben und Sie der fünfte, siebte und achte Besucher waren." Mit anderen Worten bedeutet dies eine Benutzeridentifikation im Kontext mehrerer privater Browsersitzungen.



Das zweite, was ein Angreifer möglicherweise möchte, ist der Versuch, eine Verbindung zwischen dem Benutzer und den Browsersitzungen im öffentlichen und privaten Modus herzustellen. Angenommen, ich gehe einmal in der öffentlichen Ansicht zu amazon.com und das zweite Mal in der privaten Ansicht. Kann ein Angreifer wirklich herausfinden, dass derselbe Benutzer beide Besuche auf der Website durchgeführt hat?

Student: Aber ist das alles an IP-Adressen gebunden?

Professor: Ja, das stimmt. Dies ist eine ausgezeichnete Annahme, daher wage ich anzunehmen, dass der Benutzer in unserem Fall Tor oder ähnliches nicht verwendet. Ja, wir können auf der IP-Adresse des Benutzers aufbauen. Es ist leicht anhand der IP-Adresse zu identifizieren. Und wenn eine Site innerhalb kurzer Zeit zweimal von derselben IP-Adresse aus besucht wird, ist es sehr wahrscheinlich, dass derselbe Benutzer dies getan hat.

Tatsächlich dient es als Motivation für die Verwendung von Dingen wie Tor. Wir werden dieses Thema in der nächsten Vorlesung diskutieren. Wenn Sie noch nichts von Tor gehört haben, kann ich sagen, dass es sich im Grunde um ein Tool handelt, das versucht, Dinge wie Ihre IP-Adresse zu verbergen. Sie können sich den Browser als eine Sammlung von Ebenen vorstellen, die auf Tor basieren, und darüber hinaus haben Sie einen privaten Browsermodus. Dies kann Ihnen solche Vorteile bieten, die der private Modus überhaupt nicht bieten kann. Somit bietet Tor ein gewisses Gefühl der Anonymität einer IP-Adresse, ist jedoch nicht in der Lage, Datenschutz, eine bestimmte Zeit ihres Lebens oder ähnliche Dinge bereitzustellen. Sie können "Tor" als eine notwendige, aber nicht ausreichende Voraussetzung für die vollständige Umsetzung des Regimes des privaten Surfens im Internet betrachten.

Interessanterweise gibt es auch bei Verwendung von Tor immer noch Möglichkeiten, wie ein Webserver einen Benutzer anhand der einzigartigen Merkmale dieses Browsers identifizieren kann.



Jetzt zeige ich Ihnen die neueste Demo für heute. Mal sehen, wie ich eine Seite namens Panopticlick benutze. Einige von Ihnen haben von dieser Seite gehört. Dies ist ein Online-Projekt der EFF - Electronic Frontier Foundation, der Electronic Frontier Foundation. Die Hauptidee des Projekts besteht darin, dass Sie als Benutzer identifiziert werden, indem die verschiedenen Merkmale Ihres Webbrowsers analysiert werden. Ich werde dir genau zeigen, was ich meine. Wir gehen auf diese Seite, Sie sehen den Button "Test me" und ich klicke darauf.



Meistens funktioniert hier eine Menge JavaScript-Code, vielleicht einige Applets und etwas Java.

Diese Seite versucht, Fingerabdrücke von meinem Browser zu nehmen und herauszufinden, wie viele eindeutige Informationen sie enthält.

Lassen Sie mich die Schriftart erhöhen - Sie sehen, dass eines der Dinge, die er herausfinden möchte, die Details der von mir verwendeten Browser-Plugins sind. Im Grunde wird dieser Test Code ausführen, der prüft, ob ich Flash installiert habe, welche Version dieses Flashs, ob Java installiert ist und welche Version es hat.



Sie sehen, dass nicht alle diese Plugins gleichzeitig auf denselben Bildschirm passen. Dies sind all die verschiedenen Plugins und Dateiformate, die mein Browser unterstützt. Im globalen Sinne sollte Sie dies stören, wenn Sie eine "Sicherheitsperson" sind. Wenn ich all diese Dinge zu einem bestimmten Zeitpunkt wirklich aktiv benutze, dann ist dies nur ein Albtraum!



Letztendlich kann der Webserver oder der Web-Angreifer nach dem hier gezeigten Code suchen und herausfinden, welche Plug-Ins Ihr Browser verwendet. Wenn Sie sich diese beiden Spalten links ansehen, was ist das?



Die erste Spalte enthält die Bits der identifizierten Informationen. Die nächste Spalte ist interessanter - sie zeigt, dass nur einer der angegebenen Browser die gleiche Anzahl von Plug-Ins hat, in diesem Fall 1 von 27679 Browsern. Das ist also eine ziemlich spezielle Art, meine Fingerabdrücke zu nehmen. Diese Zahl gibt an, dass es sehr, sehr wenige Personen gibt, deren Browser genau die gleichen Plugins und Dateikonfigurationen hat.
Wie sich herausstellte, haben sie Recht, ich bin eine völlig einzigartige Person, aber auf lange Sicht schafft dies ein großes Sicherheitsproblem. Schauen Sie sich den Rest der Testergebnisse an.



Hier ist die Bildschirmauflösung und Farbtiefe meines Laptops, einer für 1,5 Millionen Computer. Dies ist eine ziemlich schockierende Entdeckung, da nur eine Person in einer Stichprobe von eineinhalb Millionen Benutzern solche Bildschirmeigenschaften aufweist.
Diese Dinge sind also in gewisser Weise additiv. Je mehr Fingerabdrücke vorhanden sind, desto leichter kann ein Angreifer feststellen, dass Sie seine Website besucht haben. Und beachten Sie, dass dies ausschließlich vom Server durchgeführt wurde. Ich bin gerade auf diese Seite gegangen und habe nur auf eine Schaltfläche geklickt, und genau das haben sie getan. Nur eine Sekunde, ich möchte noch etwas zeigen. Die Panopticlick-Website wurde privat angemeldet. Jetzt kopiere ich die Adresse aus der Adressleiste und öffne die reguläre öffentliche Version von Firefox. Danach werde ich diesen Test erneut ausführen.

Ich stelle noch einmal fest - jetzt bin ich im öffentlichen Browsermodus und davor war ich im privaten Modus. Wenn Sie sich die Browser-Plug-Ins ansehen, sehen Sie, dass der Eindeutigkeitsindex der Fingerabdrücke des Browsers nahezu gleich bleibt - 27679.82 gegenüber 27679.68. Dieser Unterschied wird durch mehrere Plugins verursacht, die je nach Implementierung des Datenschutzmodus geladen werden können oder nicht. Aber Look - Fingerprinting ist immer noch einfach. Betrachten Sie die Bildschirmgröße und Farbtiefe - diese Anzeigen unterscheiden sich nicht im öffentlichen und privaten Anzeigemodus.

Die Möglichkeit, Fingerabdrücke in beiden Modi zu hinterlassen, ist also ungefähr gleich. Dies ist einer der Gründe, warum es so schwierig ist, sich vor einem solchen Webangriff zu schützen, da die Browser selbst in ihrer Konfiguration viele Informationen zur Identifizierung durch einen Angreifer enthalten.

Student: Ich bin neugierig auf die Optionen für Bildschirmgröße und Farbtiefe. Wie passiert das? Warum sind sie so einzigartig? Wie viele Bildschirmgrößen und Farbtiefen gibt es im Allgemeinen?

Professor: Ich denke, dass er tatsächlich einen Teil der Magie versteckt, mit der Panopticlick herausfindet, was es ist. Wie funktionieren viele dieser Tests weltweit? Es gibt einige Teile Ihres Browsers, die nur mit JavaScript-Code angezeigt werden können. Sie können sich also vorstellen, dass der JavaScript-Code die Eigenschaften des Fensterobjekts durchsucht, bei dem es sich um ein dreidimensionales Bild aus JavaScript handelt, und feststellt, wie der Code im Fenster dieses seltsame Widget, das benachbarte Widget, den Textteil, die Plugins usw. bezeichnet. Auf solchen Seiten wird häufig auch die Tatsache verwendet, dass Java-Applets und Flash-Objekte nach interessanteren Dingen suchen können, z. B. nach Schriftarten, die auf Ihrem Computer verfügbar sind, und dergleichen. Daher denke ich persönlich, dass bei der Bestimmung der Eindeutigkeit der Bildschirmgröße und Farbtiefe Folgendes passiert: Der Test startet ein Applet, das versucht, Ihre Grafikkarte oder grafische Oberflächen in Java anzufordern, und überprüft abwechselnd verschiedene Aspekte ihrer Arbeit bei der Anzeige der Browserseite.

, , , .

. , , , JavaScript. , , . , .

? . , Tor, Tor – , IP- , — . !

. , , -. , , , , Firefox v10.7. , Firefox, . .

: Tor? ?

: , . , , , , , -. - , - .



: , , - Tor, Firefox .

: , - Tor. , «» Tor. , — IP, — , , , -.

, -, , , Firefox, - . - , . , - Firefox 10.7. , Firefox 10.7. HTML , . .

: , , . Tor , Firefox.

: , . , , , , . , Tor , Tor, , Firefox Java, .

– Tor , «» . , . – , , .
, ? – . , , ? , - . . , , ?



, . , . , , , iframe URL-, , iframe . . , iframe, , , , .

, , , , , . , , , , . . , . JavaScript JavaScript, . .

: , , ?

: , . , , , . , , -. , - , .



, , . , Amazon.com , . , , cookie , -, .

: , IP-.

: , .

: , , , IP- . , , .

: , . , , -, . JavaScript, iframe foo.com, iframe . , , , .

. , iframe, , .

, . , .

IP-, , , Tor IP-.

54:00

MIT « ». 18: « », 3


.

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?

Source: https://habr.com/ru/post/de430206/


All Articles