Drucksache: Windows Developer 3.19 - CPU-Schwachstellen im Überblick
Im Windows Developer 3.19 ist ein Artikel über CPU-Schwachstellen erschienen. Spectre und Meltdown sind zwar die bekanntesten, aber leider nicht die einzigen.
Nachtrag 10.5.2019:
Der Artikel wurde auch
auf entwickler.de
veröffentlicht.
Ende des Nachtrags
Worum geht es darin?
Die Anfang 2018 bekannt gewordenen CPU-Schwachstellen Spectre und Meltdown sind ein großes Problem. Und nachdem immer mehr Spectre-Varianten auftauchen sieht es fast so aus, als wäre das nicht nur die Spitze des sprichwörtlichen Eisbergs. Aber auch wenn es scheinen mag: Es gibt noch ein paar andere Schwachstellen in den CPUs.
Haben Sie vor 2018 schon mal was von CPU-Schwachstellen gehört?
Klar, es gab 1994 den FDVI-Bug im Intel Pentium, durch den der sich bei bestimmten Gleitkomma-Divisionen verrechnete. Aber das war ein Fehler, keine Schwachstelle - darüber ließ sich kein Schaden anrichten.
Es gab Schwachstellen in der Intel Management Engine und der Firmware (siehe z.B. meinen Artikel im Windows Developer 5.2018 [63]), aber in der CPU selbst kann ich mich nur an Fehler erinnern. Und Google liefert da auch nicht so besonders viel zu, wenn man die Suche auf die Zeit vor Januar 2018 beschränkt.
Und jetzt haben wir Spectre und Meltdown, dazu im Fall von Spectre in zig Varianten. Und ein paar weitere, davon unabhängige Schwachstellen. Und das alles innerhalb eines Jahres. Und ich fürchte wie anfangs schon geschrieben, dass da noch viele weitere Schwachstellen und Angriffe folgen werden.
Das alles musste ja nun wirklich nicht sein. Aber wenn man es realistisch betrachtet, musste es irgendwann so kommen.
Schwachstellen sind immer auch Fehler, sie unterscheiden sich davon nur dadurch, dass ein Angreifer sie für seine Zwecke ausnutzen kann. Und Fehler in Software werden ja gerne damit erklärt, dass die so komplex ist, dass sie sich einfach nicht vermeiden lassen.
CPUs sind noch viel komplexer, warum sollten sie also keine Fehler enthalten? Und warum sollten diese Fehler alle "nur" Fehler sein und nicht einige davon ausnutzbare Schwachstellen? Nur hat sich halt bisher niemand näher damit beschäftigt.
Aber es ist gut, dass sich das geändert hat. Es ist immer noch besser, die Sicherheitsforscher finden die Schwachstellen und melden sie zur Korrektor an die Hersteller, als wenn Cyberkriminelle oder Geheimdienste sie finden, geheim halten und für ihre Angriffe ausnutzen.
Links & Literaturverweise
Und hier noch die Links und Literaturverweise aus dem Artikel:
- [1] Eilers, Carsten: "Neue Gefahren für die CPU", Windows Developer 4.2018
- [2] Meltdown
- [3] Spectre
- [4] CVE-2017-5753
- [5] Kocher, Paul; Genkin, Daniel; Gruss, Daniel; Haas, Werner; Hamburg, Mike; Lipp, Moritz; Mangard, Stefan; Prescher, Thomas; Schwarz, Michael; Yarom, Yuval: "Spectre Attacks: Exploiting Speculative Execution" (PDF)
- [6] CVE-2017-5715
- [7] CVE-2017-5754
- [8] Lipp, Moritz; Schwarz, Michael; Gruss, Daniel; Prescher, Thomas; Haas, Werner; Mangard, Stefan; Kocher, Paul; Genkin, Daniel; Yarom, Yuval; Hamburg, Mike: "Meltdown" (PDF)
- [9] Galowicz, Jacek; Cyberus Technology: "Meltdown"
- [10] Fogh, Anders; Cyber.WTF: "Negative Result: Reading Kernel Memory From User Mode"
- [11] AV-TEST GmbH (@avtestorg) auf Twitter: "[UPDATE: 2018-02-01] #Spectre & #Meltdown: So far, the AV-TEST Institute discovered 139 samples ..."
- [12] Chen, Guoxing; Chen, Sanchuan; Xiao, Yuan; Zhang, Yinqian; Lin, Zhiqiang; Lai, Ten H.: "SgxPectre Attacks: Stealing Intel Secrets from SGX Enclaves via Speculative Execution"
- [13] O'Keeffe, Dan; Muthukumaran, Divya; Aublin, Pierre-Louis; Kelbert, Florian; Priebe, Christian; Lind, Josh; Zhu, Huanzhou; Pietzuch, Peter: "SGXSpectre"
- [14] Trippel, Caroline; Lustig, Daniel; Martonosi, Margaret: "MeltdownPrime and SpectrePrime: Automatically-Synthesized Attacks Exploiting Invalidation-Based Coherence Protocols"
- [15] Krzanich, Brian; Intel: "Advancing Security at the Silicon Level"
- [16] Intel: "Microcode Revision Guidance, April 2 2018" (PDF)
- [17] Chrome Releases: Stable Channel Update for Desktop; Tuesday, May 29, 2018
- [18] The Chromium Projects: "Chromium > Chromium Security > Site Isolation"
- [19] Hadad, Noam; Afek, Jonathan; Aleph Security: "Overcoming (some) Spectre browser mitigations"
- [20] Torvalds, Linus; Linux-Kernel Majordomo List: "STIBP by default.. Revert?" ff.
- [21] Torvalds, Linus; kernel/git/torvalds/linux.git: "Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip"
- [22] AMDFLAWS - Severe Security Advisory on AMD Processors
- [23] Papermaster, Mark; AMD Corporate Blog: "Initial AMD Technical Assessment of CTS Labs Research"
- [24] CVE-2018-8930
- [25] CVE-2018-8931
- [26] CVE-2018-8932
- [27] CVE-2018-8933
- [28] CVE-2018-8934
- [29] CVE-2018-8935
- [30] CVE-2018-8936
- [31] Schmidt, Jürgen; c't: "Super-GAU für Intel: Weitere Spectre-Lücken im Anflug"
- [32] CVE-2018-3639
- [33] Intel Security Advisory INTEL-SA-00115 - "Q2 2018 Speculative Execution Side Channel Update"
- [34] Microsoft Security Advisory ADV180012 - "Microsoft Guidance for Speculative Store Bypass"
- [35] CVE-2018-3640
- [36] Microsoft Security Advisory ADV180013 - "Microsoft Guidance for Rogue System Register Read"
- [37] CVE-2018-3665
- [38] Intel Security Advisory INTEL-SA-00145 - "Lazy FP state restore"
- [39] Microsoft Security Advisory ADV180016 - "Microsoft Guidance for Lazy FP State Restore"
- [40] CVE-2018-3693
- [41] Intel Security Advisory INTEL-OSS-10002 - "Speculative Execution Branch Prediction Side Channel and Branch Prediction Analysis Method"
- [42] Microsoft Security Advisory ADV180002 - "Guidance to mitigate speculative execution side-channel vulnerabilities"
- [43] Kiriansky, Vladimir; Waldspurger, Carl: "Speculative Buffer Overflows: Attacks and Defenses" (PDF)
- [44] CVE-2018-3615
- [45] Foreshadow: Breaking the Virtual Memory Abstraction with Transient Out-of-Order Execution
- [46] Intel Security Advisory INTEL-SA-00161: "Q3 2018 Speculative Execution Side Channel Update"
- [47] CVE-2018-3620
- [48] CVE-2018-3646
- [49] Eilers, Carsten: "Alles nur (ge)Cloud?"; Windows Developer 10.18
- [50] Torvalds, Linus; kernel/git/torvalds/linux.git: "Merge branch 'l1tf-final' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip"
- [51] Microsoft: August 14, 2018—KB4343900 (Monthly Rollup)
- [52] Williams, Chris; The Register: "Meet TLBleed: A crypto-key-leaking CPU attack that Intel reckons we shouldn't worry about"
- [53] Gras, Ben; Black Hat USA 2018: "TLBleed: When Protecting Your CPU Caches is Not Enough"
- [54] Schwarz, Michael; Schwarzl, Martin; Lipp, Moritz; Gruss; Daniel: "NetSpectre: Read Arbitrary Memory over Network"
- [55] Maisuradze, Giorgi; Rossow, Christian: "ret2spec: Speculative Execution Using Return Stack Bu ers" (PDF)
- [56] Koruyeh, Esmaeil Mohammadian; Khasawneh, Khaled; Song, Chengyu; Abu-Ghazaleh, Nael: "Spectre Returns! Speculation Attacks using the Return Stack Buffer"
- [57] Mambretti, Andrea; Neugschwandtner, Matthias; Sorniotti, Alessandro; Kirda, Engin; Robertson, William; Kurmus, Anil: "Let’s Not Speculate: Discovering and Analyzing Speculative Execution Attacks"
- [58] Aldaya, Alejandro Cabrera; Brumley, Billy Bob; ul Hassan, Sohaib; García, Cesar Pereida; Tuveri, Nicola: "Port Contention for Fun and Profit"
- [59] GitHub: bbbrumley/portsmash (Proof-of-Concept für PortSmash)
- [60] CVE-2018-5407
- [61] Canella, Claudio; Van Bulck, Jo; Schwarz, Michael; Lipp, Moritz; von Berg, Benjamin; Ortner, Philipp; Piessens, Frank; Evtyushkin, Dmitry; Gruss, Daniel: "A Systematic Evaluation of Transient Execution Attacks and Defenses"
- [62] Goryachy, Maxim; Ermolov, Mark; Black Hat Asia 2019: "Intel VISA: Through the Rabbit Hole"
- [63] Eilers, Carsten: "Angriffsziel Firmware"; Windows Developer 5.2018 und auf entwickler.de
- [64] Kollenda, Benjamin; Koppe, Philipp; 35C3: "Lecture: Inside the AMD Microcode ROM" (Medien)
Trackbacks