Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Sehr gelungener und informativer Artikel. Die 24000 Zeichen haben sich im Nu weg lesen lassen. :top:
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Wir geben unser Bestes :top:
An der Stelle eine Entschuldigung für die Wall of Text, aber der Artikel richtet sich auch an Leute mit wenig Vorkenntnissen und endet auf einem Niveau, das bestens ausgebildete Experten 20 Jahre übersehen haben. Vor die Wahl gestellt, entweder zahlreiche wichtige Aspekte rauszukürzen, oder ein möglichst informatives Gesamtbild zusammenzustellen, habe ich mich diesmal für letztere Option entschieden – auch wenn es immer heißt, dass typische Online-Leser nach 1.000-2.000 Zeichen aufgeben (das hier sind 24.000 %-)).
Feedback zu dieser Entscheidung ist willkommen :-).

Der Artikel ist super geschrieben! :daumen: Es ist informativ und für die meisten immer noch verständlich. Leider kommt die Ernüchterung danach: entweder langsame - oder (für eine Weile) unsichere Systeme... :(
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Ich hatte mir am Tag nach der Veröffentlichung das PDF zu Meltdown angesehen. Der Artikel fasst das ganz gut grob zusammen, ohne Codebeispiele zu verwenden :daumen: Wobei die Angriffe in der Theorie so banal (und außerdem öffentlich einsehbar) sind, dass ein Beispiel eventuell nicht geschadet hätte (auch wenn ihr am Anfang geschrieben habt, dass ihr sowas nicht macht). Wer wirklich Böses will, hat wahrscheinlich inzwischen sowieso mehr Wissen, als im ursprünglichen Papier beschrieben. Denn auch dort ist afair nicht angegeben, was man genau tun muss, um "interessante" Speicherbereiche zu lesen.
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Also wenn ich jetzt meine 5 Jahre alte CPU wechsle, tu ich das nicht für mehr Leistung, sondern um das derzeitige (pre-patch) Leistungsniveau beizubehalten?
Ebenso fühlt sichs etwas komisch an für SSDs 50% mehr Geld aufn Tisch zu klatschen, als noch vor 15 Monaten, für bis zu 40% weniger Leistung als damals!
Na was solls, kauf ich mir halt gleich noch superteuren Arbeitsspeicher dazu und ne ebenfalls überteuerte Custom-Vega vom Schwarzmarkt, extra für meinen Freesync Monitor!
Und wenn ich mit der Shopping-Tour fertig bin und mir nochn paar Lootboxen in diversen Spielen kaufe, können die Hacker eh nix mehr von mir klauen!
Wir leben schon in goldenen Zeiten :devil:


Und jetzt ganz ohne Sarkasmus: Super Artikel @PCGH :daumen:
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Sehr Schöner Artikel, habe ich ihn auch nicht sofort komplett gelesen, sondern auf 2 Tage verteilt.:)
 
Schöner Artikel, falscher Grundton

Der Artikel erklärt die Problematik wirklich gut und findet in meinen Augen einen schönen Kompromiss zwischen Abstraktion und Genauigkeit. Allein der Grundton gefällt mir nicht. Schauen wir uns die Lücken mal getrennt an.

Meltdown:

