Zum Inhalt springen

Kernel page-table isolation

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 4. Januar 2018 um 18:29 Uhr durch Cοlin (Diskussion | Beiträge) (Forts. der Übers.). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Kernel page-table isolation (kurz KPTI, vormals KAISER)[1] ist ein Workaround für die Meltdown genannte Sicherheitslücke in den x86-Prozessoren von Intel. Dies wird durch eine bessere Trennung zwischen Benutzerspeicher und Kernelspeicher erreicht.[2][3] KPTI wurde in den Linux-Kernel 4.15 integriert,[4] der für Anfang 2018 erwartet wird, und außerdem auf den Linux Kernel 4.14.11 zurückportiert.[5] Für Windows und macOS[6] gibt es ähnliche Updates. KPTI schützt nicht vor der Sicherheitslücke Spectre.[7]

Hintergrund

KPTI baut auf KAISER auf, einem früheren Workaround für einen weitaus geringeren Fehler, der im Juni 2017 veröffentlicht wurde als Meltdown noch nicht bekannt war.

Ohne aktivem KPTI würde Linux, bei jeder Ausführung von Code im Benutzerspeicher (Anwendungen), auch seinen gesamten Kernelspeicher in Seitentabellen verwalten, wenngleich zugriffsgeschützt. Der Vorteil hierbei ist die ständige Verfügbarkeit der Seitentabellen, falls eine Anwendung einen Kernel-Systemaufruf macht oder ein Interupt ausgelöst wird. Hierdurch kann ein durch Kontextwechsel entstehender Overhead (TLB-Flush, Seitentabellen-Swapping, usw.) vermieden werden.[2]

2014 wurde beim Linux Kernel Address Space Layout Randomization (KASLR) eingeführt,[8] der die Ausnützung anderer Schwachstellen im Kernel erschwert,[9] durch das Verstecken der Kerneladressen vor dem Benutzerspeicher. Trotz der Zugangsverhinderung zu diesen Speicherzuordnungen zum Kernel, hat sich die Verwundbarkeit durch einige Seitenkanalattacken bei modernen Prozessoren herausgestellt. Dadurch lässt sich die Adresse des Speichers ausspähen, was eine Umgehung von KASLR bedeutet.[3][10][11][12]

Im Januar 2018 wurde die Meltdown Sicherheitslücke bekannt, die weitaus schwerer wiegt, und nur Intel x86-Prozessoren betrifft.[7] Man fand heraus, dass auch der Speicherinhalt vom Kernelspeicher ausgespäht werden kann, nicht nur die Speicherzuordnungen, wie ursprünglich gedacht. Daraufhin wurden die KAISER-Patches zur Behebung dieses Fehlers umgewidmet (und zu KPTI umbenannt).

AMD x86-Prozessoren sind nicht von Meltdown betroffen, und benötigen daher auch keinen Workaround.[7][13] Allerdings sind AMD Prozessoren dennoch anfällig für die Umgehung von KASLR, falls KPTI nicht aktiv ist.

Siehe auch

Einzelnachweise

  1. Jonathan Corbet: The current state of kernel page-table isolation In: LWN.net, 20 December 2017 
  2. a b Jonathan Corbet: KAISER: hiding the kernel from user space In: LWN.net, 15 November 2017 
  3. a b Daniel Gruss, Moritz Lipp, Michael Lipp, Richard Fellner, Clémentine Maurice, Stefan Mangard: KASLR is Dead: Long Live KASLR. Engineering Secure Software and Systems 2017. 24. Juni 2017 (gruss.cc [PDF]).
  4. Jonathan Corbet: Kernel page-table isolation merged In: LWN.net, 20 December 2017 
  5. Greg Kroah-Hartman: Linux 4.14.11 Changelog. In: kernel.org.
  6. Apple has already partially implemented fix in macOS for 'KPTI' Intel CPU security flaw. In: AppleInsider. Abgerufen am 3. Januar 2018 (amerikanisches Englisch).
  7. a b c Devin Coldewey: Kernel panic! What are Meltdown and Spectre, the bugs affecting nearly every computer and device? In: TechCrunch, 4 January 2018 (englisch). 
  8. Linux kernel 3.14, Section 1.7. Kernel address space randomization. In: kernelnewbies.org. 30. März 2014, abgerufen am 2. April 2014.
  9. Abhishek Bhattacharjee, Daniel Lustig: Architectural and Operating System Support for Virtual Memory. Morgan & Claypool Publishers, 2017, ISBN 978-1-62705-933-6, S. 56 (englisch, google.com).
  10. Yeongjin Jang, Sangho Lee, Taesoo Kim: Breaking Kernel Address Space Layout Randomization with Intel TSX. ACM, New York, NY, USA 2016, ISBN 978-1-4503-4139-4, S. 380–392, doi:10.1145/2976749.2978321 (oregonstate.edu [PDF]).
  11. Daniel Gruss, Clémentine Maurice, Anders Fogh, Moritz Lipp, Stefan Mangard: Prefetch Side-Channel Attacks: Bypassing SMAP and Kernel ASLR. ACM, New York, NY, USA 2016, ISBN 978-1-4503-4139-4, S. 368–379, doi:10.1145/2976749.2978356 (gruss.cc [PDF]).
  12. R. Hund, C. Willems, T. Holz: Practical Timing Side Channel Attacks against Kernel Space ASLR. Mai 2013, S. 191–205, doi:10.1109/sp.2013.23 (ieee-security.org [PDF]).
  13. An Update on AMD Processor Security In: AMD, 4 January 2018