Linux内核中的USB驱动存在安全问题
翻译:360代码卫士团队
Linux内核中的USB驱动存在多个安全漏洞,在某些情况下可导致遭利用从而运行不受信任的代码并接管用户计算机。
其中大多数漏洞现身于周一,当时谷歌安全研究专家AndreyKonovalov告知Linux社区称Linux内核USB子系统中存在14个漏洞。
Konovalov指出,“所有的漏洞都可由一个构造的恶意USB设备触发,前提是攻击者能物理访问机器。”
这14个漏洞实际上包含在Konovalov从Linux内核USB驱动中找到的79个漏洞中。并非所有的漏洞都已告知给Linux社区,更不用说打补丁了。
多数是简单的DoS问题,会冻结或重启操作系统,不过一些漏洞能让攻击者提升权限并执行恶意代码。
Konovalov发现的所有bug都是由谷歌开发的通过模糊测试发现漏洞的工具syzkaller。
Konovalov并非唯一一个从LinuxUSB驱动中发现问题的人。
今年早些时候,来自伦敦大学的安全研究人员展示了从LinuxUSB设备驱动中找到漏洞的工具POTUS。这款工具通过设置一台虚拟机、一个通用USB设备以及通过故障注入、并行模糊测试和符号执行等技术来测试USB驱动发现了漏洞。
研究人员通过在POTUS工具中测试USB驱动的方法发现了两个Linux内核缺陷。第一个缺陷是内存泄露漏洞CVE-2016-5400,它存在于和Airspy Software通信的USB设备驱动中;第二个漏洞是使用后释放漏洞(无CVE编号),在2003年就存在于Linux内核的Lego USB Tower驱动中。
该研究团队发表的研究论文《POTUS:通过符号故障注入探测现有的USB驱动》获得USENIX WOOT 2017安全大会的“最佳论文”奖。
这篇论文强调称广泛使用的带有USB界面的设备导致Linux不得不支持大量驱动,而其中多数并未进行全面测试。过去的研究曾试图引起人们对这个不断扩大的安全问题的重视,但收效甚微。
POTUS和syzkaller等工具已帮助暴露并修复其中一些缺陷。即使Linux的创建者Linux Torvalds也对最近帮助发现安全问题的模糊测试投入表示赞赏。
就目前情况而言,Linux内核USB子系统需要强化针对恶意USB攻击的防御措施。即使某些漏洞需要攻击者物理访问设备,但其中一些即使在较低的权限的用户账户情况下也能运行,因此物理接近是唯一的要求。
攻击者对通过USB利用缺陷的方法需求很高,因为黑客可借此入侵气隙系统。USB是数据流入流出气隙系统的唯一通道。如漏洞未修复,攻击者可将USB设备插入Linux气隙系统中、运行利用代码并从此类网络中窃取数据。
本文由360代码卫士编译,不代表360观点,转载请注明 “转自360代码卫士www.codesafe.cn”。
原文链接:
https://www.bleepingcomputer.com/news/security/linux-has-a-usb-driver-security-problem/