内核页表隔离

✍ dations ◷ 2025-06-29 11:03:19 #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”可以部分禁用内核页表隔离。依规定也可对已修复漏洞的新款处理器禁用内核页表隔离。

相关

  • 宗教致幻剂宗教致幻剂(英语:entheogen)是指在宗教、巫觋宗敎或者精神领域使用的精神药品。 “entheogen”一词最早在1979年作为一个中性词语提出。服用宗教致幻剂可能会使服用者感觉与神
  • 俄罗斯苏维埃联邦社会主义共和国全俄中央执行委员会全俄苏维埃代表大会(1917–1938)最高苏维埃(1938–1990)俄罗斯苏维埃联邦社会主义共和国(俄语:Российская Советская Федеративн
  • 前世回溯前世回溯(英语:Past life regression), 又称前世催眠(英语:Past life hypnosis),是一种记忆回溯,指透过催眠或其他的方式, 从大脑的潜意识中,回溯人们对前世的经历及记忆。前世催眠是透
  • 脚气脚气可能指:
  • 蕈类(注音:ㄒㄩㄣˋㄌㄟˋ;拼音:xùn lèi),通称蘑菇、菇类,是大型、高等的真菌,子实体通常肉眼可见。菌丝具横隔壁,将菌丝分隔成多细胞。不过,蘑菇一词通常是对蘑菇属(Agaricus)部分食
  • 电梯电梯可以指:
  • 基础医学院北京大学基础医学院是隶属于北京大学医学部的一所学院,正式成立于2000年。前身是1954年9月14日成立的北京医学院基础医学部,1960年2月改名基础医学系。1985年5月北京医科大学
  • 徐国,是西周、春秋时代的诸侯国之一,国君为嬴姓。又称徐戎,亦称徐夷或徐方,为东夷集团之一。夏代至周代,分布在今山东郯城一带。在周穆王时期,才肯臣服于周朝。周初,以今安徽泗县、
  • 拟人化拟人论(Anthropomorphism)是一种拟人法(personification、prosopopoeia)(或称“智慧体化”)的使用,将人类(或称“智慧体”)的形态、外观、特征、情感、性格特质套用到非人类的生物、
  • 氮丙环氮丙环,也称环乙亚胺、氮杂环丙烷、吖丙啶、环乙胺、氮丙啶、乙烯亚胺,是氮原子取代环丙烷的一个碳原子形成的杂环化合物,分子式为C2H5N。氮丙环在室温下是无色易流动的液体,有