内核页表隔离

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

相关

  • 自然倾斜角休止角,亦作安息角,是斜面使置于其上的物体处于沿斜面下滑的临界状态时,与水平表面所成的最小角度(即随着倾斜角增加,斜面上的物体将越容易下滑;当物体达到开始下滑的状态时,该临
  • FeSe硒化亚铁是一种无机化合物,化学式为FeSe。在半导体中有使用。
  • 朱莉·佩耶特朱莉·帕耶特(法语:Julie Payette,1963年10月20日-),加拿大航天员和政治家,第29任加拿大总督。帕耶特1963年出生于加拿大蒙特利尔,幼时受阿波罗登月的影响梦想成为航天员。16岁时,帕
  • 1692年重要事件及趋势重要人物
  • 李昆李昆可能指下列人物:
  • 颜尼欧·莫利克奈埃尼欧·莫里科内(意大利语:Ennio Morricone,1928年11月10日-),意大利作曲家,生于罗马,曾为超过500部的电影电视写过配乐。2007年他获得奥斯卡终身成就奖,成为第二位获此殊荣的作曲家
  • 犹太新年犹太新年(希伯来语: ראש השנה‎ ro'sh ha-shānāh,岁首的意思)是提斯利月(希伯来历:Tishrei)教历七月、民历首月的首日,是人、动物和具法律效力文件的新年,同时纪念上帝创造
  • 软物质软物质是凝聚体的一个子领域,包括多种易受热应力和热涨落影响的物理状态。软物质包括液晶、胶体、高分子、泡沫、凝胶、颗粒物质(英语:granular material)和多种生物材料(英语:Bio
  • 汪耕汪耕(1927年10月-),安徽休宁人。1949年毕业于上海交通大学电机系,于1991年当选为中国科学院院士(学部委员),主管学部为技术部。他现亦为上海电机厂的高级工程师。汪耕为电机及发电机
  • 溴酸钠溴酸钠,常温下为有旋光性的无色晶体,与氯酸钠同晶型,化学式为NaBrO3,为强氧化剂,会与还原剂如硫、磷剧烈反应。它用作烫发药剂、化学试剂、分析试剂,与溴化钠混合用于溶解金。加热