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 Also fangen wir an. Willkommen zu einem weiteren faszinierenden Vortrag über Sicherheit und warum die Welt so schrecklich ist. Daher werden wir heute über private Browsermodi sprechen, über die viele von Ihnen wahrscheinlich viel persönliche Erfahrung haben. Was ist der Zweck des privaten Surfens? Was sagen Sicherheitsforscher zum Datenschutz?

Im Allgemeinen sprechen sie über das folgende Ziel: Ein bestimmter Benutzer sollte sich nicht von einer Gruppe anderer Benutzer unterscheiden. Insbesondere sollte die Aktivität dieses Benutzers beim Surfen im Internet in Bezug auf die Aktivität anderer Benutzer nicht beeinträchtigt werden. Wie ich bereits erwähnt habe, werden wir heute über den Datenschutz im spezifischen Kontext eines privaten Internet-Browsings sprechen.
Tatsächlich gibt es keine formale Definition dessen, was privates Surfen bedeutet. Dafür gibt es mehrere Gründe. Eine davon ist, dass Webanwendungen sehr, sehr komplexe Dinge sind. Sie fügen ständig neue Funktionen wie Audio-, Videoinhalte und ähnliche Dinge hinzu. Infolgedessen sollten Browser ein "sich bewegendes Ziel" sein. Daher ist das Konzept, was Browser tun können, ziemlich vage, weshalb nicht immer klar ist, welche Informationen über einen bestimmten Benutzer in den öffentlichen Bereich gelangen können.
Am Ende passiert, dass in der Praxis, wie bei vielen anderen Dingen, die Existenz und die Aufgaben von Browsern von den Lebensstandards bestimmt werden. Daher werden verschiedene Browserhersteller verschiedene Funktionen implementieren, insbesondere im Hinblick auf das private Surfen. Andere Entwickler sehen die Ergebnisse der Wettbewerber und aktualisieren ihren eigenen Browser, sodass sich die Ziele und Vorgaben des Browsers ständig ändern.

Da Benutzer immer mehr auf das private Surfen im Internet angewiesen sind, werden sie schließlich viele Datenschutzfehler finden, über die ich gleich sprechen werde. Im globalen Sinne kann privates Surfen als ehrgeiziges Ziel angesehen werden. Aber wenn sich die Gesellschaft verbessert, werden einige Aspekte des privaten Surfens besser und andere schlechter.
Was verstehen wir unter privatem Surfen im Internet? Dies ist schwer zu bestimmen, aber der Vorlesungsartikel versucht, dieses Problem auf zwei spezifische Arten zu formalisieren. Zunächst geht es um einen lokalen Hacker in einem privaten Netzwerk - eine Person, die Ihren Computer in Besitz nimmt, nachdem Sie das private Surfen abgeschlossen haben. Und diese Person möchte herausfinden, welche Websites Sie im privaten Browsermodus besucht haben.
Der Artikel spricht auch über Cyberkriminelle, die die von Ihnen besuchten Websites kontrollieren. Dieser Angreifer versucht möglicherweise herauszufinden, dass Sie eine bestimmte Person sind, John oder Jane, und kein unpersönlicher Benutzer, über den die Website keine Informationen bereitstellen kann. Daher werden wir jeden dieser Angriffe im Detail untersuchen. Es genügt zu sagen, dass, wenn ein Angreifer beide Angriffe gleichzeitig organisieren kann, sowohl lokale als auch Internet-Angriffe, dies seine Fähigkeit, Ihre Identität preiszugeben, erheblich verbessert.
Ein lokaler Angreifer, der Ihre IP-Adresse kennt, kann beispielsweise herausfinden, ob diese bestimmte IP-Adresse in den Protokollen der Site enthalten ist. Aus Sicherheitsgründen ist es daher sehr nützlich, diese lokalen und Web-Angriffe zunächst einzeln und dann in kombinierter Form zu betrachten.
Schauen wir uns den ersten Angreifertyp an - einen lokalen Angreifer. Angenommen, dieser Hacker steuert den Computer des Benutzers nach dem Ende der Netzwerkkommunikationssitzung. Ich meine, dass das private Surfen im Internet abgeschlossen ist, der Benutzer den Browser nicht mehr verwendet und sich nicht am Computer befindet. Danach übernimmt der Hacker die Kontrolle über den Computer und versucht herauszufinden, was zuvor passiert ist. Der Zweck der Sicherheit besteht daher darin, zu verhindern, dass ein Angreifer versteht, welche Websites der Benutzer beim privaten Surfen besucht hat.
Ein wichtiger Grund, warum wir einen Angriff nach dem Ende einer Internetaktivitätssitzung in Betracht ziehen, ist folgender. Wenn wir davon ausgehen, dass ein Angreifer den Computer vor dem privaten Anzeigen steuern kann, ist das "Spiel beendet", da der Hacker in diesem Fall einen Tastaturabfangjäger installieren und die Integrität des Browsers oder des Betriebssystems selbst verletzen kann. Wir werden einem solchen Angreifer also keine Aufmerksamkeit schenken. Bitte beachten Sie, dass wir aus dem gleichen Grund nicht versuchen, die Privatsphäre der Benutzer zu gewährleisten, nachdem der Angreifer seinen Computer kontrolliert hat. Da der Hacker die Kontrolle über den Computer übernommen hat, kann er mit ihm tun, was er will, und zumindest denselben Tastaturabfangjäger installieren. Grundsätzlich berücksichtigen wir das Konzept der Privatsphäre nicht direkt, sobald der Benutzer den Computer verlässt.
Hier können Sie ein weiteres Ziel vorstellen, das Sie erreichen möchten: Versuchen Sie, sich vor dem Angreifer zu verstecken, dass der Benutzer im Allgemeinen den privaten Browsermodus verwendet.

