内核页表隔离

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

相关

  • 嘴唇嘴唇是在人类及许多动物的脸上一个明显易见的器官,由上下两唇构成。两唇皆为凸出而柔软、并能由内部肌肉牵引而自由移动。唇是一个触觉器官,主要功能为帮助进食以及准确闭合发
  • W·格伦维尔威廉·温德汉姆·格伦维尔,第一代格伦维尔男爵,PC(William Wyndham Grenville, 1st Baron Grenville,1759年10月25日-1834年1月12日),英国辉格党政治家,在小威廉·皮特逝世后继任为
  • 维生素缺乏病维生素缺乏症(英文:Avitaminosis)是由维生素缺乏或者代谢转化(例如色氨酸转烟酸过程)缺损所引起的一系列慢性或长期的疾病,这类疾病根据与其有关的维生素的字母进行定名。与此相反
  • 1185年重要事件及趋势重要人物
  • 广宁广宁县是中国广东省肇庆市下辖的一个县。面积2380平方千米,人口54万。邮政编码526300。广宁县下辖15个镇:排沙镇、潭布镇、江屯镇、螺岗镇、北市镇、坑口镇、赤坑镇、南街镇、
  • 甲型冠状病毒属甲型冠状病毒属(学名:Alphacoronavirus、α-CoV)是冠状病毒亚科的四个属之一,为具有包膜的正链RNA病毒。冠状病毒中,本属与乙型冠状病毒属只会感染哺乳动物,此两属的许多病毒在自
  • 盖帝博物馆J·保罗·盖蒂博物馆(J. Paul Getty Museum)是一座艺术博物馆,位于美国加州洛杉矶,拥有两个馆址:盖蒂中心和盖蒂别墅。前者收藏中世纪以来的西方艺术品。估计每年有130万访客,是美
  • 圣贝尼托县圣贝尼托县(San Benito County, California)是美国加利福尼亚州的一个县,位于太平洋海岸山脉。面积3,605平方公里,根据美国2000年人口普查数字,共有人口53,234人。县治霍利斯特(Ho
  • CIOCIO可能指
  • 皮米皮米(符号 pm,英式英文:picometre、美式英文:picometer)是长度单位,1皮米相当于1米的一兆(即一万亿)分之一,即10-12米。有时在原子物理学中称为微微米(micromicron)。 米(m) · 尧米(Ym)