随着网络攻击技术的不断发展,针对固件的攻击已经出现,对计算机造成了巨大的威胁。本文详细分析
固件(Firmware)是计算机上电后首先执行的一组程序,运行在计算机底层,固化在Flash 芯片中,常用于完成配置硬件设备,为操作系统提供硬件操作接口,引导操作系统的启动等功能,被业界称为是连接计算机基础硬件和系统软件的“桥梁”。UEFI (Unified Extensible Firmware Interface,统一可扩展固件接口)是新的固件标准,目前被业界广泛使用。UEFI 为固件和操作系统之间的接口制定了新的标准和规范,并为启动操作系统提供了所需的标准环境[1]。
BIOS (Basic Input/Output System)的主要功能[2]包括:1)开机自检,计算机启动时,BIOS 掌握着硬件设备的控制权,首先检查CPU 是否工作正常,还包括定时器、可编程中断控制器、基本内存、显卡等的自检工作。2)系统初始化,初始化相应的硬件设备,并对外围设备进行驱动。3)BIOS 提供了系统设置功能,用户在进入操作系统之前可以进入BIOS 设置界面,对系统的一些参数进行设置,如光盘/硬盘/USB引导顺序、端口使能/禁用等。4)引导操作系统启动,BIOS 按照设置中保存的启动顺序读入操作系统引导代码, 从而完成操作系统的加载启动。
作为连接硬件和操作系统的枢纽, BIOS 的安全对计算机至关重要。
Flash 芯片已经允许在操作系统运行过程中, 通过特定的软件技术直接对BIOS 中的内容进行刷新写入[3], 给用户和系统维护带来了便利,但与此同时也引入了很多的安全风险。
早期,众所周知的CIH 病毒[4]就是直接向BIOS 固件芯片和硬盘中写入乱码,篡改了BIOS 中的正常代码,造成计算机无法启动,使用户数据严重破坏并无法还原。1999 年,Phoenix 公司提出并实现了通过在BIOS 固件中嵌入一个代码模块ILS [5] (Internet Launch System),为用户自动连接网络,下载服务软件,启动web 服务,后来此项目遭到了抵制,被终止。后来出现了ACPI BIOS rootkit [6]和PCI rootkit [7],分别利用ACPI 和PCI 在固件中植入恶意代码。文献[8]根据UEFI 自身和启动过程中存在的安全隐患,提出了基于UEFI 存储攻击设备和劫持操作系统内核的两种攻击方式。BIOS 攻击的特点:不同于操作系统攻击和网络攻击,针对BIOS 的攻击,在操作系统中是找不到的,在硬盘中也是看不到的,传统杀毒软件杀不掉,格式化硬盘或更换硬盘清不了,重装系统也无法去除。BIOS 恶意代码驻留在被攻击终端的计算机主板固件芯片中,难以检测和清除。随着信息技术的飞速发展,针对固件的攻击手段越来越多,计算机安全受到严重的威胁,BIOS 一旦被植入恶意代码,可能致使整个计算机瘫痪。因此,BIOS攻击检测和防护成为当前亟待解决的问题。目前,对于BIOS 攻击检测的研究和分析,国际国内的信息安全领域所做的相关工作还较少,固件安全领域的相关资料也较少,对开展固件攻击检测的研究和实现增加了一定的难度。
文献[9]提出了一种BIOS 安全检测方法,即进行BIOS 完整性度量。文献[10]提出对BIOS 安全隐患