Der Vorlesungsartikel sagt, dass es sehr schwierig ist. Diese Eigenschaft wird oft als "plausible Ablehnung" bezeichnet. Zum Beispiel kommt Ihr Chef nach einer privaten Browsersitzung zu Ihnen und sagt: "Haben Sie mylittlepony.com durchsucht?" Und Sie antworten, nein, dass Sie nicht dorthin gegangen sind! Und ich habe natürlich nicht den privaten Browsermodus verwendet, um die Tatsache zu verbergen, dass ich mylittlepony.com durchsucht habe. Wie ich bereits sagte, ist es schwierig, die Eigenschaft einer plausiblen Ablehnung sicherzustellen. Später werde ich konkrete Gründe nennen. Wir werden also hauptsächlich nur einen lokalen Angreifer betrachten.
Wir könnten über die Frage nachdenken, wie der konstante Zustand der Client-Seite zu Lecks während einer privaten Browsersitzung beiträgt. Mit Persistenz meine ich, dass einige Daten auf einer lokalen Festplatte, einer lokalen SSD oder ähnlichem gespeichert werden.

Welche Betriebsbedingungen des Systems sind mit Datenlecks behaftet, wenn wir bei der privaten Anzeige nicht vorsichtig genug waren? Dies ist zunächst der Status der Zugänglichkeit von JavaScript-Komponenten wie Cookies und DOM-Speicher. Eine andere Sache, über die sich die Leute beim privaten Surfen Sorgen machen, ist der Browser-Cache. Schließlich möchten Sie nicht, dass jemand im internen Cache einige Bilder oder HTML-Dateien von Websites findet, deren Besuche Sie vor anderen Personen verbergen möchten.
Ein weiterer wichtiger Punkt ist die Geschichte der von Ihnen besuchten Websites. Sie können eine Beziehung zu einer anderen Person ruinieren, wenn sie sich beim Browser anmeldet, etwas in die Adressleiste eingibt und peinlich unterbricht, was gestartet wurde, da der Verlauf Ihrer Ansichten ihm automatisch etwas extrem Unanständiges sagt. Dies ist einer der Gründe, warum Sie nicht möchten, dass diese Informationen aus Ihrer privaten Browsersitzung herauskommen.
Sie können auch Konfigurationsstatus und Dinge wie Client-Zertifikate und Seitenlesezeichen anzeigen. Möglicherweise sind Sie zu einer bestimmten Site gegangen, und der Browser bietet an, Ihre Kennwörter in einer Konfigurationsdatei zu speichern, um diese Site anzuzeigen, und Sie möchten sie nicht verlieren.
Das fünfte sind die heruntergeladenen Dateien. Dies ist interessant, da zum Herunterladen der Datei eine explizite Benutzeraktion erforderlich ist. Sie können die heruntergeladene Datei beim Öffnen des Browsers beim privaten Surfen verwenden. Es ist jedoch auch möglich, dass Sie die heruntergeladene Datei verwenden, nachdem Sie mit dem Browser außerhalb des privaten Browsermodus gearbeitet haben. Wir werden etwas später darüber sprechen.
Und schließlich können Sie im privaten Browsermodus neue Plug-Ins oder Erweiterungen für den Browser installieren. Dies ist eine andere Art von Status, dessen Verlust über das private Surfen hinaus unerwünscht ist.

