内容简介
《计算机固件安全技术》内容涵盖作者在计算机固件安全领域多年的研究成果,是国内第一部公开出版的计算机固件安全领域的学术著作。
全书内容包括:计算机固件概念和功能、国内外固件产品和技术研究发展历程、固件开发基础技术与规范、固件安全研究历史与现状、传统固件BIOS安全技术研究开发实例、BIOS安全漏洞及其威胁、BIOS安全检测方法与实现、可信固件开发的安全策略和模型、可信固件中可信度量基础与方法、可信固件的开发实现。
《计算机固件安全技术》可作为高等学校网络安全、信息安全专业教材,或相关专业人员的参考研究书籍。
目录
第1章 引言
1.1 固件在计算机中的地位和作用
1.1.1 固件和BIOS的概念
1.1.2 固件功能及地位
1.2 相关领域国内外研究现状和趋势
1.2.1 计算机固件产品研发现状和趋势
1.2.2 BIOS安全研究历史与现状
1.2.3 固件安全领域新动向
1.3 本书研究主题与目标
1.4 本书原创性主要贡献
1.5 本书组织结构
第2章 计算机固件的发展与技术基础
2.1 计算机固件发展历程
2.1.1 传统BIOS的演变
2.1.2 传统固件BIOS的缺陷
2.1.3 新一代固件EFI/UEFI
2.2 固件产品和技术研发状态
2.2.1 公用固件产品
2.2.2 开源固件BIOS项目
2.2.3 我国计算机固件产品研发现状
2.3 固件开发基础技术与规范
2.3.1 硬件体系架构
2.3.2 总线接口规范
2.3.3 固件相关管理接口规范
2.3.4 固件内存管理与资源分配
2.3.5 UEFI固件框架和规范
2.4 本章小结
第3章 固件安全技术研究开发实例
3.1 Legacy BIOS固件安全增强技术
3.1.1 固件刷卡开机原理与流程
3.1.2 编写固件安全增强模块程序
3.1.3 在BIOS flash芯片中嵌入安全增强程序
3.2 Legacy BIOS固件安全代理技术
3.2.1 固件安全代理技术原理与流程
3.2.2 编写安全代理shell模块程序
3.2.3 在BIOS flash芯片中嵌入安全代理程序
3.3 本章小结
第4章 固件BIOS安全漏洞及威胁研究
4.1 固件BIOS安全漏洞和威胁概念的含义
4.2 固件BIOS安全漏洞和威胁的成因
……
第5章 计算机固件BIOS安全检测方法与实现
第6章 可信固件开发的安全策略和模型
第7章 可信度量基础与度量方法
第8章 可信固件的开发实现
第9章 结论
参考文献
致谢
摘要与插图
(3)获取计算机主板上的Phoenix 4.0 BIOS固件映像文件。这可以通过使用uniflash软件工具来得到。Uniflash工具是一个开源的读写主板BIOS固件芯片的工具。(4)把完整的合法的安全代理程序模块module. mod嵌入到BIOS映像文件中。这一步操作没有现成的可用工具,无论是Phoenix公司还是其他第三方,都没有提供公开的工具来实现这个功能。作者通过逆向分析和反复试验,终于成功地完成这个步骤的操作,并且编写了专用的小工具程序foister.exe来自动完成这个步骤的操作。工具程序foister. exe的操作流程将在下面进一步阐述。
(5)把嵌入了安全代理程序模块的BIOS映像文件刷新到主板上BIOS flash芯片中。这一步骤操作同样可使用开源软件工具uniflash来完成。不再赘述。经过上面的五个步骤的操作,以后每次开机启动后,BIOS flash中的安全代理程序都会被执行,并且把芯片中包含的stone代理模块程序释放到Windows系统中(实际中加入了重复释放检查)。Windows操作系统启动后,会在后台自动执行stone代理程序,该代理程序与远程指定服务器进行验证和连接,完成服务器要求的文档上传和下载指示。并且只要不更换主板,即使重新安装操作系统、格式化硬盘、更换硬盘,这个固件安全代理程序也会依然存在。同样的道理,这样的一个固件安全代理程序如果用于攻击,很容易演化成为一个固件木马程序。
下面描述一下上述第(4)步中提到的工具程序foister. exe的功能流程。foister. exe主要功能是在映像文件中查找空白区(全OxFF覆盖的区域),找到后把安全代理程序模块module. mod的内容覆盖到这片空白区中,然后在映像文件中根据模块链表查找固件中原有的setup模块,找到后通过修改其前后的模块头部连接指针地址,以及安全代理程序模块头部指针地址,把安全代理程序模块插入到映像文件中的模块单链表存储结构中(见5.5.2一节Phoenix BIOS映像文件和模块结构)。
之所以选择把安全代理程序模块设置成setup类型的模块,是因为在Phoenix 4.OBIOS固件中,setup类型的模块被执行时,往往代表着BIOS固件的软硬件初始化工作都已经完成,固件应用程序可以放心地调用各种软硬件资源了。这对于安全代理程序成功地运行是至关重要的。
……