电脑通常需要连接打印机、照相机、USB闪存盘等等众多硬件,但用于建立与这些外设之间通信的小软件,即“设备驱动”的名声却不怎么样。专家们认为设备驱动故障引发了Windows电脑85%的系统崩溃,而那些编写粗劣的设备驱动还会为原本保护良好的电脑带来安全漏洞。造成这个问题的原因之一是,除了编写设备驱动的公司之外,其他人很难对其进行审核。“设备驱动太糟糕了。” 瑞士洛桑联邦高等理工学院(EPFL)可靠系统实验室的研究员维塔利•奇普诺维(Vitaly Chipounov)说。上周于波士顿举行的Usenix年度技术会议上,奇普诺维展示了一款软件工具,能在问题影响到用户的系统之前鉴别出来,从而保护电脑不受糟糕驱动危害。
阿喀琉斯之踵:设备驱动竟会是电脑的致命伤
来源:科技创业
奇普诺维的工具不用访问底层代码就可以测试设备驱动。它将驱动加载到虚拟机里,然后模拟他的行为,检测潜在的突然失去响应或者崩溃等问题。该工具无需与相应的真实硬件进行通信。尽管如此,通过模拟硬件与驱动之间的通信,依然可以显示出当连接了有问题的设备时,驱动将如何响应。一旦该工具发现问题,它就会提供相关原因信息,帮助将其解决。
研究员处理了六个为Windows编写的主流设备驱动,共发现14条严重缺陷。其中一些驱动已经通过微软的Windows兼容性认证测试。研究员们说,这表示他们的工具可以改进设备驱动的认证机制。他们的实验显示出,一些相关的驱动出故障的模式也类似,这意味着对应的硬件供应商可能把有问题的驱动代码来回复制用,于不同产品。“他们抄代码也得挑有用的抄吧。”奇普诺维开玩笑说。
设备驱动的稳定性和安全性问题非常重要,罗格斯大学的计算机科学助理教授维诺德•嘎纳帕斯(Vinod Ganapathy)说。在Linux、Mac和Windows电脑上,设备驱动通常拥有与操作系统本身一样高的权限,他说。很多驱动都由第三方供应商编写,并未经历像操作系统那样严格的测试。网上发布的一些驱动甚至被修改,包含了恶意代码。
“恶意设备驱动能执行很多违规操作,如隐藏恶意程序或刺探网络数据,”嘎纳帕斯说,“正常但脆弱的设备驱动同样造成这类风险,因为攻击者会绑架其弱点,执行同样的恶意代码。”
其他研究员正在寻找不同的方法让设备驱动更加安全。例如,嘎纳帕斯与威斯康星大学麦迪逊分校的迈克•史威夫特(Michael Swift)一起,开发出可以把驱动与操作系统核心隔离开的安装方法。
EPFL的研究员希望能授权给用户自行测试驱动。他们工具的当前版本还需要大量的技术背景,所以只适用于帮助硬件或软件供应商排除缺陷或验证驱动。但研究员们的愿望是可以让终端用户也可以决定是否安装某个驱动。他们说,该工具可以添加到操作系统中。它能自动为用户提供一个“立刻测试”的按钮来检测新驱动,以防将来发生问题。
个人电脑的阿喀琉斯之踵
评论
15 views