Hier wurde von (im Wesentlichen) Intel ein Permission-Check ausgelassen, der den Privilege Level auch auf alternativen Pfaden prüfen müsste. Das man dieses tun muss war meiner Meinung nach auch vor über einem Dutzend Jahren schon Teil des Kanons zum CPU-Design. Auch wenn man die lkml (und damit meine ich nicht nur Linus' Post der weite Kreise zog, sondern auch ein paar andere) zu diesem Thema querliest kann man zu diesem Schluss kommen. --> Ich denke hier hat Intel (und eventuell auch die ARM-Architekten und andere) bewusst Performance über Sicherheit gesetzt. Ich kann mir nicht vorstellen dass man hier über Jahre hinweg etwas übersehen hat was meiner Meinung nach besser dokumentiert ist und gelehrt wird.

Spectre:

Hier werden bestehende Side-Channel Angriffe in Kombination mit der Sprungvorhersage geschickt ausgenutzt um auf eigentlich nicht-erreichbare Speicherbereiche des eigenen Prozesses zuzugreifen. Die eigentlichen Side-Channels sind nicht neu, neu ist jedoch die deutlich erweiterte Datenbasis auf die man nun leicht zugreifen kann. Hier geht es um Effekte die seit längerem potentiell bekannt sind (siehe auch Rowhammer), die aber erst jetzt in größerer Breite erforscht (und wahrscheinlich auch ausgenutzt) werden. Bei Angriffen dieser Klasse wurde bisher immer gedacht dass der Angriff zu komplex für eine praktische Relevanz sei. Diese Bewertung ändert sich nun hoffentlich, war aber außerhalb der Sicherheitsszene meiner Meinung nach Industriestandard.

Insofern: Man sollte die beiden (eigentlich 3 wegen der Spectre-Varianten) Angriffe nicht in einen Korb werfen. Zumindest bei Meltdown kann ich mir nicht vorstellen dass diese Schwachstelle nicht bewusst in Kauf genommen wurde. Bei Spectre denke ich das sogar auch, aber kann die Entscheidung viel besser nachvollziehen, weil eine vollständige Vermeidung solcher Schwachstellen mit heutiger Technik (dazu zählt z.B. auch die Art des verwendeten RAM) wirklich schwierig sein kann.
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Viel Wirbel um nichts würde ich mal sagen und MS versucht das ganze auch noch auszunutzen aber so ist die Firmenwelt nun mal :-)
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Wir geben unser Bestes :top:
An der Stelle eine Entschuldigung für die Wall of Text, aber der Artikel richtet sich auch an Leute mit wenig Vorkenntnissen und endet auf einem Niveau, das bestens ausgebildete Experten 20 Jahre übersehen haben. Vor die Wahl gestellt, entweder zahlreiche wichtige Aspekte rauszukürzen, oder ein möglichst informatives Gesamtbild zusammenzustellen, habe ich mich diesmal für letztere Option entschieden – auch wenn es immer heißt, dass typische Online-Leser nach 1.000-2.000 Zeichen aufgeben (das hier sind 24.000 %-)).
Feedback zu dieser Entscheidung ist willkommen :-).
Kannst fü deinen Post nochmal in einem Tl;Dr zusammenfassen? Die Aufmerksamkeit hat nur bis zu wir geben unser bestes gereicht [emoji16]
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Wir geben unser Bestes :top:
An der Stelle eine Entschuldigung für die Wall of Text, aber der Artikel richtet sich auch an Leute mit wenig Vorkenntnissen und endet auf einem Niveau, das bestens ausgebildete Experten 20 Jahre übersehen haben. Vor die Wahl gestellt, entweder zahlreiche wichtige Aspekte rauszukürzen, oder ein möglichst informatives Gesamtbild zusammenzustellen, habe ich mich diesmal für letztere Option entschieden – auch wenn es immer heißt, dass typische Online-Leser nach 1.000-2.000 Zeichen aufgeben (das hier sind 24.000 %-)).
Feedback zu dieser Entscheidung ist willkommen :-).

Auch von meiner Seite herzlichen Dank für die top geschriebenen Background Infos. Ehrlich gesagt musste ich manche Passagen mehrfach lesen, um es halbwegs begreifen zu können. :hail:

Insgesamt lässt es durchblicken, dass die Geschwindigkeitszuwächse moderner Prozessoren darauf basiert, immer präzisere Sprungvorhersagen zu machen. Wenn nun die Angriffe darauf abzielen, wäre dann die Quintessenz die, dass man eben Leistungszuwachs und Bombensicherheit gegeneinander aufwiegen muss? Irgendwie auch meh
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Wir geben unser Bestes :top:
An der Stelle eine Entschuldigung für die Wall of Text, aber der Artikel richtet sich auch an Leute mit wenig Vorkenntnissen und endet auf einem Niveau, das bestens ausgebildete Experten 20 Jahre übersehen haben. Vor die Wahl gestellt, entweder zahlreiche wichtige Aspekte rauszukürzen, oder ein möglichst informatives Gesamtbild zusammenzustellen, habe ich mich diesmal für letztere Option entschieden – auch wenn es immer heißt, dass typische Online-Leser nach 1.000-2.000 Zeichen aufgeben (das hier sind 24.000 %-)).
Feedback zu dieser Entscheidung ist willkommen :-).

