{"id":199715,"date":"2018-01-13T07:50:54","date_gmt":"2018-01-13T06:50:54","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=199715"},"modified":"2018-04-09T07:53:57","modified_gmt":"2018-04-09T05:53:57","slug":"meltdown-spectre-google-patcht-cloud-ohne-leistungsverlust","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2018\/01\/13\/meltdown-spectre-google-patcht-cloud-ohne-leistungsverlust\/","title":{"rendered":"Meltdown\/Spectre: Google patcht Cloud ohne Leistungsverlust"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" title=\"Sicherheit\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline\" border=\"0\" alt=\"Sicherheit\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2015\/01\/Schutz.jpg\" width=\"42\" align=\"left\" height=\"51\"\/>Noch eine kleine Meldung im Wirrwarr um die Sicherheitsupdates zum H\u00e4rten gegen Meltdown\/Spectre-Angriffe. Google hat seine Cloud-Server gepatcht, ohne dass es zu Leistungsverlusten kam.<\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/a482d1b2ec7424093fe53c56a67519e\" width=\"1\" height=\"1\"\/>\u00dcber das Thema Leistungseinbu\u00dfen durch Sicherheitsupdates zum H\u00e4rten gegen Meltdown\/Spectre-Angriffe habe ich im Blog ja mehrfach berichtet (siehe Linkliste am Beitragsende). Bereits am Freitag hatte Google <a href=\"https:\/\/blog.google\/topics\/google-cloud\/answering-your-questions-about-meltdown-and-spectre\/\" target=\"_blank\">diesen ganz lesenswerten Beitrag<\/a> (Englisch) zum Thema Meltdown\/Spectre ver\u00f6ffentlicht, und Fragen beantwortet. Nun hat Google den n\u00e4chsten Blog-Beitrag <a href=\"https:\/\/blog.google\/topics\/google-cloud\/protecting-our-google-cloud-customers-new-vulnerabilities-without-impacting-performance\/\" target=\"_blank\">Protecting our Google Cloud customers from new vulnerabilities without impacting performance<\/a> ver\u00f6ffentlicht, der auf die Frage eingeht, wie Google Cloud-Produkte gesch\u00fctzt wurden, und wie sich das Ganze auf die Leistung auswirkt.<\/p>\n<h2>Zur Einordnung<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" src=\"https:\/\/ssl-vg03.met.vgwort.de\/na\/a482d1b2ec7424093fe53c56a67519e\" width=\"1\" height=\"1\"\/>Seit Sommer 2017 ist Insidern bekannt, dass sich Prozessoren mit den Meltdown und Spectre benannten Angriffsmethoden manipulieren lassen (wir diskutieren das erst seit dem Jahreswechsel 2017\/2018 \u00f6ffentlich). Es geht um folgendes:<\/p>\n<ul>\n<li><a href=\"https:\/\/spectreattack.com\/spectre.pdf\">Spectre<\/a> (<a href=\"https:\/\/web.archive.org\/web\/20180317083723\/https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2017-5753\">CVE-2017-5753<\/a>, <a href=\"https:\/\/web.archive.org\/web\/20180317083730\/https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2017-5715\">CVE-2017-5715<\/a>) \u2013 Variante 1 und 2: Diese beiden Varianten unterlaufen die Isolation zwischen verschiedenen Anwendungen. Angreifer k\u00f6nnen dadurch aus Programmen den Speicher anderer Tasks auslesen und so an sensitive Informationen (Zugangsdaten etc.) herankommen. Der Angriff ist so gut wie auf allen CPUs von Intel, AMD, ARM m\u00f6glich.  <\/li>\n<li><a href=\"https:\/\/meltdownattack.com\/meltdown.pdf\">Meltdown<\/a> (<a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2017-5754\">CVE-2017-5754<\/a>) Variante 3: Diese Angriffsmethode scheint nur auf Intel CPUs\/Chips\u00e4tzen zu funktionieren und verwendet einen spekulativen Seitenangriff. Damit durchbricht der Angriff die Isolierung zwischen Benutzeranwendungen und dem Betriebssystem. Dieser Angriff erm\u00f6glicht es einem Programm, auf den Speicher und damit auch auf die Daten anderer Programme und des Betriebssystems zuzugreifen. <\/li>\n<\/ul>\n<p>\u00dcber die Links lassen sich die betreffenden PDF-Dokumente abrufen. Einige Informationen finden sich auch unter <a href=\"https:\/\/meltdownattack.com\/\">meltdownattack.com<\/a>.<\/p>\n<p><a href=\"https:\/\/meltdownattack.com\/\"><img loading=\"lazy\" decoding=\"async\" title=\"Meltdown\/Spectre\" alt=\"Meltdown\/Spectre\" src=\"https:\/\/i.imgur.com\/EiTnfDa.jpg\" width=\"561\" height=\"353\"\/><\/a><br \/>(Creative Commons Lizenz)<\/p>\n<p>Diese Informationen hatte ich ja in verschiedenen Blog-Beitr\u00e4gen bereits gegeben, und Google f\u00fchrt dies in ihrem Blog-Beitrag ebenfalls aus. Die Referenz ist notwendig, da sich Google im Blog-Post auf diese Informationen bezieht.<\/p>\n<h2>Arbeiten seit September 2017<\/h2>\n<p>Nachdem die Sicherheitsl\u00fccken im Sommer 2017 bekannt wurden, startete Google im&nbsp; September mit der Auslieferung von Patches gegen Meltdown (Variante 3) und Spectre (Variante 1) f\u00fcr die gesamte Infrastruktur der Google Cloud Platform (Gmail, Search und Drive). Im Oktober wurden dann verbesserte L\u00f6sungen nachgeschoben.<\/p>\n<h2>Keine wirklichen Leistungseinbu\u00dfen<\/h2>\n<p>Dank umfangreicher Performance-Tuning-Arbeiten verursachten diese Schutzma\u00dfnahmen keine sp\u00fcrbaren Auswirkungen auf die Google Cloud Platform (GCP). Es gab auch keine Ausfallzeiten f\u00fcr Nutzer, was zum Teil auf die Live-Migrationstechnologie der Google Cloud Platform zur\u00fcckzuf\u00fchren ist. Kein Google Cloud Platform-Kunde und auch kein internes Google-Team hat einen Leistungsabfall gemeldet.<\/p>\n<h2>Auswirkungen der Patches<\/h2>\n<p>W\u00e4hrend die ausgerollten L\u00f6sungen die Varianten 1 (Spectre) und 3 (Meltdown) betrafen, war von Anfang an klar, dass die Variante Spectre 2 viel schwieriger abzuschw\u00e4chen sein w\u00fcrde.<\/p>\n<p>Mehrere Monate lang schien es, dass die Deaktivierung der anf\u00e4lligen CPU-Funktionen die einzige M\u00f6glichkeit w\u00e4re, alle Google Workloads vor Spectre 2 zu sch\u00fctzen. Das w\u00fcrde aber die Leistung erheblich reduzieren, was die Anwendungen erheblich verlangsamt.<\/p>\n<p>Bei der Analyse kam Google zur Ansicht, dass nicht nicht nur erhebliche Verlangsamungen bei vielen Anwendungen auftreten w\u00fcrden. Sondern es tritt auch eine inkonsistente Performance auf, da die Geschwindigkeit einer Anwendung durch das Verhalten anderer Anwendungen, die auf demselben Kern laufen, beeinflusst werden kann. Die Einf\u00fchrung dieser Ma\u00dfnahmen h\u00e4tte sich negativ auf viele Kunden ausgewirkt.<\/p>\n<h2>Moonshot: Mit Retpoline gegen Spectre 2<\/h2>\n<p>Ich hatte im Blog ja bereits kurz Googles Technik <a href=\"https:\/\/support.google.com\/faqs\/answer\/7625886\" target=\"_blank\">Retpoline<\/a> erw\u00e4hnt, mit der sich die Meltdown- und Spectre-Angriffe aushebeln lassen. Angesichts der im vorherigen Abschnitt angesprochenen Probleme, begannen die Google Teams nach dem 'Ei des Columbus' (Moonshot) zu suchen &#8211; einer M\u00f6glichkeit, Spectre 2 ohne Hardware-Unterst\u00fctzung abzuschw\u00e4chen.<\/p>\n<p>Die L\u00f6sung kam schlie\u00dflich in Form von \"Retpoline\", einer neuartigen Software-Bin\u00e4rmodifikationstechnik, die branch-target-injection verhindert. Diese wurde von Paul Turner, einem Software-Ingenieur, der zu Googles Gruppe Technische Infrastruktur geh\u00f6rt, entwickelt.<\/p>\n<p>Mit Retpoline m\u00fcssen die spekulative Ausf\u00fchrung von Daten in der CPU oder andere Hardware-Features des Chipsatzes nicht deaktiviert werden. Stattdessen modifiziert diese Retpoline-L\u00f6sung den Programmcode, um sicherzustellen, dass die Ausf\u00fchrung nicht durch einen Angreifer beeinflusst werden kann.<\/p>\n<h2>Retpoline, genialer Ansatz <\/h2>\n<p>Retpoline erm\u00f6glichte Google die Infrastruktur durch Neucompilierung der Software zu sch\u00fctzen, ohne \u00c4nderungen am Quellcode vornehmen zu m\u00fcssen. Dar\u00fcber hinaus zeigte der Test dieser Funktion, insbesondere in Kombination mit Optimierungen wie z.B. Software Branch Prediction, dass dieser Schutz nahezu ohne Performanceverlust auskommt.<\/p>\n<blockquote>\n<p>An dieser Stelle eine Anmerkung. F\u00fcr Google lag diese L\u00f6sung (nachdem die Theorie bekannt war) auf der Hand. Denn f\u00fcr die Dienste der Google Cloud Platform verf\u00fcgt Google ja \u00fcber den Quellcode \u2013 sch\u00e4tze ich jedenfalls. Und noch etwas: Die Implementierung des Ganzen muss nur im Codegenerator-Teil des Compilers erfolgen. Der Teil, der im ersten Pass Syntax-Analysen etc. vornimmt, muss nicht einmal angefasst werden. Ich wei\u00df nicht, welche Compiler Google intern einsetzt. Kann daher auch nichts dazu sagen, wie aufw\u00e4ndig die Implementierung letztendlich war. Aber es ist zu vermuten, dass nur einzelne Routinen der Code-Generierung angefasst werden mussten. Sonst h\u00e4tte man das Ganze nicht so z\u00fcgig implementieren k\u00f6nnen. <\/p>\n<\/blockquote>\n<p>Die Google-Leute haben sofort damit begonnen, diese L\u00f6sung in der gesamten Infrastruktur einzusetzen. Zus\u00e4tzlich zur Weitergabe der Technik an Industriepartner (bereits w\u00e4hrend der Entwicklung) hat Google diese Compiler-Implementierung als <a href=\"https:\/\/support.google.com\/faqs\/answer\/7625886\" target=\"_blank\">Open Source<\/a> f\u00fcr alle Anwender offengelegt.<\/p>\n<h2>Google Cloud Platform ab Dezember 2017 gesch\u00fctzt<\/h2>\n<p>Bis Dezember 2017 hatten die Google-Leute alle Google Cloud Platform (GCP)-Dienste gegen alle drei bekannten Angriffsvarianten gesch\u00fctzt. W\u00e4hrend des gesamten Update-Prozesses galt: Google hat keine Support-Tickets bez\u00fcglich der Auswirkungen der Updates erhalten. Dies best\u00e4tigte die interne Google-Einsch\u00e4tzung, dass die eingesetzten, leistungsoptimierten Updates in der Praxis keinen wesentlichen Einfluss auf die Auslastung haben.<\/p>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>Die Google Entwickler glauben, dass der Retpoline-basierter Schutz die leistungsst\u00e4rkste L\u00f6sung f\u00fcr die Spectre-Variante 2 auf aktueller Hardware ist. Retpoline sch\u00fctzt vollst\u00e4ndig vor Variante 2, ohne die Performance der Kunden auf allen unseren Plattformen zu beeintr\u00e4chtigen. Indem Google seine Forschungsergebnisse \u00f6ffentlich zug\u00e4nglich macht, hoffen das Unternehmen, dass diese universell eingesetzt werden k\u00f6nnen, um Cloud-Dienste branchenweit zu verbessern.<\/p>\n<p>Diese Reihe von Schwachstellen war, laut Google, vielleicht die schwierigste und am schwierigsten zu behebende in einem Jahrzehnt. Sie erforderte bei Google \u00c4nderungen an vielen Schichten des Software-Stacks. Es erforderte auch eine breite Zusammenarbeit der Industrie, da das Ausma\u00df der Schwachstellen so weit verbreitet war. Aufgrund der extremen Umst\u00e4nde mit weitreichenden Auswirkungen und der Komplexit\u00e4t, die mit der Entwicklung von Korrekturen verbunden sind, war die Antwort auf dieses Problem eine der wenigen Ausnahmen, die Project Zero von seiner 90-Tage-Policy gemacht hat (die Informationen wurden n\u00e4mlich f\u00fcr ca. 6 Monate vor der \u00d6ffentlichkeit unter Verschluss gehalten).<\/p>\n<blockquote>\n<p>An dieser Stelle schie\u00dfen mir sofort ein paar Gedanken durch den Kopf. Unter Linux ist es m\u00f6glicherweise realistisch, den Quellcode f\u00fcr den Kernel sowie die weitere, per Distribution mitgelieferte Software neu zu \u00fcbersetzen und Compiler zu verwenden, die Retpoline unterst\u00fctzen. <\/p>\n<p>Und noch ein Gedanke: K\u00f6nnte Microsoft diese Retpoline-Technologie nicht in den Just in Time (JIT) Compiler der Common Language Runtime (CLR) von .NET integrieren? Dann w\u00e4ren auf einen Schlag alle .NET Framework basierenden Anwendungen, die ja managed Code verwenden, gesch\u00fctzt. Und das, ohne dass die Entwickler der Programme diese anfassen und die Anwender neue Versionen beziehen m\u00fcssten. Ein Update des .NET Framework w\u00fcrde gen\u00fcgen. Aber m\u00f6glicherweise liege ich hier falsch.<\/p>\n<\/blockquote>\n<p>Das wirft f\u00fcr mich nat\u00fcrlich einige Fragen auf, speziell, wenn ich sehe, wie der Rest des Universums mit Updates herum stoppelt. Sind die bei Apple, Microsoft, Intel, Oracle etc. alles St\u00fcmper? (<a href=\"https:\/\/www.neowin.net\/news\/google039s-meltdown-and-spectre-patch-isn039t-slowing-cloud-systems\" target=\"_blank\">via<\/a>)<\/p>\n<blockquote>\n<p>Hach, da war es wieder \u2013 ein Schnipselchen Flash-Back in meine Anfangsjahre, wo ich schon mal in den Quellcode von solchen Teilen reingeschnuppert habe, um Tools wie Disassembler zu schreiben. Und mehrere Semester Informatikvorlesungen an der Fernuni Hagen waren scheinbar nicht ganz umsonst \u2013 zumindest habe ich ein Gef\u00fchl daf\u00fcr, was die Jungs und M\u00e4dels bei Google gemacht haben \u2013 wenn das Zeugs auch \u00fcber 30 Jahre her ist und ich damals an der Theoretischen Informatik mit Turing-Beweis oder G\u00f6del-Automaten verzweifelt bin und mich gefragt habe, 'wozu brauchst Du diesen Mist?'. Drei Jahrzehnte sp\u00e4ter ist das alles in den Details zwar vergessen \u2013 und es stellt eine Herausforderung dar, die Codeausf\u00fchrungen der Gurus zu verstehen (und oft bleibt mir der Sinn verschlossen, da es seit 25 Jahren nicht mehr meine Baustelle ist). Aber ich kann als nutzloser Blogger immer noch von diesen Erfahrungen aus den Achziger Jahren profitieren <img decoding=\"async\" class=\"wlEmoticon wlEmoticon-winkingsmile\" style=\"border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none\" alt=\"Zwinkerndes Smiley\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2018\/01\/wlEmoticon-winkingsmile-1.png\"\/>.<\/p>\n<\/blockquote>\n<p><strong>\u00c4hnliche Artikel<\/strong><br \/><a href=\"https:\/\/borncity.com\/blog\/2018\/01\/03\/sicherheitslcke-bug-in-intel-cpus-bedroht-betriebssysteme\/\">Sicherheitsl\u00fccke: Bug in Intel CPUs bedroht Betriebssysteme<\/a><br \/><a href=\"https:\/\/borncity.com\/blog\/2018\/01\/09\/meltdown-spectre-leistungseinbuen-durch-patches\/\">Meltdown\/Spectre: Leistungseinbu\u00dfen durch Patches<\/a> \u2013 Teil 1<br \/><a href=\"https:\/\/borncity.com\/blog\/?p=199659\">Meltdown\/Spectre: Leistungseinbu\u00dfen durch Patches<\/a> \u2013 Teil 2<br \/><a href=\"https:\/\/borncity.com\/blog\/2018\/01\/12\/intel-fixes-gegen-meltdown-und-spectre-wegen-bugs-gestoppt\/\">Intel Fixes gegen Meltdown und Spectre wegen Bugs gestoppt<\/a><br \/><a href=\"https:\/\/borncity.com\/blog\/2018\/01\/09\/windows-updates-kb4056892-kb4056894-etc-fr-amd-temporr-zurckgezogen\/\">Windows Updates (KB4056892, KB4056894 etc.) f\u00fcr AMD tempor\u00e4r zur\u00fcckgezogen<\/a><br \/><a href=\"https:\/\/borncity.com\/blog\/2018\/01\/09\/amd-gau-av-rger-neues-zu-windows-sicherheitsupdates\/\">AMD-GAU &amp; AV-\u00c4rger: Neues zu Windows-Sicherheitsupdates<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Noch eine kleine Meldung im Wirrwarr um die Sicherheitsupdates zum H\u00e4rten gegen Meltdown\/Spectre-Angriffe. Google hat seine Cloud-Server gepatcht, ohne dass es zu Leistungsverlusten kam.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[426],"tags":[4328],"class_list":["post-199715","post","type-post","status-publish","format-standard","hentry","category-sicherheit","tag-sicherheit"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/199715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=199715"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/199715\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=199715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=199715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=199715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}