fbpx
Wikipedia

Aislamiento de tablas de páginas del núcleo

El aislamiento de tablas de páginas del núcleo o kernel (KPTI, antes conocido como KAISER)[1][2]​ es una característica del núcleo Linux que mitiga la vulnerabilidad de seguridad Meltdown (que afecta principalmente a las CPUs x86 de Intel)[3]​ y mejora la resistencia del núcleo ante cualquier intento de saltarse la aleatoriedad en la disposición del espacio de direcciones del núcleo (KASLR). Funciona aislando mejor las memorias del espacio de usuario y del espacio del kernel.[4][5]​ KPTI se integró en la versión 4.15 del núcleo Linux,[6]​ cuyo lanzamiento está previsto para principios de 2018, y se incorporó también como backport a los núcleos Linux 4.4.11 y 4.9.75.[7][8]Windows[9]​ y macOS[10]​ también han tenido actualizaciones similares. KPTI no pretende solucionar la vulnerabilidad Spectre.[11]

Antecedentes de KAISER editar

Los parches de KPTI se basaron en KAISER (siglas en inglés de Kernel Address Isolation to have Side-channels Efficiently Removed,[5]​ que traducido al español significa aislamiento de direcciones del núcleo para la eliminación eficiente de canales laterales), publicados en junio de 2017 cuando todavía no se conocía Meltdown. KAISER supone una mejora respecto a KASLR, una mitigación de 2014 para un problema mucho más leve.

En 2014, el núcleo Linux adoptó la aleatoriedad en la disposición del espacio de direcciones del núcleo (KASLR),[12]​ que hace más difícil explotar otras vulnerabilidades del kernel[13]​ y que depende de que los mapeos de direcciones del núcleo permanezcan ocultos ante el espacio de usuario.[14]​ Sin embargo, a pesar de que esto prohíbe el acceso a estos mapeos del núcleo, resulta que existen varios ataques de canal lateral viables en los procesadores actuales que pueden dar pie a revelar el lugar en el que se encuentra esta memoria, haciendo así posible saltarse la protección que en principio ofrece KASLR.[5][15][16][17]

Mientras que KASLR simplemente impide la fuga de datos referentes al mapeo en sí de direcciones de memoria, KAISER además impide la fuga de información contenida en esa memoria, cubriendo por tanto el caso de Meltdown.[18]

En 2017, KAISER solucionó estos problemas de KASLR eliminando el origen de la fuga de direcciones.[19]

KPTI está basado en KAISER. Si no está activado KPTI, en el momento de ejecutar código en el espacio de usuario (es decir, aplicaciones) Linux mantendría toda la memoria del kernel en tablas de páginas, aunque protegida. La ventaja estriba en que cuando la aplicación realiza una llamada al sistema en el núcleo o cuando se recibe una interrupción, las tablas de páginas del núcleo siempre están presentes, con lo cual la carga de trabajo extra relacionada con la mayoría de cambios de contexto (limpieza del TLB, intercambio de tablas de páginas, etc.) puede evitarse.[4]

KPTI y la vulnerabilidad Meltdown editar

En enero de 2018 se hizo pública la vulnerabilidad Meltdown, que se sabe que afecta a las CPUs Intel x86 y ARM Cortex A75.[20][21]​ Se trataba de una vulnerabilidad mucho más grave que el baipás a KASLR que KAISER pretendía originalmente solventar: se descubrió que el propio contenido de la memoria del kernel podía quedar expuesto, no sólo la localización de los mapeos de memoria como anteriormente se pensaba. Los parches de KAISER fueron adaptados para corregir el problema de Meltdown, y de paso recibieron el nombre KPTI.

KPTI (basado en KAISER) previene Meltdown al impedir que todas las ubicaciones protegidas se mapeen al espacio de usuario.