Uff, doch soviel, kein Wunder das es schon so spät ist. Naja nebenbei Kernel gepatcht.

Nur eins ist mir aufgefallen, auf Seite 3 schreibst du das auch Sandbox Systeme und auch Cloud Systeme nicht sicher sind,
"Sandbox-Container eines Browsers ist ebenso wirkungslos wie die Trennung virtueller Maschinen auf einem (Cloud-)Server."
ganz am Ende schreibst du aber (wie ich mir gleich zu Anfang dachte) das virtualisierte Systeme sicher sein können.

"Prinzipbedingt sind nämlich sowohl Spectre, als auch Meltdown an eine physische CPU gebunden;"

Jeder halbwegs anständige Server hat 2 oder mehr CPUs drin. Wenn jetzt VM1 auf CPU#0 läuft und VM2 auf CPU#1 dann kann zumindest eine VM nicht auf die andere zugreifen.

Was mir auch fehlt, es gibt doch auch Server CPUs die mehrere NUMA Nodes haben. Das ist dann zwar 1 Die aber eigentlich sind 2 CPUs drin. Die sharen sich ja dann den L3 Cache wenn ich mich recht entsinne. Sind solche CPUs noch Anfällig für Meltdown/Spectre? Das dürfte ja schon ein wahnsinniger Aufwand sein da überhaupt was abzureifen wenn die VM infiziert wird.

Wie schauts dann aus wenn dann noch sowas die Docker läuft? Also Container -> VM -> Hostsystem -> physische CPU.
Wenn jetzt z.B der Anwendungs-Container infiziert wird hab ich nur noch Spaghetti vor Augen um da zB. auf die Datenbank in einem anderen Container zuzugreifen, selbst wenn die am Ende auf dem selben Host laufen.
Ohne Dokumentation blickt da irgendwann auch kein Admin mehr durch ^^ und da muss dann Spectre explizit auf den Prozess angepasst werden? Ich glaube es wäre effizienter und einfacher ins Rechenzentrum einzubrechen und alles auf nen Stick zu kopieren.
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Der Artikel erklärt die Problematik wirklich gut und findet in meinen Augen einen schönen Kompromiss zwischen Abstraktion und Genauigkeit. Allein der Grundton gefällt mir nicht. Schauen wir uns die Lücken mal getrennt an.

Meltdown:

