G.O.S.S.I.P 学术论文推荐 2021-01-18

admin 2022年5月11日10:59:09评论41 views字数 1101阅读3分40秒阅读模式

今天给大家推荐的论文发表在USENIX Security 2020,对kernel driver fuzzing技术进行了研究。

G.O.S.S.I.P 学术论文推荐 2021-01-18

设备驱动程序是导致内核漏洞的主要原因之一,相比其他内核子系统,内核驱动程序除了暴露系统调用的攻击面外,还暴露外围接口(peripheral interface)的攻击面。这种攻击面会受到物理攻击、远程攻击,甚至是社会工程学攻击。比如拥有对受害者系统的物理访问权的攻击者可以通过物理连接恶意外设来破坏系统,而可以访问外设(例如Wi-Fi)的远程攻击者可以通过攻击这些控制器及其设备驱动程序来远程破坏系统。


这篇文章研究的就是内核驱动程序的USB和PCI外设攻击面。一种有效的方式就是fuzzing,但是针对内核驱动的fuzzing面临吞吐量的挑战。这种吞吐量的问题主要来自于加载、初始化外设输入处理过程和每次测试用例执行后重新加载内核驱动这两个步骤。之前的解决方案是使用系统启动时的系统快照来避免重启的时间消耗。


G.O.S.S.I.P 学术论文推荐 2021-01-18


本文提出了一种新的原语“动态虚拟机检查点“来实现具有高吞吐量、干净状态的内核驱动程序fuzzer。核心思想是在fuzzer运行期间连续创建检查点,以跳过先前观察到的检查点操作。其依据在于生成的测试用例之间经常存在大量相似之处,从而导致重复遍历相同的目标驱动程序状态。根据设计的检查点管理策略来创建虚拟机检查点,可用于直接还原虚拟机状态,而无需重复执行。该原语减少了平均测试用例的执行时间,并通过设计确保了在执行测试用例后没有残留状态。作者设计的Agamotto总体架构如图1所示。


G.O.S.S.I.P 学术论文推荐 2021-01-18


提到内核驱动fuzzer,就绕不过与Syzkaller的比较,二者fuzzing loop的对比如图2所示,其中Agamotto的关键在于checkpoint的动态生成策略,使其节省了大量执行时间。为了保证这个设计的有效性,作者在文章花了较大篇幅去描述具体策略的设计,包括Creation、Eviction、Restore三部分,这里就不展开了。


G.O.S.S.I.P 学术论文推荐 2021-01-18

最后,我们来看看作者实验评估的结果,其实验是为了说明这种动态检查点的开销相比于原本的快照是可接受的,然后动态检查点确实能够产生较好的效果。在对8个USB驱动程序进行fuzzing的过程中,Agamotto将Syzkaller的性能平均提高了66.6%,将基于AFL的PCI Fuzzer的性能提高了21.6%,可见这种思路确实产生了较好的效果。

G.O.S.S.I.P 学术论文推荐 2021-01-18

G.O.S.S.I.P 学术论文推荐 2021-01-18

G.O.S.S.I.P 学术论文推荐 2021-01-18

G.O.S.S.I.P 学术论文推荐 2021-01-18

G.O.S.S.I.P 学术论文推荐 2021-01-18

G.O.S.S.I.P 学术论文推荐 2021-01-18

G.O.S.S.I.P 学术论文推荐 2021-01-18

G.O.S.S.I.P 学术论文推荐 2021-01-18

论文链接:https://www.usenix.org/system/files/sec20-song.pdf


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 学术论文推荐 2021-01-18

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月11日10:59:09
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 学术论文推荐 2021-01-18http://cn-sec.com/archives/923719.html

发表评论

匿名网友 填写信息