一种基于uefi的软件全过程保护系统和方法

文档序号:8259288阅读:408来源:国知局
一种基于uefi的软件全过程保护系统和方法
【技术领域】
[0001]本发明属于计算机安全技术领域,涉及一种基于UEFI的固件,在从开机到操作系统运行的过程中对软件进行保护的系统和方法。
【背景技术】
[0002]目前,在计算机安全领域,对软件或进程的保护方法主要是通过操作系统中运行的守护进程,对被保护软件是否处于合法的运行状态进行检测。目前,也有通过外围设备,接收操作系统中被保护软件发送验证数据的方法,检测其是否处于合法的运行状态。
[0003]在操作系统中,通过软件方法保护特定应用有着以下的不足,主要包括:
[0004](I)在计算设备更换硬盘、Flash等存储被保护程序的装置后,将不能自动地重新安装和恢复被保护程序。
[0005](2)在对硬盘、Flash等被保护程序的存储空间进行重新分区后,计算设备将不能自动地重新安装和恢复被保护程序。
[0006](3)在对硬盘、Flash等被保护程序的存储空间进行格式化后,计算设备将不能自动地重新安装和恢复被保护程序。
[0007](4)当被保护软件不属于操作系统自带软件的情况下,在计算设备重新安装操作系统后,将不能自动地重新安装和恢复被保护程序。
[0008](5)不能阻止合法的终端使用用户非法地卸载本终端上运行的特定应用软件。
[0009](6)当终端的操作系统中的特定软件文件被病毒或木马篡改和删除后,将不能合法地启动和运行。
[0010](7)不能在操作系统启动前,确定特定的软件文件是否存在。如该软件(如审计软件等)必须在操作系统启动后运行,则软件文件被删除后,将不能正常启动和运行。
[0011](8)不能远程地、动态地绑定新的软件应用,并保证其在操作系统中的合法运行。
[0012]统一可扩展固件接口(UnifiedExtensible Firmware Interface,UEFI)是一种固件接口规范,主要分为SEC、PE1、DXE、BDS、TSL、RT、AL共7个阶段,能够初始化硬件、弓I导操作系统,并在操作系统启动后,Runtime Service仍可以驻留内存。因此,UEFI可以在操作系统启动、运行、关闭的全过程中存在并可以与操作系统进行交互。

【发明内容】

[0013]本发明的目的是为了克服已有技术的缺陷,提出一种基于UEFI的软件全过程保护系统和方法,能解决在更换硬盘、Flash等存储空间的情况下,无法恢复被保护程序和动态绑定被保护软件的问题。
[0014]一种基于UEFI的软件全过程保护系统,系统包括位于固件层的驱动模块、位于操作系统层的客户端主程序和服务端。
[0015]所述驱动模块的主要作用是将包含的下载器子模块安装在内存或硬盘中,并保证随操作系统自启动。驱动模块是符合UEFI规范的,驻守在固件层的驱动程序。驱动模块的包括了环境加载和安装子模块、度量检测子模块和下载器子模块;环境加载和安装子模块的主要功能是在固件层判断硬盘或Flash (等其他类型的计算机存储介质)是否已经写入了下载器子模块。如果没有写入,则将下载器子模块写入到文件系统中,当下载器子模块写入到操作系统后,运行于UEFI固件中Runtime阶段的下载器子模块度量检测子模块,将会持续检测下载器子模块是否处于正确运行状态。如果发现下载器子模块异常,将会重新写入并启动下载器子模块。
[0016]所述客户端主程序的主要作用是对被保护软件提供文件完整性度量、运行状态监测等安全保护。客户端主程序包括通信接口子模块、加/解密子模块、软件安全守护子模块、被保护软件接口子模块几个部分。其中,通信接口子模块用于与服务端建立网络连接,进行安全通信。加/解密子模块能够对客户端和服务端之间传输的数据进行加密和解密。软件安全守护子模块能够对被保护软件执行服务端配置的软件保护策略。被保护软件接口子模块为与被保护软件的数据交互提供接口,用于监控被保护软件的运行状态是否正确。
[0017]所述服务端的主要作用是提供被保护软件的推送、制定安全保护策略。服务端主要包括了软件仓库子模块、软件保护策略管理子模块、网络通信子模块几个部分。其中,软件仓库子模块用于存储被保护软件,并可以提供版本管理功能。软件保护策略管理子模块为被保护软件提供了保护策略,如是否提供进程保护、补丁更新等保护功能。网络通信子模块用于提供服务端与客户端主程序建立安全网络连接。
[0018]一种基于UEFI的软件全过程保护方法,其实现步骤如下:
[0019]步骤一、计算设备开机启动;
[0020]步骤二、进入UEFI引导过程,加载相应的驱动程序;
[0021]步骤三、加载硬盘驱动模块,识别硬盘及相应分区,度量检测子模块在每个操作系统所在分区检测下载器子模块是否存在;若下载器子模块不存在,则写入下载器子模块及下载器子模块随操作系统自启动的所需文件;
[0022]步骤四、启动操作系统;
[0023]步骤五、检测下载器子模块文件完整性和是否处于正常运行状态,若下载器子模块的文件被篡改或被关闭,将立即重新安装和启动下载器子模块;
[0024]步骤六、下载器子模块将会检测客户端主程序是否存在,如果客户端主程序不存在,将对客户端主程序进行恢复;
[0025]步骤七、客户端主程序开始运行,与下载器子模块进行绑定,开启进程保护;
[0026]步骤八、客户端主程序将根据配置好的策略,检测被保护程序是否完整、且处于运行状态;如果被保护程序未运行或运行状态异常,则通过客户端主程序进行下载,并进行安装和恢复;
[0027]步骤九、被保护程序开始运行;
[0028]步骤十、客户端主程序将保护被保护软件的进程,防止其被关闭;
[0029]步骤^^一、程序运行结束。
[0030]在所述步骤三中,在固件层需要检测下载器子模块是否已经写入硬盘,其主要包括以下步骤:
[0031]步骤1、在固件层加载硬盘驱动模块;
[0032]步骤2、识别硬盘及相应分区。
[0033]步骤3、加载文件系统,识别每个分区的文件系统;
[0034]步骤4、检测系统分区中是否已经安装了下载器子模块,如果没有安装,则构建安装下载器子模块的运行环境,在操作系统中写入下载器子模块;如果有多操作系统时,将在每个安装系统的分区中构建安装下载器子模块的运行环境;
[0035]步骤5、继续引导流程;
[0036]步骤6、操作系统成功启动,下载器子模块写入文件系统后,需要在操作系统中进行自启动;比如针对Windows操作系统,可以采用写入特定的自启动文件夹,或者在引导阶段写入注册表的方法;
[0037]步骤7、检测下载器子模块文件是否完整,是否启动;如果发现下载器子模块文件被篡改、停止启动,将会立即进行重新安装下载器子模块;启动下载器子模块;
[0038]步骤8、检测下载器子模块是否处于正常的运行状态;如果发现下载器子模块文件被篡改、停止启动,将会立即进行重新安装下载器子模块;启动下载器子模块;
[0039]步骤9、检测是否接到停止检测的指令,如果没有检测到,则在下一个周期,继续循环执行步骤7到步骤9 ;如果检测到程序停止运行指令,则转入步骤10 ;
[0040]步骤10、程序运行结束。
[0041]在所述步骤六中,下载器子模块将会对客户端主程序文件进行完整性检测;如果文件被篡改或不存在,将对客户端主程序进行恢复,其主要包括以下步骤,如图5所示:步骤1、操作系统启动;
[0
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1