• spectre_v2启动参数

    背景 针对Meltdown && Spectre安全漏洞的V2 patch中引入了retpoline技术,启动参数也变了,主要通过spectre_v2控制,但是可选的参数众多,有点眼晕,本文分析相关原理和实现代码。...


  • Retpoline in kernel

    背景 继续Meltdown && Spectre安全漏洞的相关分析,本文关注V2 patch中引入的retpoline技术。...


  • 合入Meltdown && Spectre patch V2补丁后莫名的性能差异

    背景 最近测试Meltdown && Spectre V2...


  • EPT misconfig

    背景 前不久被问到EPT misconfig的问题,没反应过来,顺手了解了一下,记录一下。 基本概念 EPT...


  • PTI & TLB flush

    背景 本文继续分析与PTI功能相关TLB flush相关操作的基本原理、代码实现。没有完整覆盖TLB相关的所有内容,仅关注PTI相关的且个人比较疑惑的部分,当笔记。 基本原理 关于TLB和TLB...


  • Meltdown & Spectre patch v2-关闭开关后仍有40%的性能差异?

    问题 在给环境中打上了针对Meltdown&Spectre漏洞的V2版本补丁后,同时通过grub参数关闭掉所有的开关,通过unixbench工具测试系统调用,发现性能损耗达40%+?开始不相信,原因很简单,权当记笔记了。 V2版本patch 针对Meltdown&Spectre漏洞的V2版本patch,其实就是引入retpoline后的patch。主要针对Spectre V2漏洞,之前的V1版本使用的是微码(固件)+IBRS+IBPB的方式来规避的,这种方式有2个大问题:...


  • PCID & 与PTI的结合

    背景 本文继续分析与PTI功能相关的PCID feature的原理、概念、实现以及与PTI的关联。前面分析的PTI实现代码,其实只分析了最基本的框架和代码,其中一些细节比如PCID的相关实现,没有深入,本文关注相关细节。 基本原理 PCID概念...


  • PTI(page table isolation)--性能分析

    背景 本文分析PTI带来的性能损耗,从原理以及实际测试数据角度进行相关分析、记录。 PTI性能损耗原理 如之前的文章(基本原理及性能开销)说明,PTI会带来额外的性能损耗,性能损耗来自多方面,包括: 在用户态和内核态间切换时(系统调用、中断、异常),CR3操作(主要是mov...


  • PTI(page table isolation)--代码分析

    背景 本文接着前一篇(原理及性能损耗)继续分析PTI的实际代码,其实比较简单,供大家和自己后续参考。 代码分析 PTI功能的代码相对比较独立,看似跟内核中的mm基础架构紧密相关,但实际对mm的基础代码改动较少,耦合度较低,这也是其设计的美妙之处。 在kernel...


  • PTI(page table isolation)--基本原理和性能开销

    背景 2018,可视作CPU发展历史的重要节点,就是因为爆出了影响范围最广的源自CPU硬件设计的安全漏洞:Meltdown和Spectre,有关这两个漏洞说明,参见我的其他文章。而本文的焦点pti,即专门用于mitigate Meltdown漏洞。 原理 页表/进程/Meltdown相关原理...