No hay constancia actualmente de que los procesadores AMD x86 estén afectados por Meltdown, con lo cual no necesitan KPTI para mitigar el problema.[11][22]​ Sin embargo, los procesadores AMD sí son susceptibles al baipás de KASLR cuando KPTI está desactivado.

Implementación editar

KPTI corrige estas fugas de información separando completamente las tablas de páginas del espacio de usuario de las del espacio del núcleo. En los procesadores que soportan los identificadores de contexto de proceso (PCID) puede evitarse la limpieza del TLB,[4]​ pero incluso entonces esto supone una pérdida significativa de rendimiento, particularmente con tareas donde intervienen muchas llamadas al sistema o interrupciones.[23]

En los procesadores que soportan los identificadores de contexto de proceso (PCID), se puede evitar el Translation Lookaside Buffer (TLB),[24]​ pero esto trae un costo significativo en el rendimiento, particularmente en cargas de trabajo pesadas de interrupciones y llamadas al sistema.[25]

La sobrecarga de trabajo se estableció en un 0.28 % según los autores originales de KAISER;[5]​ un desarrollador de Linux la fijó en aproximadamente un 5 % para la mayoría de tareas típicas y en un máximo de un 30 % en determinados casos aún contando con la optimización de PCID;[4]​ en el caso de la base de datos PostgreSQL el impacto en pruebas sólo de lectura en un procesador Intel Skylake fue del 7 al 17% (o del 16 al 23% sin PCID),[26]​ mientras que una evaluación completa de pruebas de referencia arrojaba una caída de rendimiento de entre el 13 y el 19% (Coffee Lake frente a Broadwell-E).[27]Phoronix ha realizado muchas pruebas de referencia[28][29][30]​ en las que Redis perdía un 6-7 % de rendimiento[27]​ mientras que la compilación del núcleo Linux se ralentizaba en un 5 % en Haswell.[31]

KPTI puede desactivarse parcialmente con la opción "nopti" de arranque del núcleo. También se han añadido medios para desactivar KPTI en caso de que futuros procesadores corrijan las fugas de información descritas.[1]

