论文部分内容阅读
固件层存在的安全漏洞已成为信息安全业界重要的威胁因素之一,利用其实施的攻击具有不易清除、难以检测、破坏性强等固有特点。因此研究基于固件层的攻击,从底层为计算机安全提供了有力的保障,具有重要的应用价值和研究意义。BIOS作为固件层必不可少的固件程序,是计算机启动后首先执行的程序,为计算机提供最底层、最直接的硬件控制。UEFI是新一代的BIOS标准,定义了操作系统与硬件平台固件之间的接口规范。它的出现不仅仅改变了传统BIOS的启动方式,解决了传统BIOS难以扩展等问题,并给用户提供了便利的底层开发环境,但同时也不可避免地带来了一些安全隐患。目前针对UEFI的研究已经成为信息安全领域的热门课题。本文旨在研究基于UEFI的攻击方式,分析了UEFI的总体架构及其安全性,研究了现有的一些典型的固件层攻击方式,并分别从UEFI自身存在的安全隐患和UEFI启动过程存在的安全隐患两方面入手,提出了两种不同的攻击方式,即基于UEFI攻击存储设备和基于UEFI劫持操作系统内核。基于UEFI攻击存储设备的核心思想是在UEFI中完成存储设备的初始化并且UEFI提供了对存储设备的数据访问接口功能,使得用户在不进入操作系统的环境下就能够实现对存储设备的操作。同时,结合UEFI Option ROM具有可扩展性,用户可以根据自身的需要刷写Option ROM的映像文件,也为攻击者提供了可利用的机会。因此,通过BDS阶段枚举PCI设备加载Option ROM时注册对存储设备操作的函数,并以此实现在特定协议安装时完成对存储设备的攻击,该攻击方式主要分为UEFI文件操作、Option ROM协议依赖、ROM文件生成三个模块来实现。本文还对该攻击方式实行了实验验证,表明这种攻击是可行的。基于UEFI劫持操作系统内核的核心思想是以UEFI启动过程中没有对启动组件进行校验的漏洞为依据,通过篡改OS Loader的启动路径,加载恶意程序并Hook启动时服务退出函数,完成操作系统启动后劫持系统内核并感染操作系统引导文件的功能。本文以Win7系统为例,分析了UEFI OS Loader及其映像文件的格式,研究了Hook技术和寄生感染的方法,最终设计并实现EFI分区定位模块、内核劫持模块来完成基于UEFI劫持操作系统内核的攻击。