内核页表隔离

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

相关

  • 海藻糖海藻糖(Trehalose)是自然界的动植物和微生物中广泛存在的一种双糖,它是由2个葡萄糖通过 α,α-1,1-糖苷键所形成的非还原性糖,按其化学结构可写成 α-D-吡喃葡萄糖基-(1→1)-α-
  • 国家安监总局1999年规定:印章直径5厘米,中央刊国徽,由国务院制发。国家安全生产监督管理总局徽标国家安全生产监督管理总局(官方英文译名:State Administration of Work Safety,简称国家安监总
  • 高屏铁路捷运化高雄潮州铁路捷运化计划,简称潮州计划,又称屏潮计划,是由交通部铁路改建工程局所承办的工程,该计划纳入新十大建设之台铁捷运化范围内。计划范围始于屏东车站北方,止于潮州车站南
  • 二乙胺二乙胺是一种有机化合物,化学式为(CH3CH2)2NH,是一种仲胺。它是可燃性的弱碱性液体,和大部分溶剂混溶。乙醇在催化剂的存在下和氢及氨反应,将产物精馏可以得到二乙胺。
  • 罗定罗定市,是中国广东省下辖的县级市,广东省财政省直管县之一,位于广东省的西部,罗定江流域。是广东省首批历史文化名城。罗定是西南诸省区进入广东的门户之一,也是广东向中国大西南
  • 教育经济学教育经济学(education economics)是研究教育中经济学规律的学科,是经济学的一支。研究主题包括教育成本、教育效益、教育评价、教育产业等等,该学科的目的主要希望能在护持教育
  • 卡多卡多县(Caddo County, Oklahoma)是美国奥克拉荷马州西部的一个县。面积3,342平方公里。根据美国2000年人口普查,共有人口30,150人。县治阿纳达科 (Anadarko)。成立于1901年8月6
  • 艾塞克斯级埃塞克斯级航空母舰(英语:Essex-class aircraft carrier)是美国在第二次世界大战前后建造的航空母舰。她们是美国史上建造数量最多的大型航空母舰,并在太平洋战争及朝鲜战争担当
  • 约翰内斯·司各特·爱留根纳裘安纳·斯哥德·艾儒吉纳(英语:Johannes Scotus Eriugena, c. 815 – c. 877),又称爱留根纳(Eriugena)是爱尔兰的新柏拉图主义哲学家与诗人。他因为译注亚略巴古的伪丢尼修(Pseudo-
  • 曰部曰部,为汉字索引中的部首之一,康熙字典214个部首中的第七十三个(四划的则为第十三个)。就正体中文中,曰部归于四划部首。曰部通常是从上、中、下方均可为部字。且无其他部首可用