今天阅读了Jenny: Securing Syscalls for PKU-based Memory Isolation Systems论文。
这篇论文的核心在于设计一个能够安全地使用系统调用(为此需要审计每一次系统调用)的基于Intel MPK的进程内隔离机制。作者首先整理和提出了一些利用特殊系统调用绕过进程内隔离机制的攻击, 强调了本文的动机。随后, 作者总结了审计系统调用的几种常见方法, 并声称它们各有各的问题, 然后提出了如下简洁高效的方法: 用户态程序中划出一块monitor域, 并在内核的线程控制块中标识当前线程是否正处于monitor域中。当系统调用发生时, 若当前线程正处于monitor域, 则正常完成该系统调用; 否则修改后的内核直接返回用户态, 同时把控制流重定向到monitor域, 让monitor域的用户态代码审计这个系统调用(并执行)。事实上, 这一机制和Donky论文的用monitor截获系统调用的机制很像, 只不过Donky用硬件实现, 而本文只修改内核即可实现。不难想到, Donky论文和本文的作者会不会几乎是同一拨人, 而事实也确实如此。
最后, 作者基于上述机制完成了整个系统的设计与实现并进行了性能测试。
此外, 根据昨日安排, 今天赶在π节结束(AoE)前吃了学校快餐店卖的两种派。
发表评论