设备驱动审计全解析
1. 安全形势与驱动审计的必要性
曾经,像冲击波(Blaster)和 SQL 猛击虫(SQL Slammer)这样的蠕虫造成了大规模的互联网中断,将网络安全问题带入了普通消费者的视野。特别是 SQL 猛击虫,它甚至扰乱了自动取款机(ATM)与金融机构之间的通信。而 2005 年中的佐托布(Zotob)蠕虫事件,更是让安全问题深入人心,它导致美国有线电视新闻网(CNN)部分运营能力瘫痪。
在此之后,操作系统供应商开始投入更多的时间、精力和资金来消除其产品中的安全问题。攻击者也面临着新的挑战,他们有两种选择:一是攻击运行在操作系统之上的应用程序,如网络服务器、办公软件、图像查看器和即时通讯客户端等;二是针对操作系统运行的核心——设备驱动。
设备驱动通常为操作系统提供与硬件交互或执行各种低级任务所需的信息。它就像是操作系统与底层需要抽象处理的事物之间的接口。然而,设备驱动的更新频率往往远低于操作系统的其他部分,并且其中仍然存在大量常见的编程错误。
过去,人们普遍认为设备驱动中的编程错误无需担忧,因为大多数设备驱动处理的不可信输入较少,而且利用设备驱动进行攻击非常困难,尝试往往会导致系统崩溃,即使能够执行代码,也难以保证可靠性。但随着 Wi-Fi 和蓝牙等技术的广泛应用,攻击者有了新的攻击途径,因为这些协议的驱动相对较新,大部分未经充分测试,并且处理的协议非常复杂。
此外,操作系统供应商对进入其操作系统的驱动往往缺乏控制。虽然他们可能有安全方法来防止简单的缓冲区溢出问题,但无法强制第三方硬件供应商遵循相同的方法。因此,第三方设备驱动成为了操作系统安全架构中的一个严重薄弱环节。
为了更好地进行设备驱动审计,你需