论文部分内容阅读
随着网络攻击技术的不断发展,针对固件的攻击已经出现,攻击方式也越来越多,对计算机造成了巨大的威胁。固件中的恶意代码隐藏在计算机底层,难以被杀毒软件发现和消除,针对固件攻击的检测和防护成为计算机安全领域亟待解决的问题。目前,与固件攻击检测相关的研究并不多,固件安全领域的相关资料也较少,为开展固件攻击检测的研究和实现增加了一定的难度。本文对传统的检测方法进行了分析和研究。传统的BIOS,对于不同的类型如Award BIOS,AMI BIOS,Phoenix BIOS等,各厂商的规范不尽相同,BIOS镜像文件的格式处理和模块组成有很大差异,相应的安全检测系统通常是针对一种特定类型BIOS的研究与实现,通用性较差。为了解决传统检测方法的不足,本文基于UEFI固件技术,对BIOS镜像文件的获取、分析、显示及完整性保护等技术进行了研究,设计并实现了基于UEFI固件的攻击检测系统,有效地保护了BIOS系统的安全。论文的主要工作及难点有:1)提出了一种基于UEFI固件的攻击检测体系架构。2)由于操作系统在保护模式下运行,存储BIOS镜像的物理内存是受保护的,在操作系统层无法直接访问,为了解决获取BIOS镜像的问题,本文通过触发SMI中断进入系统管理模式SMM来访问BIOS所映射的物理地址,实现BIOS镜像的获取。3)模块检测的核心是BIOS镜像文件的解析,为了解决BIOS模块分解问题,并提高系统的通用性,本文研究UEFI固件的存储结构,根据规范对FV、FF以及FF section文件的首部结构进行分析,最终实现BIOS的模块分解。4)传统的完整性检测方法一般使用MD5算法,采用国外标准,存在被植入后门的可能性,自主可控性较差。为此设计并实现了基于国家密码标准SM3的校验算法,且基于SM2数字签名算法,设计与实现了远程身份认证,增强了系统的可信、可控性和安全性。本文根据UEFI固件技术,设计与实现基于UEFI固件的攻击检测系统,增加了固件检测系统的通用性和安全性。如果BIOS受到攻击,本系统能够定位被更改的模块,了解攻击者的企图,并为恢复相应的模块做准备,能够有效地保护系统安全。