一种基于UEFI的可执行程序文件保护系统和方法
技术领域
本发明属于计算机安全领域,具体涉及一种基于UEFI固件,在开机过程中,对计算机设备操作系统内的文件,特别是可执行程序的文件进行保护的方法。
背景技术
目前,在计算机安全领域,操作系统中的文件主要通过特定的软件方法进行保护,如在本地硬盘建立文件保护分区,或操作系统层的文件加密等。或将文件备份到外部存储设备,需要使用时进行恢复。也有建立互补备份区,相互检查彼此分区文件是否完整,如果不完整,将会对文件进行同步。
在操作系统层对文件进行保护,特别是对关键可执行程序的文件进行保护,有着以下的不足,主要包括:
(1)在计算设备更换硬盘、Flash等存储被保护程序的装置后,将不能自动地重新恢复被保护文件,特别是关键可执行程序的文件。
(2)在对硬盘、Flash等被保护程序的存储空间进行重新分区后,计算设备将不能自动地恢复被保护文件,特别是关键可执行程序的文件。
(3)在对硬盘、Flash等被保护程序的存储空间进行格式化后,计算设备将不能自动地重新恢复被保护文件,特别是关键可执行程序的文件。
(4)当被保护可执行程序文件不属于操作系统自带软件的情况下,在计算设备重新安装操作系统后,将不能自动地重新恢复被保护程序文件。
(5)不能阻止合法的终端使用用户非法地删除本地终端上的关键文件。
(6)当终端的操作系统中的特定软件文件被病毒或木马篡改和删除后,将不能自动地进行恢复。
(7)不能在操作系统启动前,确定操作系统中特定的关键文件,特别是可执行程序文件是否存在。
发明内容
本发明的目的是为了克服已有技术的缺陷,提出一种基于UEFI的可执行程序文件保护系统和方法,能解决在更换硬盘、Flash等存储空间的情况下,在开机过程中,无法恢复被保护文件、特别是关键程序文件的问题。
一种基于UEFI的可执行程序文件保护系统,系统包括文件守护程序驱动模块和文件守护服务端。
所述文件守护程序驱动模块的作用是在开机过程中,对操作系统中的特定文件进行完整性度量和恢复;文件守护驱动模块是符合UEFI规范的固件模块,包括环境加载和安装器子模块、文件检测器子模块和被保护文件。其中,环境加载和安装器子模块是在开机过程中加载相应的驱动,建立文件检测器子模块的运行环境;文件检测器子模块的作用是在操作系统启动时,对计算设备的硬盘或Flash等存储空间中的特定文件进行检测,如果发现文件被篡改或删除,将释放储存在固件中的被保护文件到硬盘或Flash中。
所述文件守护服务端的作用是提供被保护文件的分发,将被保护文件推送到客户端,由客户端进行文件保护;文件保护系统还可以对被保护文件或文件保护程序驱动程序进行更新,更新的方式包括用网络或外部存储设备(如U盘、CD-ROM)。文件保护系统的服务端可以通过网络,将新的被保护文件发送到客户端设备,更新被保护文件。
一种基于UEFI的可执行程序文件保护方法,其实现步骤如下:
步骤一、计算设备开机上电后,开始进入UEFI的开机引导过程;
步骤二、检测是否进入更新模式;如果未进入更新模式,进入步骤三,反之,将在固件层对被保护文件进行更新;
步骤三、在固件层加载硬件驱动,在固件层加载文件系统,识别硬盘及相应的分区及文件系统;通过环境加载安装子模块加载文件度量检测子模块的运行环境;
步骤四、文件度量检测子模块检测硬盘的特定文件是否完整;如果文件正常,则转入步骤五,反之,恢复被保护文件,将被保护文件释放到硬盘的特定位置;
步骤五、文件保护过程结束,固件层将继续进行开机引导过程。
在所述步骤二中,将检测是否要进行文件更新;包括以下步骤;
步骤1、进入固件层开机引导过程;
步骤2、检测当前开机引导过程是否需要进入固件文件更新模式;如果需要进入更新模式则转入步骤3,如果不需要更新,则继续进行开机引导过程;
步骤3、检测当前的更新方式是否是通过网络进行更新;如果需要网络更新则进入步骤4;检测是否有接入本地的存储设备,且存储设备有需要更新的被保护文件;如果有需要更新的被保护文件,则从外部存储设备中读取需要更新的文件及配置文件,转入步骤5;
步骤4、向文件保护系统服务端发送下载请求,希望能够下载相应的被保护文件,及配置文件;在配置文件中将包含了该文件的名称、安装路径等配置信息;
步骤5、根据配置文件,对存储被保护文件的固件部分进行更新;
步骤6、重启,进入开机引导过程;固件更新过程结束。
在步骤四中,将在固件层对操作系统中的文件进行完整性度量;当文件异常时,将进行文件恢复,包括以下步骤:
步骤1、检测硬盘是否存在;若不存在,则流程结束;
步骤2、在固件层加载读取硬盘或Flash等存储空间的驱动模块;
步骤3、识别硬盘的相应分区;
步骤4、对每个分区进行检测,查看分区的文件系统;
步骤5、针对不同的文件系统,加载相应的驱动模块;
步骤6、读取被保护文件的配置文件;
步骤7、在识别分区的文件系统后,将会根据配置文件,检测相应路径的文件是否存在;如果文件存在,则转入步骤8;若文件不存在,则根据配置文件,将固件中保存的被保护文件写到硬盘的分区上;
步骤8、对文件进行完整性度量;
步骤9、根据检测结果判断文件是否完整,是否被篡改;如果未发现文件异常,转入步骤10;若文件不存在,则根据配置文件,将固件中保存的被保护文件写到硬盘的分区上;
步骤10、继续进行开机引导流程。
有益效果:
(1)在计算设备更换硬盘、Flash等存储被保护程序的装置后,能够自动地重新恢复被保护文件,特别是关键可执行程序的文件。
(2)在对硬盘、Flash等被保护程序的存储空间进行重新分区后,计算设备将能够自动地恢复被保护文件,特别是关键可执行程序的文件。
(3)在对硬盘、Flash等被保护程序的存储空间进行格式化后,计算设备将能够自动地重新恢复被保护文件,特别是关键可执行程序的文件。
(4)在计算设备重新安装操作系统后,能够自动地重新恢复被保护程序文件。
(5)终端用户删除本地终端上的被保护文件后,将会在开机过程中重新恢复被保护文件。
(6)当终端的操作系统中的特定软件文件被病毒或木马篡改和删除后,能够自动地进行恢复。
(7)在操作系统启动前,能够确定操作系统中特定的关键文件,特别是可执行程序文件存在,且文件正常。
附图说明
图1为基于UEFI的文件保护总体框架图。
图2为文件安全守护平台驱动模块框架图。
图3为固件层安装和检测文件流程图。
图4为被保护文件更新流程图。
图5开机引导过程恢复文件流程图
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
如附图1所示,本发明的一种基于UEFI的可执行程序文件保护系统包括文件守护程序驱动模块和文件守护服务端。
所述文件守护程序驱动模块的作用是在开机过程中,对操作系统中的特定文件进行完整性度量和恢复;文件守护驱动模块是符合UEFI规范的固件模块,包括环境加载和安装器子模块、文件检测器子模块和被保护文件。其中,环境加载和安装器子模块是在开机过程中加载相应的驱动,建立文件检测器子模块的运行环境;文件检测器子模块的作用是在操作系统启动时,对计算设备的硬盘或Flash等存储空间中的特定文件进行检测,如果发现文件被篡改或删除,将释放储存在固件中的被保护文件到硬盘或Flash中,如图2所示。
所述文件守护服务端的作用是提供被保护文件的分发,将被保护文件推送到客户端,由客户端进行文件保护;文件保护系统还可以对被保护文件或文件保护程序驱动程序进行更新,更新的方式包括用网络或外部存储设备(如U盘、CD-ROM)。文件保护系统的服务端可以通过网络,将新的被保护文件发送到客户端设备,更新被保护文件。
本发明在应用前,需要在计算机终端先行部署,可以选用的方法包括:
a)在UEFI核心镜像中添加驱动模块。
b)在UEFI核心镜像中挂载Option ROM模块。
c)在可信卡等其他外围设备中挂载驱动模块。
一种基于UEFI的可执行程序文件保护方法,包括以下步骤:
步骤一、计算设备开机上电后,开始进入UEFI的开机引导过程。
步骤二、检测是否进入更新模式。如果未进入更新模式,进入步骤三,反之,将在固件层对被保护文件进行更新。如果需要进入网络更新模式则向文件保护系统服务端发送下载请求,希望能够下载并更新相应的被保护文件,及配置文件。在配置文件中将包含了该文件的名称、安装路径等配置信息。
步骤三、在固件层加载硬件驱动,在固件层加载文件系统,识别硬盘及相应的分区及文件系统。通过环境加载安装子模块加载文件度量检测子模块的运行环境。
步骤四、文件度量检测子模块根据配置文件,检测相应路径的文件是否存在,文件是否完整,是否被篡改。如果文件正常,则转入步骤五,反之,如果发现文件异常,将固件中保存的被保护文件写到硬盘的分区上。恢复被保护文件,将被保护文件释放到硬盘的特定位置。
步骤五、文件保护过程结束,固件层将继续进行开机引导过程。
在所述步骤二中,将检测是否要进行文件更新;包括以下步骤,如图4所示;
步骤1、进入固件层开机引导过程;
步骤2、检测当前开机引导过程是否需要进入固件文件更新模式;如果需要进入更新模式则转入步骤3,如果不需要更新,则继续进行开机引导过程;
步骤3、检测当前的更新方式是否是通过网络进行更新;如果需要网络更新则进入步骤4;检测是否有接入本地的存储设备,且存储设备有需要更新的被保护文件;如果有需要更新的被保护文件,则从外部存储设备中读取需要更新的文件及配置文件,转入步骤5;
步骤4、向文件保护系统服务端发送下载请求,希望能够下载相应的被保护文件,及配置文件;在配置文件中将包含了该文件的名称、安装路径等配置信息;
步骤5、根据配置文件,对存储被保护文件的固件部分进行更新;
步骤6、重启,进入开机引导过程;固件更新过程结束。
在步骤四中,将在固件层对操作系统中的文件进行完整性度量;当文件异常时,将进行文件恢复,包括以下步骤:
步骤1、检测硬盘是否存在;若不存在,则流程结束;
步骤2、在固件层加载读取硬盘或Flash等存储空间的驱动模块;
步骤3、识别硬盘的相应分区;
步骤4、对每个分区进行检测,查看分区的文件系统;
步骤5、针对不同的文件系统,加载相应的驱动模块;
步骤6、读取被保护文件的配置文件;
步骤7、在识别分区的文件系统后,将会根据配置文件,检测相应路径的文件是否存在;如果文件存在,则转入步骤8;若文件不存在,则根据配置文件,将固件中保存的被保护文件写到硬盘的分区上;
步骤8、对文件进行完整性度量;
步骤9、根据检测结果判断文件是否完整,是否被篡改;如果未发现文件异常,转入步骤10;若文件不存在,则根据配置文件,将固件中保存的被保护文件写到硬盘的分区上;
步骤10、继续进行开机引导流程,如附图5所示。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。