Hier wurde von (im Wesentlichen) Intel ein Permission-Check ausgelassen, der den Privilege Level auch auf alternativen Pfaden prüfen müsste. Das man dieses tun muss war meiner Meinung nach auch vor über einem Dutzend Jahren schon Teil des Kanons zum CPU-Design. Auch wenn man die lkml (und damit meine ich nicht nur Linus' Post der weite Kreise zog, sondern auch ein paar andere) zu diesem Thema querliest kann man zu diesem Schluss kommen. --> Ich denke hier hat Intel (und eventuell auch die ARM-Architekten und andere) bewusst Performance über Sicherheit gesetzt. Ich kann mir nicht vorstellen dass man hier über Jahre hinweg etwas übersehen hat was meiner Meinung nach besser dokumentiert ist und gelehrt wird.

Das Privilege Level geprüft werden, ist Kanon. Sonst würden sie gar nicht funktionieren. Aber muss man sie vor der eigentlichen Berechnung prüfen oder reicht eine Prüfung vor Freigabe des Ergebnisses? Die bisherigen Sicherheitsüberlegungen setzten nur letzteres voraus: War eine spekulative Berechnung unnötig, illegitim oder ist aus irgend einem anderen Grund nicht verwertbar, gibt es einen Rollback zum vorhergehenden Systemzustand und es gibt keine Spuren, das überhaupt eine Berechnung stattgefunden hat. Dieses Verfahren galt sowohl auf Seiten der CPU- als auch Software-Entwickler als absolut sicher. Das die physischen Prozesse deutlich weniger klar sind als dieser nominellen Ablauf der Systemlogik wurde ignoriert.

Ich glaube aber nicht, dass das eine bewusste Entscheidung war – eben weil die gesamte IT-Welt nur in deterministischen Abläufen denkt und selten ein Bewusstsein für die physischen Vorgänge eine Ebene tiefer hat. Mein Tip: Die Cache-Designer haben daran gearbeitet, möglichst alle Prozesse zu beschleunigen, die Entwickler der Sprungvorhersage haben daran gearbeitet, möglichst effizient Instruktionen zu beschleunigen und alle Sicherheitsfragen wurden beim OoO-Management angesiedelt, weil dieses ja als Gate-Keeper "alle" Wege bewacht, über die Prozesse an Informationen gelangen. Dummerweise hat die Scheduler-Entwickler aber nie einen Grund, sich mit der Arbeitsweise des L3-Caches oder den Möglichkeiten der Sprungvorhersage auseinanderzusetzen...


Kannst fü deinen Post nochmal in einem Tl;Dr zusammenfassen? Die Aufmerksamkeit hat nur bis zu wir geben unser bestes gereicht [emoji16]

Das war das TL;DR :-)


Auch von meiner Seite herzlichen Dank für die top geschriebenen Background Infos. Ehrlich gesagt musste ich manche Passagen mehrfach lesen, um es halbwegs begreifen zu können. :hail:

Welche Passagen waren das? (Und wieso?) Dann kann ich sehen, ob ich die fürs Print-Heft besser hinbekomme :-)


Uff, doch soviel, kein Wunder das es schon so spät ist. Naja nebenbei Kernel gepatcht.

Nur eins ist mir aufgefallen, auf Seite 3 schreibst du das auch Sandbox Systeme und auch Cloud Systeme nicht sicher sind,
"Sandbox-Container eines Browsers ist ebenso wirkungslos wie die Trennung virtueller Maschinen auf einem (Cloud-)Server."
ganz am Ende schreibst du aber (wie ich mir gleich zu Anfang dachte) das virtualisierte Systeme sicher sein können.

"Prinzipbedingt sind nämlich sowohl Spectre, als auch Meltdown an eine physische CPU gebunden;"

Jeder halbwegs anständige Server hat 2 oder mehr CPUs drin. Wenn jetzt VM1 auf CPU#0 läuft und VM2 auf CPU#1 dann kann zumindest eine VM nicht auf die andere zugreifen.

Was mir auch fehlt, es gibt doch auch Server CPUs die mehrere NUMA Nodes haben. Das ist dann zwar 1 Die aber eigentlich sind 2 CPUs drin. Die sharen sich ja dann den L3 Cache wenn ich mich recht entsinne. Sind solche CPUs noch Anfällig für Meltdown/Spectre? Das dürfte ja schon ein wahnsinniger Aufwand sein da überhaupt was abzureifen wenn die VM infiziert wird.

Wie schauts dann aus wenn dann noch sowas die Docker läuft? Also Container -> VM -> Hostsystem -> physische CPU.
Wenn jetzt z.B der Anwendungs-Container infiziert wird hab ich nur noch Spaghetti vor Augen um da zB. auf die Datenbank in einem anderen Container zuzugreifen, selbst wenn die am Ende auf dem selben Host laufen.
Ohne Dokumentation blickt da irgendwann auch kein Admin mehr durch ^^ und da muss dann Spectre explizit auf den Prozess angepasst werden? Ich glaube es wäre effizienter und einfacher ins Rechenzentrum einzubrechen und alles auf nen Stick zu kopieren.

Letzteres ist immer einfacher, es fällt aber gegebenenfalls auf, wenn die physische Firewall mit Dynamit durchtunnelt. ;-)