Daher versuchen aktuelle Browsermodi normalerweise, Datenlecks während des ersten, zweiten und dritten Status einer privaten Browsersitzung zu verhindern. Das heißt, es sollte keine Möglichkeit des Verlusts von Cookies oder DOM-Daten bestehen. Alles, was Sie während einer privaten Browsersitzung zwischenspeichern, sollte gelöscht werden. Sie sollten keinen Verlauf der besuchten URLs führen.
In der Regel können die Daten des vierten, fünften und sechsten Zustands des privaten Anzeigemodus aus der Sitzung austreten. Es gibt nützliche und schädliche Gründe, warum dies auftreten kann. Später werden wir sehen, dass wenn ein Leck erlaubt ist, dies die Oberfläche der Gefahr von Lecks aller privaten Informationen radikal erhöht. Daher ist es ziemlich schwierig, genau zu diskutieren, welche Sicherheitseigenschaften für einen privaten Anzeigemodus vorgesehen sind.
Das nächste, worüber wir sehr kurz sprechen werden, ist die Netzwerkaktivität im privaten Browsermodus. Das Interessante daran ist, dass selbst wenn wir den Schutz all dieser 6 Zustände gewährleisten und Informationslecks verhindern, die Tatsache, dass Sie während der Verbindung Netzwerkpakete ausgeben, ein Beweis dafür ist, was Sie getan haben. Stellen Sie sich vor, wenn Sie zu foo.com gehen möchten, sollte Ihr Computer eine DNS-Abfrage für foo.com ausgeben. Selbst wenn Sie keine Spuren der Aktivität der sechs oben genannten Zustände hinterlassen, befinden sich dennoch Datensätze im lokalen DNS-Cache, die Sie versucht haben, den Host foo.com zu kontaktieren. Es ist sehr interessant. Sie könnten denken, dass Browser nach Abschluss einer privaten Browsersitzung versuchen könnten, den DNS-Cache zu leeren. In der Praxis ist dies jedoch schwierig, da für viele Systeme Administratorrechte erforderlich sind. Hier entsteht ein Widerspruch, da Sie höchstwahrscheinlich nicht möchten, dass der Browser über Root-Rechte verfügt, da wir sichergestellt haben, dass die Browser nicht zuverlässig genug sind. Darüber hinaus sind die DNS-Cache-Bereinigungsbefehle für die Aktivität eines bestimmten Benutzers konzipiert. Sie löschen nicht den gesamten Cache, was Sie für den privaten Browsermodus wünschen. Sie benötigen "chirurgische" Genauigkeit, um die Erwähnung des Besuchs von foo.com und anderen Websites im privaten Browsermodus zu vermeiden, ohne andere Auswirkungen zu haben. In der Praxis ist es ziemlich schwierig, damit umzugehen.
Und eine andere schwierige Sache, die der Artikel erwähnt, sind die Artefakte von RAM oder RAM. Die Hauptidee dabei ist, dass der private Browser im privaten Browsermodus etwas im Speicher speichern sollte. Selbst wenn der private Browsermodus kein direktes Schreiben von Daten auf die Festplatte oder Lesen von Daten von der Festplatte erfordert, stellt der RAM den Browser bereit. Beispielsweise kann die angezeigte Registerkarte in der Auslagerungsdatei verbleiben, und diese Informationen werden möglicherweise in der Ruhezustandsdatei des Notebooks wiedergegeben. Wenn sich dieser Status im persistenten Speicher widerspiegelt, kann der Angreifer nach Abschluss der privaten Browsersitzung JavaScrip- oder HTML-Code finden, der auf der Festplatte in der Auslagerungsdatei angezeigt wird.
Wir werden eine kleine Demonstration haben, wie dies funktionieren kann. Auf dem Bildschirm sehen Sie die Registerkarte "Privates Surfen", mit der ich auf die Website der PDOS-Programmiergruppe des Informatiklabors unseres CSAIL-Instituts gehe.

