内核页表隔离

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

相关

  • 胃壁细胞胃壁细胞((gastric) parietal cells)又称壁细胞、泌酸细胞,为分泌盐酸及内在因子之上皮细胞。这些细胞都位于胃之胃底(gastric fundus)衬里中之胃腺体(gastric glands)里。它们含
  • 殉道者殉教,又称殉道,意指为了宗教或信仰而不畏迫害和杀戮,以致牺牲生命。最初无论是圣经还是世俗界,殉教者(martyr)一词的意思都是目击者。其新的意义取自耶稣受难。于是早期基督徒认为
  • 吉尔曼艾尔佛列·古曼·吉尔曼(英语:Alfred Goodman Gilman,1941年7月1日-2015年12月23日),美国药学和生物化学家。因发现G蛋白与马丁·罗德贝尔一起分享1994年诺贝尔生理学或医学奖。19
  • 淡水龟马里兰大学淡水龟队是美国马里兰大学在NCAA的体育代表队,拥有不同项目共20支分队。该队伍成立于1892年,后来先后是南方联盟联赛和大西洋沿岸联盟联赛的创始成员。2014年以后,该
  • 第二十第二十航空队(英语:Twentieth Air Force)是美国空军全球打击司令部下属的一个编号航空队,指挥部位于佛罗里达州的弗朗西斯.E.沃伦空军基地(英语:Francis E. Warren Air Force Base
  • 慢性病慢性病是一种持续或长期的健康状况或疾病。美国国家卫生统计中心的定义为持续超过三个月的病症,又或者是因病或先天造成的永久性伤害。常见慢性病包括恶性肿瘤、脑血管疾病、
  • 树鼩目树鼩目(学名:Scandentia),又称攀兽目,生活在东南亚的热带雨林中,有2科5属20种。树鼩目成员的外形像松鼠,但吻尖而长。树鼩目成员的齿分化不明显。树鼩目曾经被置于食虫目与灵长目,树
  • 2002年致死原因及所占比例列表下表所示为2002年全年对世界范围内的人类死亡及致死原因的统计,由上而下,按各致死原因导致的死亡人数在总死亡人数中所占比例排列。如该表所计,该年份世界死亡人口总数约为57,0
  • 金县 (华盛顿州)金县(英语:King County)是美国华盛顿州的一个县,县都西雅图。根据美国商务部2017年人口普查估算,县人口为2,188,649人,其中高加索人占61.1%、亚裔占17.4%、拉丁裔占9.5%、非裔占6.
  • 李张瑞李张瑞(1911年-1952年),台湾诗人。早年与杨炽昌等就读于台南第二中学,接触了普鲁斯特、哥德等人的作品。他是风车诗社的代表者之一,其诗富有乡土气息、同情弱者。受日本教育,不会写