Referencias editar

  1. Corbet, Jonathan (20 de diciembre de 2017). «The current state of kernel page-table isolation». LWN.net (en inglés). 
  2. Cimpanu, Catalin (3 de enero de 2018). «OS Makers Preparing Patches for Secret Intel CPU Security Bug». Bleeping Computer (en inglés estadounidense). 
  3. «Spectre, Meltdown: Critical CPU Security Flaws Explained - ExtremeTech». ExtremeTech (en inglés estadounidense). 4 de enero de 2018. Consultado el 5 de enero de 2018. 
  4. Corbet, Jonathan (15 de noviembre de 2017). «KAISER: hiding the kernel from user space». LWN.net (en inglés). 
  5. Gruss, Daniel; Lipp, Moritz; Schwarz, Michael; Fellner, Richard; Maurice, Clémentine; Mangard, Stefan (24 de junio de 2017). KASLR is Dead: Long Live KASLR. Engineering Secure Software and Systems 2017 (en inglés). 
  6. Corbet, Jonathan (20 de diciembre de 2017). «Kernel page-table isolation merged». LWN.net (en inglés). 
  7. Kroah-Hartman, Greg (2 de enero de 2018). «Linux 4.14.11 Changelog». kernel.org (en inglés). 
  8. Kroah-Hartman, Greg (5 de enero de 2018). «Linux 4.9.75 Changelog». kernel.org (en inglés). 
  9. Alex Ionescu [@aionescu] (14 de noviembre de 2017). «Windows 17035 Kernel ASLR/VA Isolation In Practice». X (antes Twitter) (tuit) (en inglés). 
  10. «Apple has already partially implemented fix in macOS for 'KPTI' Intel CPU security flaw». AppleInsider (en inglés estadounidense). Consultado el 3 de enero de 2018. 
  11. Coldewey, Devin (4 de enero de 2018). «Kernel panic! What are Meltdown and Spectre, the bugs affecting nearly every computer and device?». TechCrunch (en inglés). 
  12. «Linux kernel 3.14, Section 1.7. Kernel address space randomization». kernelnewbies.org (en inglés). 30 de marzo de 2014. Consultado el 2 de abril de 2014. 
  13. Bhattacharjee, Abhishek; Lustig, Daniel (29 de septiembre de 2017). Architectural and Operating System Support for Virtual Memory (en inglés). Morgan & Claypool Publishers. p. 56. ISBN 9781627059336. 
  14. Kerner, Sean Michael (3 de enero de 2018). «KPTI Intel Chip Flaw Exposes Security Risks». eWEEK (en inglés estadounidense). 
  15. Jang, Yeongjin; Lee, Sangho; Kim, Taesoo (2016). «Breaking Kernel Address Space Layout Randomization with Intel TSX». 2016 ACM SIGSAC Conference on Computer and Communications Security. CCS '16 (en inglés) (New York, NY, USA: ACM): 380-392. ISBN 9781450341394. doi:10.1145/2976749.2978321. 
  16. Gruss, Daniel; Maurice, Clémentine; Fogh, Anders; Lipp, Moritz; Mangard, Stefan (2016). «Prefetch Side-Channel Attacks: Bypassing SMAP and Kernel ASLR». 2016 ACM SIGSAC Conference on Computer and Communications Security. CCS '16 (en inglés) (New York, NY, USA: ACM): 368-379. ISBN 9781450341394. doi:10.1145/2976749.2978356. 
  17. Hund, R.; Willems, C.; Holz, T. (Mayo de 2013). «Practical Timing Side Channel Attacks against Kernel Space ASLR». 2013 IEEE Symposium on Security and Privacy (en inglés): 191-205. doi:10.1109/sp.2013.23. 
  18. «Meltdown» (en inglés). 
  19. «KASLR is Dead: Long Live KASLR» (en inglés). 
  20. «Spectre, Meltdown: Critical CPU Security Flaws Explained - ExtremeTech». ExtremeTech (en inglés estadounidense). 4 de enero de 2018. Consultado el 5 de enero de 2018. 
  21. Coldewey, Devin (4 de enero de 2018). «Kernel panic! What are Meltdown and Spectre, the bugs affecting nearly every computer and device?». TechCrunch (en inglés). 
  22. «An Update on AMD Processor Security». AMD (en inglés). 4 de enero de 2018. 
  23. Leyden, John; Williams, Chris (2 de enero de 2018). «Kernel-memory-leaking Intel processor design flaw forces Linux, Windows redesign». The Register (en inglés). 
  24. «KAISER: hiding the kernel from user space [LWN.net]». lwn.net. Consultado el 16 de enero de 2018. 
  25. «Kernel-memory-leaking Intel processor design flaw forces Linux, Windows redesign» (en inglés). Consultado el 16 de enero de 2018. 
  26. Freund, Andres (2 de enero de 2018). «heads up: Fix for intel hardware bug will lead to performance regressions». PostgreSQL development mailing list (pgsql-hackers) (en inglés). 
  27. Larabel, Michael (2 de enero de 2018). «Initial Benchmarks Of The Performance Impact Resulting From Linux's x86 Security Changes». Phoronix (en inglés). 
  28. Larabel, Michael (2 de enero de 2018). «Linux Gaming Performance Doesn't Appear Affected By The x86 PTI Work». Phoronix (en inglés). 
  29. Larabel, Michael (3 de enero de 2018). «VM Performance Showing Mixed Impact With Linux 4.15 KPTI Patches - Phoronix». Phoronix (en inglés). 
  30. Larabel, Michael (3 de enero de 2018). «Further Analyzing The Intel CPU "x86 PTI Issue" On More Systems». Phoronix (en inglés). 
  31. Velvindron, Loganaden (4 de enero de 2018). «Linux KPTI performance hit on real workloads». Loganaden Velvindron (en inglés). Consultado el 5 de enero de 2018. 