\.
Als nächstes werde ich diesen lustigen Befehl namens gcore verwenden, um einen Schnappschuss dieser geöffneten PDOS-Seite zu speichern.

Als nächstes benutze ich ein wenig Magie, damit mein Terminal einen Schnappschuss des Speichers macht, manchmal dauert es ein wenig.

Hier ist, was hier los ist: Die Hauptbilddatei dieser privaten Ansicht wird hier generiert. Jetzt werden wir in dieses Bild schauen und sehen, ob wir irgendwelche Erwähnungen von pdos finden können.

Interessanterweise sehen wir in diesem Speicherbild eine Reihe von Instanzen von PDOS-Zeichenfolgen mit unterschiedlichen Präfixen für den privaten Browsermodus.

Wenn wir weiter schauen, werden wir Dinge wie vollständige URLs und HTML-Codes sehen.

Der Punkt ist, dass, wenn wir all dies im Speicher der Seite finden könnten, dh einige Daten dieser Seite in der Auslagerungsdatei auf der Festplatte abgelegt würden, der Angreifer diese Zeilen leicht ausführen könnte. Er kann das tun, was ich gerade mit der Datei auf dieser Seite gemacht habe, und versuchen herauszufinden, welche Websites Sie im privaten Browsermodus besucht haben. Das ist klar?
Im Prinzip besteht das Problem hier darin, dass der private Browsermodus nicht versucht, RAM zu „verwirren“ oder irgendwie zu verschlüsseln. Dies scheint eine ziemlich grundlegende Sache zu sein, da der Prozessor irgendwann eine Aufgabe ausführen sollte, die auf offenen Textdaten basiert. Daher kann dieser Umstand zu einem großen Problem werden. Hat jemand Fragen?
Student: Genau das erwarte ich nicht von meinem Browser, da Browser die Privatsphäre des privaten Surfens gewährleisten müssen. Wenn Sie beispielsweise Einkäufe tätigen, kann ein Freund, der sich auf Ihren Computer gesetzt hat, diese nicht anzeigen. Können Sie uns etwas darüber erzählen, welche Garantien die Autoren des Artikels geben, und beschreiben sie im Artikel, was in den Browsern geändert werden kann, um diese Vertraulichkeit zu gewährleisten?
Professor: Ja, das ist sehr interessant. Eines können Sie beachten: Wenn Sie die Registerkarte "Privates Surfen" öffnen, wird in der Regel eine Textnachricht vor Ihnen angezeigt: "Willkommen im Inkognito-Modus". In diesem Modus können Sie keine Spuren hinterlassen, wenn mehrere Benutzer am Computer arbeiten, und Ihr Freund, der sich nach Ihnen auf den Computer gesetzt hat, kann sich nicht mit dem Verlauf Ihrer Ansichten, Cookies und Daten zum Ausfüllen von Formularen vertraut machen. Der Inkognito-Modus hilft jedoch nicht, wenn jemand hinter Ihnen mit einem Gummiknüppel steht und Sie ausschaltet, sobald Sie die Website betreten.
Daher vermeiden es die Hersteller selbst, bei der Verwendung ihrer Browser Garantien für die Vertraulichkeit von Daten festzulegen.
Tatsächlich haben viele Browser nach dem Snowden-Vorfall diese Popup-Nachricht geändert, weil sie dem Benutzer wirklich klar machen wollten, dass sie ihn nicht vor dem Eingreifen von Kräften wie der NSA oder ähnlichem schützen können.
Kurz gesagt, welche Garantien bieten sie? In der Praxis bieten sie nur die oben erwähnte Sicherheitsanfälligkeit. Das heißt, wer nicht sehen kann, was Sie gerade tun, kann sehen, was Sie getan haben. Wir gehen davon aus, dass ein Laie keine Zeilen in einer Auslagerungsdatei ausführen oder etwas Ähnliches tun kann. Es gibt jedoch zwei Probleme. Eines der Probleme ist, dass Browser so komplex sind, dass sie oft nicht einmal vor den Handlungen von Laien schützen.
Ich kann ein persönliches Beispiel geben. Als ich mehrmals lustige Huffington Post-Bannerwerbung auf der Seite sah, wie zum Beispiel „Schau, wie das Berühren dieser Welpen anderen Welpen hilft, die Treppe hinunterzugehen!“, Habe ich sie manchmal gefangen und wegen meiner Schwäche darauf geklickt. Aber da ich nicht wollte, dass die Leute etwas über meine Schwäche erfahren, habe ich es manchmal im privaten Betrachtungsmodus gemacht. Es kam jedoch vor, dass die URLs dieser Werbeartikel im normalen öffentlichen Browsermodus, für den dieses Material nicht vorgesehen war, manchmal in den URL-Verlauf gelangten. Eines der Probleme ist daher, dass diese Browser manchmal keinen Schutz vor nicht professionellen Angriffen bieten.
Zweitens denke ich, dass es viele Menschen gibt, die sich besonders nach der Snowden-Geschichte einen stärkeren Schutz der Privatsphäre vor privatem Surfen wünschen. Sie möchten Schutz vor Angriffen von RAM-Artefakten, auch wenn sie ihren Wunsch technisch nicht richtig formulieren können.
Daher war eines der Dinge, die ich während meines Studiums an diesem Institut getan habe, eine Studie auf dem Gebiet der Verbesserung des Schutzes im privaten Betrachtungsmodus, damit wir darüber sprechen können. , , , , . , … ?
: , , , . , ?
: . . , . , , . , , .
, , . , , . , , , , , . , , , , .
. , memclear. , , « ».

