【论文分享】PHMon

IoT 3周前 admin
62 0 0


【论文分享】PHMon: A Programmable Hardware Monitor and Its Security Use Cases


本次分享的论文被收录于2020的USENIX Security。


【论文分享】PHMon

 


1. Contribution


文章提出了一个可编程硬件监视器,它能监视用户定义的事件,并执行相应的操作。PHMon用于厂商在为硬件设计专用功能之前对其进行评估。

文章提供了硬件设计、内核修改支持、软件接口、和四个利用PHMon实现的use case:1. 影子栈 2.防止信息泄露 3.加速afl-fuzz 4.利用硬件实现watch point。


2. PHMon硬件设计

PHMon的硬件设计分为三个模块:跟踪单元(TU)、匹配单元(MU)、行动单元(AU)。

TU在CPU写回阶段收集处理器的指令执行数据。

MU检查TU发送过来的数据,找到与事件匹配的数据,并且写入队列中。每个MU与CFU配对,其中CFU存储的是:一旦MU检测到匹配成功将执行的动作序列。

AU根据程序员的配置来采取后续行动。它包括ALU操作、访存操作、中断。ALU中有一个重要的单元:control unit,他主要包括从队列中取包,并且找到MU对应的CFU,并执行操作。

举例来说,我们想使用PHMon想实现一个影子栈,用户需要自定义一些事件和动作序列。这里事件指的是:匹配所有返回指令和call指令;动作序列指的是往影子栈中写当前pc值、然后栈++。


【论文分享】PHMon

【论文分享】PHMon

【论文分享】PHMon




3.OS修改支持


1.在启动线程时候通过文件名字来配置需要监视的进程。

2.在上下文切换期间维护PHMon信息。

3.中断处理程序。

以及bootloader中将中断委派给操作系统和配置mstatus以支持自定义指令。

4.软件接口


PHMon使用RISC-V指令集中的扩展自定义的指令来配置PHMon的MU和CFU,以及与PHMon通信。具体看代码里面的komodo.c。

5.参考

[1] https://github.com/bu-icsg/PHMon


原文始发于微信公众号(COMPASS Lab):【论文分享】PHMon

版权声明:admin 发表于 2022年11月9日 下午5:46。
转载请注明:【论文分享】PHMon | CTF导航

相关文章

暂无评论

暂无评论...