内核页表隔离

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

相关

  • 单糖单糖(monosaccharides (源自希腊语 monos: single, sacchar: sugar), 亦称:simple sugars)是碳水化合物的一种,其结构在众多糖分子中是最简单的。味道甜美,能溶于水和会结晶。单
  • 溶组织内阿米巴溶组织内阿米巴,又称赤痢变形虫,学名 Entamoeba histolytica,是一种厌氧的原生动物,属于内阿米巴属。溶组织内阿米巴主要感染人类和其他灵长类动物,估计感染全球总人数约为50万人
  • 基督复临安息日会基督复临安息日会(英语:Seventh-day Adventist),是基督教的一个教派,源自19世纪中期美国的米勒耳派运动,该组织成立于1863年,以遵守圣经于创世纪中神所设立的每一周的第七天(即星期
  • Mg(CHsub3/sub)sub2/sub二甲基镁是一种有机镁化合物,化学式为(CH3)2Mg,为白色易自燃的固体。二甲基镁可以由不少于化学计量比的二
  • 难近母难近母(梵语:दुर्गा,孟加拉语:দুর্গা,字面意思为“不可接近的”;曾音译为突伽),现代中文发音为杜尔噶,印度教女神,性力派的重要崇拜对象。传统上被认为是湿婆之妻雪山神女
  • 约法《中华民国约法》是中华民国三年(1914年)5月1日由大总统袁世凯颁布的宪法,取代南京临时政府制定的中华民国临时约法。在当时又称作《民国三年约法》,简称《民三约法》。中国国民
  • 中部地方中部地方位于日本本州中部,为日本8大地方之一。最大都市为名古屋。中部地方包括8至10个县:下可再分四个地区:名古屋浜松静冈岐阜津新潟长野甲府金泽富山福井北陆地方与北信地方
  • 智利比索智利比索为智利流通货币。现在流通的比索发行于1975年,之前智利比索曾在1817年到1960年期间发行过。货币编号CLP。辅币单位为分,1比索=100分。
  • 杰伊·詹金斯杰伊·詹金斯(英语:Jay Jenkins,1977年10月12日-)以其艺名Jeezy (原为Young Jeezy,译为杨·吉兹)出名,是美国嘻哈歌手、嘻哈组合USDA成员、Boyz N Da Hood(英语:Boyz N Da Hood)的前成
  • 阿卜杜勒·穆奈姆·阿布福图阿卜杜勒·穆奈姆·阿布福图 (阿拉伯语:عبد المنعم ابو الفتوح عبد الهادي‎, IPA: .mw-parser-output .IPA{font-family:"Charis SIL","Doulos