read_secret? , , , .

, . , , , memset , , . , , , : « ».

, , ? , .

, . , «», , , . gcore, memclear, .

, , grep .

, , , , , , . , ? , .
, / , . , , , , , C /, , . , memset , , , . , , , , / - .

, . , , , , . ? , , , . , memset memclear, . , , , . ? , , SQL.
- - RAM , , , .
, RAM, , , -, . , , . -, - , , . , , , , . .
. , , , , malloc . , , RAM. , , , – , - . , , .
. / , . , .
? , . , . . , Microsoft Word , Word . , Word, .
, , . , Linux, , , 4- . , . , Linux , , , - .
, — , , .
- SSD. . , SSD, , . , .

, , SSD, : «, , , ».
. , , .
, , , - «» .
Wie können wir diese Probleme mit der Datenlebensdauer beheben? Wir haben bereits eine Lösung besprochen, nämlich das Zurücksetzen des Speichers, nachdem Sie den Vorgang abgeschlossen haben. Wenn Sie also etwas veröffentlichen, schreiben Sie einfach eine Reihe von Nullen oder zufälligen Dingen auf, um die alten Daten im Wesentlichen vor jemandem zu verbergen, der möglicherweise nach Ihnen kommt.27:05 minMIT-Kurs "Computer Systems Security". Vorlesung 18: Privates Surfen im Internet, Teil 2Die Vollversion des Kurses finden Sie hier .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?