Zur eigentlichen Frage: Soweit ich es verstehe, sind Prozesse auf physisch distinkten CPUs voreinander sicher. Wenn also fest ein ganzer Prozesser einer VM zugewiesen wird, sollten Spectre-Angriffe aus anderen VMs auf diese unmöglich sein. Allerdings nutzt man Virtualisierung ja normalerweise, wenn die Gleichung 1 System = 1 CPU nicht aufgeht und ich weiß nicht, in wie weit die Sprungvorhersagen einzelner Kerne einer CPU untereinander Informationen austauschen. Zumindest AMD spricht ja gerne von intelligenten Netzwerken. Definitiv unsicher wird das Ganze, wenn die VMs von Kern zu Kern springen können. (Allerdings dürfte der Vorgang nutzlos langsam werden, wenn diese Wechsel zu selten stattfinden.)

Daran ändern auch Container nichts, vermutlich nicht einmal vollständige Verschlüsselungen. Das Perfide an Spectre ist, dass die eigentliche Attacke nur innerhalb der Ausführungseinheiten stattfindet – also da, wo Befehle und Daten unkodiert und ungeschützt vorliegen müssen, weil mit ihnen gearbeitet wird. Der Angreifer muss also außer der Zielapplikation keinen anderen Aspekt des Systems kennen – ob beispielsweise ein gängiger Webserver nativ auf dem komprimitierten Prozessor läuft oder in einem Container in einer VM in einem doppelt und dreifach überwachten Host, ist egal. Der Angriff arbeitet ohnehin nur mit einigen wenigen Zeilen Code des Ziels.
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Was sagt Casurin, der Experteste von allen, zu diesem Artikel?:D
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

...

Welche Passagen waren das? (Und wieso?) Dann kann ich sehen, ob ich die fürs Print-Heft besser hinbekomme :-)

...

Vorrangig der folgende Absatz bei Meltdown:

Auf Prozessor-Ebene gibt es hiervon aber eine Ausnahme: Indirekte Speicherzugriffe rufen eine bestimmte Speicher-Adresse in Abhängigkeit von einem anderen Wert auf. Beispielsweise ein bestimmtes Datenfragment im User-Space in Abhängigkeit vom Wert eines Bits im Kernel-Space. In diesem Fall wird das eigentlich unzugängliche Bit nur intern von der CPU verwendet und auch das Resultat des so initiierten Ladevorganges wird nach Feststellung der Fehlspekulation wieder verworfen, ein Lesezugriff durch den User-Space-Prozess wurde verhindert. Aber während einer spekulativen Ausführung erfasste auch das Caching-System das Datenfragment und speicherte es für eine etwaige künftige (legitime) Verwendung zwischen... .

Und die Beschriftung zum epicgames-Bild, da ist irgendwie ein Wort zuviel (vermutlich das "die"):

Auf Servern mit bestimmten Zugriffsmustern können Meltdown-Patches für die Systembelastung deutlich steigern.

Das doppelt lesen kann allerdings auch meinem Arbeitstag geschuldet sein, von daher nochmals herzlichen Dank an die Aufbereitung! :daumen:
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Schöner und informativer Artikel. Genau sowas habe ich gesucht. Nicht zu kompliziert aber trotzdem verständlich. Danke dafür. Gerne mehr davon.
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Guter Artikel, nur wenige vernachlässigbare Fehler - zB kann man mit Spectre auch im mehrstelligen MBit bereich Daten auslesen.
Wäre schön gewesen wenn das 1-2Tage nach der großen APnikmache gekommen wäre - dann hätten einige Leute - wie die folgende Antwort zeigt - nicht ne Woche lang bllshit verbreitet.

Was sagt Casurin, der Experteste von allen, zu diesem Artikel?:D

Es istz doch genau das was in den papern steht und ich auch seit ner Woche gesagt hab - was sagt der hanfvernichter dazu? Oh je - ging dien ganzes Gfrundloses gehetze und Strohmanherbeirufen nach hinten los?
 
AW: Sicherheitslücken Spectre & Meltdown: Ein Erklärungsversuch

Guter Artikel. Das Ende der Fahnenstange ist wohl noch lange nicht erreicht.
 
Zurück