CHECKER博士:Linux内核驱动程序的可靠分析

作者:

Aravind Machry、Chad Spensky、Jake Corina、Nick Stephens、Christopher Kruegel和Giovanni Vigna,加州大学圣巴巴拉分校

摘要:

虽然人们早就知道内核驱动程序由于其特权访问和较低的代码质量会带来巨大的安全风险,但用于驱动程序的错误查找工具在数量和有效性方面仍然非常缺乏。这是因为这些驱动程序中指针繁重的代码给静态分析带来了一些最困难的挑战,并且它们与硬件的紧密耦合使得动态分析在大多数情况下都不可行。在这项工作中,我们提出DR。C类检查员,一个健全的基于众所周知的程序分析技术的Linux内核驱动程序错误查找工具。我们能够克服静态分析的许多固有局限性,方法是将分析范围限定为内核中最容易出错的部分(即驱动程序),并且只在极少数情况下牺牲可靠性,以确保我们的技术既可扩展又精确。D类R。C类检查员是一个全自动的静态分析工具,能够使用内核驱动程序上的流敏感、上下文敏感和字段敏感的指针和污染分析来执行常规错误查找。演示D的可扩展性和有效性R。C类检查员,我们分析了九个生产Linux内核(310万LOC)的驱动程序,其中正确识别了158个关键的零日错误,总体准确率为78%。

开放存取媒体

USENIX致力于开放访问我们活动上展示的研究。活动开始后,所有人都可以免费获得论文和会议记录。活动结束后发布的任何视频、音频和/或幻灯片也免费向所有人开放。支持USENIX以及我们对开放存取的承诺。

BibTeX公司
@进行中{203708,
作者={Aravind Machiry和Chad Spensky、Jake Corina和Nick Stephens、Christopher Kruegel和Giovanni Vigna},
title={{DR}。{CHECKER}:Linux内核驱动程序的可靠分析},
booktitle={第26届USENIX安全研讨会(USENIX-Security 17)},
年份={2017年},
isbn={978-1-931971-40-9},
地址={温哥华,不列颠哥伦比亚},
页数={1007--1024},
网址={https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/machiry},
publisher={USENIX协会},
月=八月
}

演示文稿视频