内核页表隔离

✍ dations ◷ 2025-02-23 22:20:20 #Linux内核功能,虚拟内存,X86架构

内核页表隔离(Kernel page-table isolation,缩写KPTI,也简称PTI,旧称KAISER)是Linux内核中的一种强化(英语:Hardening (computing))技术,旨在更好地隔离用户空间与内核空间的内存来提高安全性,缓解现代x86 CPU中的“熔毁”硬件安全缺陷。

KPTI补丁基于KAISER,它是一个用于缓解不太重要问题的早期补丁,当时业界还未了解到Meltdown的存在。

如果没有KPTI,每当执行用户空间代码(应用程序)时,Linux会在其分页表中保留整个内核内存的映射,并保护其访问。这样做的优点是当应用程序向内核发送系统调用或收到中断时,内核页表始终存在,可以避免绝大多数上下文交换相关的开销(TLB刷新、页表交换等)。

2005年,Linux内核采用了地址空间配置随机加载(KASLR)隐匿用户空间中的相关内核地址,增加了利用其他内核漏洞的难度。尽管阻止了对这些内核映射的访问,但在此后发现,现有的英特尔x86处理器(截至2017年12月)还存在着多处可能泄露这些内存位置的旁路攻击,可能绕过KASLR。AMD称其处理器不受这些攻击的影响,所以不需要KPTI作为缓解措施。

2018年1月,影响Intel x86处理器的熔毁漏洞被公布。KAISER补丁改为修复此问题,并更名为KPTI,因为新型攻击很类似,尽管更为严重。

KPTI通过完全分离用户空间与内核空间页表来解决页表泄露。支持进程上下文标识符(PCID)特性的x86处理器可以用它来避免TLB刷新,但即便如此,它依然有很高的性能成本。据KAISER原作者称,其开销为0.28%;一名Linux开发者称大多数工作负载下测得约为5%,但即便有PCID优化,在某些情况下开销高达30%。

KPTI在2018年早期被合并到Linux内核4.15版,并被反向移植到Linux内核4.14.11。Windows和macOS也发布了类似的更新。

使用内核启动选项“pti=off”可以部分禁用内核页表隔离。依规定也可对已修复漏洞的新款处理器禁用内核页表隔离。

相关

  • 人体润滑剂“人体润滑剂”是有别于机械使用,特别为人体设计的润滑剂。有分为水基、油基、硅基等种类。个人用润滑剂(personal lubricant)通常用在插入式性行为中,在阴茎插入阴道或肛门时可
  • 集体安全条约组织集体安全条约组织(CSTO ;俄语:Организация Договора о Коллективной Безопасности,缩写作 ОДКБ)是1992年5月15日签署的政府间
  • CBS NewsCBS新闻(CBS News)是指美国的电视广播网哥伦比亚广播公司(CBS)的新闻部门,也可以指出其制作播出节目的总称。CBS新闻的现任主席是杰夫·法格尔(Jeff Fager),他也是60分钟的执行制作
  • 三聚甲醛多聚甲醛(IUPAC命名Polyoxymethylene,POM)(或称聚甲醛;聚缩醛),为甲醛的聚合物(高分子量聚甲醛),一般结构长度有八到一百个单位。长链多聚甲醛常用制作于耐热塑胶, 又称聚甲醛塑胶(POE,杜
  • 高立德大学加拉德特大学(Gallaudet University)是第一所供聋人和弱听人士的高等学院,也是世界上唯一一所全部课程与服务都是为聋人或弱听学生而设的大学。该大学的命名是为了纪念对聋人教
  • 紫草紫草(学名:Lithospermum erythrorhizon)又名藐、茈草(《尔雅》)、紫丹、紫芙(《神农本草经》)、鸦衔草(《本草纲目》)。 为紫草科紫草属的植物。分布于日本、朝鲜以及中国大陆的辽宁
  • 禽类传染性支气管炎病毒传染性支气管炎病毒(Avian coronavirus、IBV)是丙型冠状病毒属的一种病毒,于1930年代即被发现,是冠状病毒中最早被发现者。此病毒可感染鸟类,造成家禽传染性支气管炎(英语:Avian in
  • 巴布拉克·卡尔迈勒巴布拉克·卡尔迈勒(普什图语:ببرک کارمل‎,1929年1月6日-1996年12月3日),阿富汗民主共和国领导人。
  • 伯顿·里克特伯顿·里克特(英语:Burton Richter,1931年3月22日-2018年7月18日),美国物理学家,1984年到1999年间担任SLAC国家加速器实验室主任。里克特带领SLAC国家加速器实验室团队与另一个由丁
  • 血栓素B2血栓素B2是血栓素A2的一种不活跃的产物,不像血栓素A2,其对血小板激活及血小板聚集没有影响。医学导航:遗传代谢缺陷代谢、k,c/g/r/p/y/i,f/h/s/l/o/e,a/u,n,mk,cgrp/y/i,f/h/s/