Enlaces externos editar

  • Documentación de los parches KPTI (en inglés)
  •   Datos: Q47001556

aislamiento, tablas, páginas, núcleo, este, artículo, sección, tiene, estilo, difícil, entender, para, lectores, interesados, tema, puedes, favor, edítalo, contribuye, hacerlo, más, accesible, para, público, general, eliminar, detalles, técnicos, interesan, es. Este articulo o seccion tiene un estilo dificil de entender para los lectores interesados en el tema Si puedes por favor editalo y contribuye a hacerlo mas accesible para el publico general sin eliminar los detalles tecnicos que interesan a los especialistas El aislamiento de tablas de paginas del nucleo o kernel KPTI antes conocido como KAISER 1 2 es una caracteristica del nucleo Linux que mitiga la vulnerabilidad de seguridad Meltdown que afecta principalmente a las CPUs x86 de Intel 3 y mejora la resistencia del nucleo ante cualquier intento de saltarse la aleatoriedad en la disposicion del espacio de direcciones del nucleo KASLR Funciona aislando mejor las memorias del espacio de usuario y del espacio del kernel 4 5 KPTI se integro en la version 4 15 del nucleo Linux 6 cuyo lanzamiento esta previsto para principios de 2018 y se incorporo tambien como backport a los nucleos Linux 4 4 11 y 4 9 75 7 8 Windows 9 y macOS 10 tambien han tenido actualizaciones similares KPTI no pretende solucionar la vulnerabilidad Spectre 11 Indice 1 Antecedentes de KAISER 2 KPTI y la vulnerabilidad Meltdown 3 Implementacion 4 Referencias 5 Enlaces externosAntecedentes de KAISER editarLos parches de KPTI se basaron en KAISER siglas en ingles de Kernel Address Isolation to have Side channels Efficiently Removed 5 que traducido al espanol significa aislamiento de direcciones del nucleo para la eliminacion eficiente de canales laterales publicados en junio de 2017 cuando todavia no se conocia Meltdown KAISER supone una mejora respecto a KASLR una mitigacion de 2014 para un problema mucho mas leve En 2014 el nucleo Linux adopto la aleatoriedad en la disposicion del espacio de direcciones del nucleo KASLR 12 que hace mas dificil explotar otras vulnerabilidades del kernel 13 y que depende de que los mapeos de direcciones del nucleo permanezcan ocultos ante el espacio de usuario 14 Sin embargo a pesar de que esto prohibe el acceso a estos mapeos del nucleo resulta que existen varios ataques de canal lateral viables en los procesadores actuales que pueden dar pie a revelar el lugar en el que se encuentra esta memoria haciendo asi posible saltarse la proteccion que en principio ofrece KASLR 5 15 16 17 Mientras que KASLR simplemente impide la fuga de datos referentes al mapeo en si de direcciones de memoria KAISER ademas impide la fuga de informacion contenida en esa memoria cubriendo por tanto el caso de Meltdown 18 En 2017 KAISER soluciono estos problemas de KASLR eliminando el origen de la fuga de direcciones 19 KPTI esta basado en KAISER Si no esta activado KPTI en el momento de ejecutar codigo en el espacio de usuario es decir aplicaciones Linux mantendria toda la memoria del kernel en tablas de paginas aunque protegida La ventaja estriba en que cuando la aplicacion realiza una llamada al sistema en el nucleo o cuando se recibe una interrupcion las tablas de paginas del nucleo siempre estan presentes con lo cual la carga de trabajo extra relacionada con la mayoria de cambios de contexto limpieza del TLB intercambio de tablas de paginas etc puede evitarse 4 KPTI y la vulnerabilidad Meltdown editarEn enero de 2018 se hizo publica la vulnerabilidad Meltdown que se sabe que afecta a las CPUs Intel x86 y ARM Cortex A75 20 21 Se trataba de una vulnerabilidad mucho mas grave que el baipas a KASLR que KAISER pretendia originalmente solventar se descubrio que el propio contenido de la memoria del kernel podia quedar expuesto no solo la localizacion de los mapeos de memoria como anteriormente se pensaba Los parches de KAISER fueron adaptados para corregir el problema de Meltdown y de paso recibieron el nombre KPTI KPTI basado en KAISER previene Meltdown al impedir que todas las ubicaciones protegidas se mapeen al espacio de usuario No hay constancia actualmente de que los procesadores AMD x86 esten afectados por Meltdown con lo cual no necesitan KPTI para mitigar el problema 11 22 Sin embargo los procesadores AMD si son susceptibles al baipas de KASLR cuando KPTI esta desactivado Implementacion editarKPTI corrige estas fugas de informacion separando completamente las tablas de paginas del espacio de usuario de las del espacio del nucleo En los procesadores que soportan los identificadores de contexto de proceso PCID puede evitarse la limpieza del TLB 4 pero incluso entonces esto supone una perdida significativa de rendimiento particularmente con tareas donde intervienen muchas llamadas al sistema o interrupciones 23 En los procesadores que soportan los identificadores de contexto de proceso PCID se puede evitar el Translation Lookaside Buffer TLB 24 pero esto trae un costo significativo en el rendimiento particularmente en cargas de trabajo pesadas de interrupciones y llamadas al sistema 25 La sobrecarga de trabajo se establecio en un 0 28 segun los autores originales de KAISER 5 un desarrollador de Linux la fijo en aproximadamente un 5 para la mayoria de tareas tipicas y en un maximo de un 30 en determinados casos aun contando con la optimizacion de PCID 4 en el caso de la base de datos PostgreSQL el impacto en pruebas solo de lectura en un procesador Intel Skylake fue del 7 al 17 o del 16 al 23 sin PCID 26 mientras que una evaluacion completa de pruebas de referencia arrojaba una caida de rendimiento de entre el 13 y el 19 Coffee Lake frente a Broadwell E 27 Phoronix ha realizado muchas pruebas de referencia 28 29 30 en las que Redis perdia un 6 7 de rendimiento 27 mientras que la compilacion del nucleo Linux se ralentizaba en un 5 en Haswell 31 KPTI puede desactivarse parcialmente con la opcion nopti de arranque del nucleo Tambien se han anadido medios para desactivar KPTI en caso de que futuros procesadores corrijan las fugas de informacion descritas 1 Referencias editar a b Corbet Jonathan 20 de diciembre de 2017 The current state of kernel page table isolation LWN net en ingles Cimpanu Catalin 3 de enero de 2018 OS Makers Preparing Patches for Secret Intel CPU Security Bug Bleeping Computer en ingles estadounidense Spectre Meltdown Critical CPU Security Flaws Explained ExtremeTech ExtremeTech en ingles estadounidense 4 de enero de 2018 Consultado el 5 de enero de 2018 a b c d Corbet Jonathan 15 de noviembre de 2017 KAISER hiding the kernel from user space LWN net en ingles a b c d Gruss Daniel Lipp Moritz Schwarz Michael Fellner Richard Maurice Clementine Mangard Stefan 24 de junio de 2017 KASLR is Dead Long Live KASLR Engineering Secure Software and Systems 2017 en ingles Corbet Jonathan 20 de diciembre de 2017 Kernel page table isolation merged LWN net en ingles Kroah Hartman Greg 2 de enero de 2018 Linux 4 14 11 Changelog kernel org en ingles Kroah Hartman Greg 5 de enero de 2018 Linux 4 9 75 Changelog kernel org en ingles Alex Ionescu aionescu 14 de noviembre de 2017 Windows 17035 Kernel ASLR VA Isolation In Practice X antes Twitter tuit en ingles Apple has already partially implemented fix in macOS for KPTI Intel CPU security flaw AppleInsider en ingles estadounidense Consultado el 3 de enero de 2018 a b Coldewey Devin 4 de enero de 2018 Kernel panic What are Meltdown and Spectre the bugs affecting nearly every computer and device TechCrunch en ingles Linux kernel 3 14 Section 1 7 Kernel address space randomization kernelnewbies org en ingles 30 de marzo de 2014 Consultado el 2 de abril de 2014 Bhattacharjee Abhishek Lustig Daniel 29 de septiembre de 2017 Architectural and Operating System Support for Virtual Memory en ingles Morgan amp Claypool Publishers p 56 ISBN 9781627059336 Kerner Sean Michael 3 de enero de 2018 KPTI Intel Chip Flaw Exposes Security Risks eWEEK en ingles estadounidense Jang Yeongjin Lee Sangho Kim Taesoo 2016 Breaking Kernel Address Space Layout Randomization with Intel TSX 2016 ACM SIGSAC Conference on Computer and Communications Security CCS 16 en ingles New York NY USA ACM 380 392 ISBN 9781450341394 doi 10 1145 2976749 2978321 Gruss Daniel Maurice Clementine Fogh Anders Lipp Moritz Mangard Stefan 2016 Prefetch Side Channel Attacks Bypassing SMAP and Kernel ASLR 2016 ACM SIGSAC Conference on Computer and Communications Security CCS 16 en ingles New York NY USA ACM 368 379 ISBN 9781450341394 doi 10 1145 2976749 2978356 Hund R Willems C Holz T Mayo de 2013 Practical Timing Side Channel Attacks against Kernel Space ASLR 2013 IEEE Symposium on Security and Privacy en ingles 191 205 doi 10 1109 sp 2013 23 Meltdown en ingles KASLR is Dead Long Live KASLR en ingles Spectre Meltdown Critical CPU Security Flaws Explained ExtremeTech ExtremeTech en ingles estadounidense 4 de enero de 2018 Consultado el 5 de enero de 2018 Coldewey Devin 4 de enero de 2018 Kernel panic What are Meltdown and Spectre the bugs affecting nearly every computer and device TechCrunch en ingles An Update on AMD Processor Security AMD en ingles 4 de enero de 2018 Leyden John Williams Chris 2 de enero de 2018 Kernel memory leaking Intel processor design flaw forces Linux Windows redesign The Register en ingles KAISER hiding the kernel from user space LWN net lwn net Consultado el 16 de enero de 2018 Kernel memory leaking Intel processor design flaw forces Linux Windows redesign en ingles Consultado el 16 de enero de 2018 Freund Andres 2 de enero de 2018 heads up Fix for intel hardware bug will lead to performance regressions PostgreSQL development mailing list pgsql hackers en ingles a b Larabel Michael 2 de enero de 2018 Initial Benchmarks Of The Performance Impact Resulting From Linux s x86 Security Changes Phoronix en ingles Larabel Michael 2 de enero de 2018 Linux Gaming Performance Doesn t Appear Affected By The x86 PTI Work Phoronix en ingles Larabel Michael 3 de enero de 2018 VM Performance Showing Mixed Impact With Linux 4 15 KPTI Patches Phoronix Phoronix en ingles Larabel Michael 3 de enero de 2018 Further Analyzing The Intel CPU x86 PTI Issue On More Systems Phoronix en ingles Velvindron Loganaden 4 de enero de 2018 Linux KPTI performance hit on real workloads Loganaden Velvindron en ingles Consultado el 5 de enero de 2018 Enlaces externos editarDocumentacion de los parches KPTI en ingles Esta obra contiene una traduccion derivada de Kernel page table isolation de Wikipedia en ingles concretamente de esta version publicada por sus editores bajo la Licencia de documentacion libre de GNU y la Licencia Creative Commons Atribucion CompartirIgual 4 0 Internacional nbsp Datos Q47001556 Obtenido de https es wikipedia org w index php title Aislamiento de tablas de paginas del nucleo amp oldid 125826667, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos