本发明属于计算机安全领域,是一种适用于龙芯台式计算机的软件全过程保护系统及其保护方法。
背景技术:
目前,在该领域中,对程序的保护方法主要是在操作系统层对软件进行保护,防止卸载和删除。一般的方法是,在操作系统中建立一个守护进程,通过配置,使守护进程能够定位到被保护进程,并对被保护进程进行检测,判断其是否处于合法运行状态。
中国专利CN103678084A提出了一种灵活的应用进程守护方法。该方法的主要特征是在操作系统中,针对需要保护的进程建立和配置守护进程。守护进程能够根据守护进程的名称、启动文件位置、被守护进程内存阀值等配置信息,在被守护进程被非法停止或使用内存超过阀值时,自动重启被守护程序。
中国专利CN102081722A提出了一种保护指定应用程序的方法及装置。该方法通过在操作系统中运行的守护软件进行设置,建立相应的允许程序运行的列表。当检测到一个应用程序启动时,需要对该程序进行识别和检测。如果该应用程序合法则放行或保持运行;如果该应用程序不合法时,将对该应用程序进行拦截。
在计算机安全领域中,也有通过加入硬件的方法,对操作系统内的关键进程进行保护。一般的方法是,通过外接设备对操作系统中运行的进程进行检测,判断被保护的进程是否处于合法运行状态。
中国专利CN103246844A提出了一种基于USB的进程保护卡。该方法通过 USB接口单元,接收来自电脑的被保护进程数据,并将该数据通过总线接口单元,传输给中央处理器单元,由中央处理器单元通过对接收数据进行读取,判断该被保护进程是否处于运行状态。如果保护进程未能开启,则关闭电脑。
目前,在计算机安全领域,对软件或进程的保护方法主要是通过操作系统中运行的守护进程,对被保护软件是否处于合法的运行状态进行检测。目前,也有通过外围设备,接收操作系统中被保护软件发送验证数据的方法,检测其是否处于合法的运行状态。
在操作系统中,通过软件方法保护特定应用有着以下的不足,主要包括:
在计算设备更换硬盘、Flash等存储被保护程序的装置后,将不能自动地重新安装和恢复被保护程序。
在对硬盘、Flash等被保护程序的存储空间进行重新分区或者格式化后,计算设备将不能自动地重新安装和恢复被保护程序。
当被保护软件不属于操作系统自带软件的情况下,在计算设备重新安装操作系统后,将不能自动地重新安装和恢复被保护程序。
不能阻止合法的终端使用用户非法地卸载本终端上运行的特定应用软件。
当终端的操作系统中的特定软件文件被病毒或木马篡改和删除后,将不能合法地启动和运行。
不能在操作系统启动前,确定特定的软件文件是否存在。如该软件(如审计软件等)必须在操作系统启动后运行,则软件文件被删除后,将不能正常启动和运行。
不能远程地、动态地绑定新的软件应用,并保证其在操作系统中的合法运行。
技术实现要素:
有鉴于此,本发明提供了适用于龙芯台式计算机的软件安全保护系统及其被保护方法,目的是为了克服已有技术的缺陷,解决在更换硬盘、重装系统、Flash存储空间太小的情况下,无法恢复被保护程序的问题,无法动态绑定被保护软件的问题。
为了达到上述目的,本发明的技术方案为:适用于龙芯台式计算机的软件安全保护系统,用于对龙芯台式计算机的操作系统中被保护软件进行保护。
该系统包括客户端驱动、客户端主程序以及服务端。
客户端驱动符合UEFI固件规范、置于操作系统的固件层;客户端驱动包括环境加载安装模块、下载器度量检测模块和下载器;环境加载安装模块用于在固件层判断操作系统中是否已经写入了下载器;如果没有写入,则将下载器写入到操作系统中并启动,当下载器启动之后,采用下载器度量检测模块持续检测下载器是否处于正常运行状态,若下载器出现运行异常,则重新将下载器写入操作系统中并启动下载器。
客户端主程序包括通信接口模块、加解密模块、软件安全守护模块、被保护软件接口模块;客户端主程序安装于操作系统中,通信接口模块与服务端进行通信,加解密模块对通信接口模块与服务端之间的通信进行加密或解密;软件安全守护模块对被保护软件执行服务端的软件保护策略;被保护软件接口模块为与被保护软件进行数据交互的接口。
服务端包括软件仓库、软件策略保护管理模块以及网络通信模块;软件仓库存储被保护软件并对被保护软件进行版本管理,软件保护策略管理模块提供被保护软件的保护策略,网络通信模块与客户端主程序的通信接口模块建立安全网络连接。
进一步地,采用如上的软件安全保护系统进行软件安全保护的方法,包括如下步骤:
步骤一、操作系统开机上电后,在统一可扩展固件接口UEFI引导阶段中,操作系统加载的硬盘驱动模块,识别硬盘及相应分区,同时加载文件系统驱动,识别每个分区的文件系统;环境加载安装模块用于在固件层判断操作系统中是否已经写入了下载器;如果没有写入,则将下载器写入到操作系统中并启动。
步骤二、在操作系统启动过程中,操作系统内核启动后,下载器作为内核模块随之作为启动,下载器在操作系统完全启动前启动,采用下载器度量检测模块持续检测下载器是否处于正常运行状态,若下载器出现运行异常,则重新将下载器写入操作系统中并启动下载器。
步骤三、在操作系统启动后,下载器启动,操作系统运行客户端主程序是否运行。
步骤四、客户端主程序开始运行后,将与下载器进行绑定,操作系统控制该客户端主程序持续运行不被关闭。
步骤五、客户端主程序中的软件安全守护模块根据服务端的软件保护策略管理模块提供的被保护软件的保护策略,检测被保护软件,若被保护软件被篡改或被删除,则通过客户端主程序进行下载,并进行安装。
有益效果:
1、本发明通过符合UEFI接口规范的固件模块(安全守护平台驱动模块),能够在开机过程、操作系统运行过程中,保护被保护程序不会被篡改、关闭。通过安全守护平台驱动模块恢复客户端主程序,通过客户端主程序恢复被保护程序,能够逐级建立程序信任和保护。如果发现被保护程序被篡改,将能够通过网络和本地存储介质进行自动恢复和启动。
2、通过将下载器作为操作系统内核模块加载,从而保证了下载器作为内核 进程不会被关闭,即使客户端主程序被关闭,下载器也能保证能重新恢复客户端主程序的运行。
3、在计算设备更换硬盘、Flash等存储被保护程序的装置后、存储空间重新分区或格式化后,能够自动地重新安装和恢复被保护程序。
4、当被保护软件不属于操作系统自带软件的情况下,在计算设备重新安装操作系统后,仍能够自动地重新安装和恢复被保护程序。能够阻止合法的终端使用用户非法地卸载本终端上运行的特定应用软件。当终端使用用户希望卸载被保护应用时,如果与安全守护平台服务端安全保护策略相冲突,将无法卸载被保护应用。及时更换硬盘或采用重装系统等方式,也仍然会被重新恢复。当终端的操作系统中的特定软件文件被病毒或木马篡改和删除后,将通过安全守护平台自动地进行恢复、启动和运行。
5、本发明能够在开机启动后,操作系统启动前,确定特定的软件文件是否存在。能够通过安全守护平台远程地、动态地绑定新的软件应用,并保证其在操作系统中的合法运行。
附图说明
图1为UEFI总体框架图;
图2为软件安全守护平台总体框架图;
图3为软件安全守护平台驱动模块框架图;
图4为基于UEFI安全软件全过程保护方法流程图;
图5为客户端主程序对第三方程序进行保护流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明的目的是为了克服已有技术的缺陷,为了解决在更换硬盘、重装系统、Flash存储空间太小的情况下,无法恢复被保护程序的问题,无法动态绑定被保护软件的问题,提出一种适用于龙芯台式计算机的的软件全过程保护方法。
统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)是一种
新的固件接口规范,主要分为SEC、PEI、DXE、BDS、TSL、RT、AL共7个阶段,能够初始化硬件、引导操作系统,并在操作系统启动后,Runtime Service仍可以驻留内存,如图1所示。因此,UEFI可以在操作系统启动、运行、关闭的全过程中存在并可以与操作系统进行交互。
本发明基于UEFI固件规范,在固件中嵌入软件安全守护平台,通过软件安全守护平台,对操作系统中运行的软件进行全过程的安全守护。软件安全守护平台主要包括符合UEFI固件规范的软件安全守护平台客户端驱动、运行于操作系统的软件安全守护平台客户端主程序、软件安全守护平台服务端三个部分,如图2所示。
软件安全守护平台客户端驱动是符合UEFI规范的,驻守在固件层的驱动程序。该驱动程序的主要结构包括了环境加载安装模块、下载器度量检测模块和下载器,如图2所示。环境加载安装模块主要功能是在固件层判断硬盘或Flash(等其他类型的计算机存储介质)中是否已经写入了下载器。如果没有写入,则将下载器写入到文件系统中,如图3所示。当下载器写入到操作系统后,运行于UEFI固件中RT模式的下载器度量检测模块,将会持续检测下载器是否处于正确运行状态。如果发现下载器异常,将会重新写入并启动下载器。
该检测方法,也可以用于在固件层对下载器以外的文件进行完整性检测和恢复。
为了解决龙芯Boot Rom只有1MB的问题,要求嵌入到BIOS中驱动存储 空间要控制在50K以下,这就要优化BIOS中存储结构和代码冗余,同时保证驱动模块代码的质量和效率,从而满足存储空间在50K以下的要求。
软件安全守护平台客户端主程序包括通信接口模块、加/解密模块、软件安全守护模块、被保护软件接口模块几个部分,如图2所示。其中,通信接口模块用于与服务端进行安全通信。加/解密模块能够对传输数据进行加密和解密。软件安全守护模块能够对被保护软件执行服务端的软件保护策略。被保护软件接口模块为与被保护软件的数据交互提供接口。
软件安全守护平台服务端主要包括了软件仓库、软件策略保护管理模块、网络通信模块几个部分,如图2所示。其中,软件仓库为第三方软件提供了存储和版本管理。软件保护策略管理为第三方软件提供了软件的保护策略,如提供进程保护、补丁更新等功能。网络通信模块用于提供与客户端主程序建立安全网络连接。
软件安全守护平台对被保护软件的保护主要包括两个阶段:开机启动阶段,操作系统运行阶段。在开机启动阶段,主要是对运行程序的文件进行保护,在固件层对操作系统中的特定文件进行检测,如果被篡改或删除,将会进行恢复。在操作系统运行阶段,将通过下载器,检测和下载安全守护平台的客户端主程序,并通过客户端主程序对被保护程序进行保护。
在操作系统运行阶段,下载器将在操作系统中自行启动,检测客户端主程序是否存在。如果客户端主程序不存在则进行下载和启动。客户端主程序启动后,将检测被保护软件是否存在,如果不存在,则进行下载和启动,同时客户端主程序要保证不能被结束、终端,从而达到持久化守护。
本发明方法是通过下述技术方案实现的,如图4所示:
步骤一、开机上电后,在UEFI引导阶段中,加载硬盘驱动模块,识别硬盘及相应分区,同时加载文件系统驱动,识别每个分区的文件系统。然后在每个 操作系统所在分区检测下载器是否存在,如果不存在,则将安装下载器到硬盘,并使下载器在操作系统中启动过程中能够自启动。
步骤二、在linux操作系统启动过程中,内核启动后,下载器作为内核模块随之作为启动,从而保证下载器能够在操作系统完全启动前启动,同时下载器作为内核进程,能够防止被用户关闭。在UEFI固件中,检测下载器文件完整性,一旦发现下载器的文件被篡改或被关闭,将立即重新安装和启动下载器。
步骤三、在操作系统启动后,下载器启动同时会定时检测客户端主程序是否运行。如果没有运行,将对客户端主程序进行恢复。
步骤四、客户端主程序开始运行后,将与下载器进行绑定,开启进程保护。为了保证客户端主程序持续运行,程序能够防止用户结束该进程(包括kill-9命令)。
步骤五、客户端主程序将根据配置好的策略,检测被保护软件的文件是否存在且未被篡改,是否已经启动。如果被篡改或被删除,则通过客户端主程序进行下载,并进行安装。
步骤六、客户端主程序将保护被保护软件的进程,防止其被关闭。
自此,就完成了/实现了安全守护平台对龙芯台式计算机的软件的全过程保护。综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。