(OSDI'02 Note)ReVirt: Enabling Intrusion Analysis through Virtual-Machine Logging and Replay
ReVirt: Enabling Intrusion Analysis through Virtual-Machine Logging and Replay
George W. Dunlap et al.
OSDI 2002
本文讨论了在VMM基础上利用Log机制实现攻击分析。又是一篇讨论攻击(Intrusion)分析的论文,而且包含热门关键词(VMM)。其中为了Logging/Replay,又牵涉到了Fault-Tolerance的一些技术。
本文提出了目前的log机制无法满足以下两点:
Integrity: 对kernel过于信任,攻击者可以对Log文件进行任意的改动,或者制造很多无用Log信息混淆视听。本文的解决方法是把整个系统放在VM中运行,将Log的层次放在VM之下。由于VM的接口相对于OS来说要窄得多,所以记录下的事件也就相对来说少了很多个数量级。
Completeness: 没有记录下重现攻击所必需的信息,导致最后对攻击的很多判断不得不靠猜测。本文的解决方法是使用fault-tolerance的技术,如checkpointing, logging, roll-forward recovery等。
本文的实现以UMLinux为基础(UMLinux,即User Mode Linux,与User-Mode Linux是两个不同的虚拟机。前者将虚拟机和虚拟机上运行的所有的应用程序作为一个进程,而后者则为虚拟机上的每一个应用程序单独开一个进程)。ReVirt是在UMLinux之下的Logger,它会记录下所有的确定性和非确定性事件,从而能做到完全回放。产生的Log大小可以接受,能够长时间(几个月)的在一块本地硬盘上记录Log。
PS: 再想一下,这样做会有什么不足呢?我能想到的只有:
- 引入虚拟机后带来的性能下降,导致与真实情况存在差异
- 无法证明记录虚拟机产生的时间与记录OS产生的事件等价


At 2:53 PM,
Andy Yang said…
我没注意UML和UMLinux是两个不同的VMM,怎么回事?
At 10:07 PM,
water said…
两个vmm的描述看不懂哦!
Post a Comment