首页 / 专利库 / 电脑编程 / 算法 / 一种基于白名单机制的软件运行统一控制系统及方法

一种基于白名单机制的软件运行统一控制系统及方法

阅读:893发布:2021-06-08

专利汇可以提供一种基于白名单机制的软件运行统一控制系统及方法专利检索,专利查询,专利分析的服务。并且一种基于白名单机制的 软件 运行统一控制系统及方法,属于信息安全技术领域。本 发明 包括客户机白名单初始化及软件验证功能启动;以及用户 申请 在客户机添加新软件进入本地软件白名单,客户机准备要加入白名单的软件实体,然后将软件实体及其类型发送给服务机,服务机根据软件类型计算得到软件白名单变化量,客户机收到并添加进本地软件白名单,之后新软件就可以安装使用;以及用户申请在客户机上将某软件从本地软件白名单中移除,计算要从本地软件白名单移除的软件的特征值发送给服务机,服务机利用特征值在本机日志中查询该软件对应的白名单变化量并发送给客户机,客户机从本地软件白名单中去除软件白名单变化量里的元素,软件就被禁止执行使用。,下面是一种基于白名单机制的软件运行统一控制系统及方法专利的具体信息内容。

1.一种基于白名单机制的软件运行统一控制系统,其特征在于:包括客户机和服务机;
所述客户机和服务机处于同一个局域网中,所述客户机包括若干个;
所述客户机向服务机发送本地软件清单和指令信息;所述指令信息包括在客户机添加新软件进入本地软件白名单的添加申请指令以及在客户机上将某软件从本地软件白名单中移除的移除申请指令;接收服务机发送的初始软件白名单和软件白名单变化量,根据软件白名单变化量更新本地软件白名单,并根据本地软件白名单控制本机软件运行;
所述服务机接收客户机发送的本地软件清单和指令信息,根据所述本地软件清单计算初始软件白名单,根据所述和指令信息计算软件白名单变化量,并将初始软件白名单和软件白名单变化量通过局域网发送给对应客户机。
2.根据权利要求1所述的一种基于白名单机制的软件运行统一控制系统实现的基于白名单机制的软件运行统一控制方法,其特征在于,包括如下步骤:
客户机上运行软件前,生成本机软件清单,将本机软件清单发送至服务机;
服务机根据客户机的本机软件清单计算生成初始软件白名单,将初始软件白名单发送至客户机;
客户机接收初始软件白名单,将初始软件白名单存为本地软件白名单,对将要执行的软件检测其是否在本地软件白名单中;若在,则允许执行;否则,不允许执行。
3.根据权利要求2所述的基于白名单机制的软件运行统一控制方法,其特征在于,所述生成本机软件清单的方法为:遍历客户机Ui中所有的可执行文件,得到所有可执行文件的路径集合Pi={pi1,pi2,…,pik,…,pin},其中pik为单个可执行文件的路径;然后使用SHA1算法计算集合Pi中每个元素所对应的可执行文件的特征值,得到可执行文件的特征值集合Hi={hi1,hi2,…,hik,…,hin}作为本机软件清单。
4.根据权利要求2所述的基于白名单机制的软件运行统一控制方法,其特征在于,所述服务机根据客户机的本机软件清单计算生成初始软件白名单的方法为:
服务机根据接收的客户机Ui的特征值集合Hi,即客户机Ui的本机软件清单,利用EncF算法计算得到客户机的初始软件白名单Li={li1,li2,…,lik,…,lin},其中元素lik为软件白名单元素值,具体为代表第k个可执行文件的特征值及特征值的签名值所组成的二元组;
服务机将客户机的初始软件白名单Li保存在本地日志中,并发给对应客户机。
5.根据权利要求2所述的基于白名单机制的软件运行统一控制方法,其特征在于,所述对将要执行的软件检测其是否在本地软件白名单中的方法为:
将要执行的软件运行前,客户机使用HOOK方法拦截本机操作系统内核函数
NtCreateSection
通过函数NtCreateSection的ObjectAttributes参数获得将要加载的可执行模的全路径名称ObjectName,判断ObjectName字符串是否以.exe或.msi结尾;如果不是则允许其加载;如果是,则利用SHA1算法计算ObjectName所对应的可执行文件的特征值,得到特征值hx;利用DecF算法,计算res=DecF(hx);如果res为0,则不允许该软件加载;如果res为1,则允许其加载。
6.根据权利要求2所述的基于白名单机制的软件运行统一控制方法,其特征在于,还包括根据添加申请指令在客户机本地软件白名单中添加软件的如下步骤:
S61,用户在客户机Ui向服务机发送添加申请指令、需要添加进白名单的软件本体A及其软件类型;所述软件本体包括软件安装包和可直接执行的软件文件;所述软件类型包括软件安装包类型和可直接执行软件类型;
S62,服务机接收到添加申请指令、软件本体A及其软件类型后,利用SHA1算法计算软件本体A的特征值hi0;
S63,判断软件本体A的软件类型;如果是软件安装包类型,则转到S64;如果是可直接执行软件类型,则利用算法EncF,计算l0=EncF(h0),得到软件白名单变化量L′i=li0,将软件白名单变化量L′i记录到客户端本地日志中,并发送给客户机Ui,转到S65;
S64,在客户机上安装软件A,并计算软件A及其安装过程中所释放的所有可执行文件的软件白名单元素值,构成软件白名单变化量,转到S65;
S65,客户机Ui将软件白名单变化量添加进本地软件白名单Li中,完成在客户机本地软件白名单中添加软件。
7.根据权利要求6所述的基于白名单机制的软件运行统一控制方法,其特征在于,所述计算软件A及其安装过程中所释放的所有可执行文件的软件白名单元素值的方法为:
软件A在安装过程中释放文件时,利用HOOK方法拦截操作系统内核函数NtCreateFile;
通过函数NtCreateFile的ObjectAttributes参数获得创建文件的全路径名称
ObjectName,判断ObjectName字符串是否以.exe或.msi结尾;如果不是则继续;如果是,则利用SHA1算法计算并记录ObjectName所对应的可执行文件的特征值,直到软件A安装完成,得到软件A安装所释放的所有可执行文件特征值,与软件A的特征值hi0一起,形成集合H′i={hi0,h′i1,h′i2,…,h′ik,…,h′in};利用算法EncF,计算公式L’i=EncF(H’i),得到软件白名单变化量L′i={li0,l′i1,l′i2,…,l′ik,…,l′in},记录到客户机Ui本地日志中,并发送给客户机Ui。
8.根据权利要求6所述的基于白名单机制的软件运行统一控制方法,其特征在于,还包括根据移除申请指令在客户机本地软件白名单中删除软件的如下步骤:
客户机Ui根据SHA1算法计算需要从白名单中删除的软件本体A的特征值hi0,连同移除申请指令,发送至服务机;
服务机接收移除申请指令和软件本体A的特征值hi0后,通过查询日志得到其所对应的软件白名单变化量L′i,然后将L′i发送给客户机Ui;
客户机Ui收到L′i后,将同时属于L′i和本地软件白名单Li的软件白名单元素从Li中删除,完成在客户机本地软件白名单中删除软件。
9.根据权利要求2~8任一项所述的基于白名单机制的软件运行统一控制方法,其特征在于,所述EncF算法的方法为:输入软件特征值hx,利用RSA加密算法和一个公私钥对key=的私钥kpri,对hx进行签名操作,得到签名值rx,进而得到lx=<hx,rx>,输出软件白名单元素lx;各个软件白名单元素构成软件白名单。
10.根据权利要求2~8任一项所述的基于白名单机制的软件运行统一控制方法,其特征在于,DecF算法的方法为:输入软件特征值hx,在本地软件白名单L中搜索是否存在lk=<hk,rk>使得hx=hk,如果不存在则输出0,如果存在则利用RSA加密算法和公私钥对key=<kpri,kpub>的公钥kpub,对rk进行验证,得到验证值h′k,如果h′k=hk,输出1,否则输出0。

说明书全文

一种基于白名单机制的软件运行统一控制系统及方法

技术领域

[0001] 本发明涉及一种基于白名单机制的软件运行统一控制系统及方法,属于信息安全技术领域。

背景技术

[0002] 随着网络攻击技术的发展,计算机恶意软件、病毒、木的数量和种类呈现逐年上升的态势,并逐步蔓延到工业控制网络中,对信息安全构成巨大威胁。对于大多数企业工业控制计算机设备,由于其与互联网相对隔离、软硬件更新相对滞后且一般仅运行特定若干软件,采取安装杀毒软件、主机防火墙等安全手段不能很好地适应工业控制计算机设备的性能现状和业务需求。
[0003] 采用软件白名单机制是一种很好的安全防护方法,软件白名单机制可以防止不在白名单的任何已知和未知的恶意软件、病毒、木马运行,同时可以用于规范用户操作行为,未经管理员批准,用户无法自行安装任何软件,大大降低工业控制计算机设备的系统运行险。
[0004] 但是现有针对工业控制网络等局域网的软件白名单机制,缺乏完整的从管理员到用户的管理方法和流程,且没有针对软件安装包和可直接执行软件两种不同的软件形式制定不同的白名单生成和下发方法。

发明内容

[0005] 本发明解决的技术问题是:克服现有技术的不足,提供了一种基于白名单机制的软件运行统一控制系统及方法,解决现有软件白名单机制缺少基于C/S架构的统一软件运行控制系统和方法的问题。
[0006] 本发明的技术解决方案是:一种基于白名单机制的软件运行统一控制系统,包括客户机和服务机;所述客户机和服务机处于同一个局域网中,所述客户机包括若干个;
[0007] 所述客户机向服务机发送本地软件清单和指令信息;所述指令信息包括在客户机添加新软件进入本地软件白名单的添加申请指令以及在客户机上将某软件从本地软件白名单中移除的移除申请指令;接收服务机发送的初始软件白名单和软件白名单变化量,根据软件白名单变化量更新本地软件白名单,并根据本地软件白名单控制本机软件运行;
[0008] 所述服务机接收客户机发送的本地软件清单和指令信息,根据所述本地软件清单计算初始软件白名单,根据所述和指令信息计算软件白名单变化量,并将初始软件白名单和软件白名单变化量通过局域网发送给对应客户机。
[0009] 根据所述的一种基于白名单机制的软件运行统一控制系统实现的基于白名单机制的软件运行统一控制方法,包括如下步骤:
[0010] 客户机上运行软件前,生成本机软件清单,将本机软件清单发送至服务机;
[0011] 服务机根据客户机的本机软件清单计算生成初始软件白名单,将初始软件白名单发送至客户机;
[0012] 客户机接收初始软件白名单,将初始软件白名单存为本地软件白名单,对将要执行的软件检测其是否在本地软件白名单中;若在,则允许执行;否则,不允许执行。
[0013] 进一步地,所述生成本机软件清单的方法为:遍历客户机Ui中所有的可执行文件,得到所有可执行文件的路径集合Pi={pi1,pi2,…,pik,…,pin},其中pik为单个可执行文件的路径;然后使用SHA1算法计算集合Pi中每个元素所对应的可执行文件的特征值,得到可执行文件的特征值集合Hi={hi1,hi2,…,hik,…,hin}作为本机软件清单。
[0014] 进一步地,所述服务机根据客户机的本机软件清单计算生成初始软件白名单的方法为:
[0015] 服务机根据接收的客户机Ui的特征值集合Hi,即客户机Ui的本机软件清单,利用EncF算法计算得到客户机的初始软件白名单Li={li1,li2,…,lik,…,lin},其中元素lik为软件白名单元素值,具体为代表第k个可执行文件的特征值及特征值的签名值所组成的二元组;
[0016] 服务机将客户机的初始软件白名单Li保存在本地日志中,并发给对应客户机。
[0017] 进一步地,所述对将要执行的软件检测其是否在本地软件白名单中的方法为:
[0018] 将要执行的软件运行前,客户机使用HOOK方法拦截本机操作系统内核函数NtCreateSection
[0019] 通过函数NtCreateSection的ObjectAttributes参数获得将要加载的可执行模的全路径名称ObjectName,判断ObjectName字符串是否以.exe或.msi结尾;如果不是则允许其加载;如果是,则利用SHA1算法计算ObjectName所对应的可执行文件的特征值,得到特征值hx;利用DecF算法,计算res=DecF(hx);如果res为0,则不允许该软件加载;如果res为1,则允许其加载。
[0020] 进一步地,还包括根据添加申请指令在客户机本地软件白名单中添加软件的如下步骤:
[0021] S61,用户在客户机Ui向服务机发送添加申请指令、需要添加进白名单的软件本体A及其软件类型;所述软件本体包括软件安装包和可直接执行的软件文件;所述软件类型包括软件安装包类型和可直接执行软件类型;
[0022] S62,服务机接收到添加申请指令、软件本体A及其软件类型后,利用SHA1算法计算软件本体A的特征值hi0;
[0023] S63,判断软件本体A的软件类型;如果是软件安装包类型,则转到S64;如果是可直接执行软件类型,则利用算法EncF,计算l0=EncF(h0),得到软件白名单变化量L′i=li0,将软件白名单变化量L′i记录到客户端本地日志中,并发送给客户机Ui,转到S65;
[0024] S64,在客户机上安装软件A,并计算软件A及其安装过程中所释放的所有可执行文件的软件白名单元素值,构成软件白名单变化量,转到S65;
[0025] S65,客户机Ui将软件白名单变化量添加进本地软件白名单Li中,完成在客户机本地软件白名单中添加软件。
[0026] 进一步地,所述计算软件A及其安装过程中所释放的所有可执行文件的软件白名单元素值的方法为:
[0027] 软件A在安装过程中释放文件时,利用HOOK方法拦截操作系统内核函数NtCreateFile;
[0028] 通过函数NtCreateFile的ObjectAttributes参数获得创建文件的全路径名称ObjectName,判断ObjectName字符串是否以.exe或.msi结尾;如果不是则继续;如果是,则利用SHA1算法计算并记录ObjectName所对应的可执行文件的特征值,直到软件A安装完成,得到软件A安装所释放的所有可执行文件特征值,与软件A的特征值hi0一起,形成集合H′i={hi0,h′i1,h′i2,…,h′ik,…,h′in};利用算法EncF,计算公式L’i=EncF(H’i),得到软件白名单变化量L′i={li0,l′i1,l′i2,…,l′ik,…,l′in},记录到客户机Ui本地日志中,并发送给客户机Ui。
[0029] 进一步地,还包括根据移除申请指令在客户机本地软件白名单中删除软件的如下步骤:
[0030] 客户机Ui根据SHA1算法计算需要从白名单中删除的软件本体A的特征值hi0,连同移除申请指令,发送至服务机;
[0031] 服务机接收移除申请指令和软件本体A的特征值hi0后,通过查询日志得到其所对应的软件白名单变化量L′i,然后将L′i发送给客户机Ui;
[0032] 客户机Ui收到L′i后,将同时属于L′i和本地软件白名单Li的软件白名单元素从Li中删除,完成在客户机本地软件白名单中删除软件。
[0033] 进一步地,所述EncF算法的方法为:输入软件特征值hx,利用RSA加密算法和一个公私钥对key=的私钥kpri,对hx进行签名操作,得到签名值rx,进而得到lx=,输出软件白名单元素lx;各个软件白名单元素构成软件白名单。
[0034] 进一步地,DecF算法的方法为:输入软件特征值hx,在本地软件白名单L中搜索是否存在lk=使得hx=hk,如果不存在则输出0,如果存在则利用RSA加密算法和公私钥对key=的公钥kpub,对rk进行验证,得到验证值h′k,如果h′k=hk,输出1,否则输出0。
[0035] 本发明与现有技术相比的优点在于:
[0036] (1)在同一局域网中,利用白名单机制,可以用一台服务机对所有客户机的软件运行进行控制,客户机本地软件白名单的初始创建、添加和删除全部通过网络完成,方便统一管理。
[0037] (2)本地软件白名单利用数字签名技术,具有防止篡改功能,有效防止黑客通过技术手段篡改本地软件白名单,从而确保不在本地白名单的软件不能执行。附图说明
[0038] 图1为本发明客户机白名单初始化及软件验证功能启动示意图;
[0039] 图2为本发明用户申请在客户机添加新软件进入白名单示意图;
[0040] 图3为本发明用户申请在客户机上将某软件从白名单中移除示意图。

具体实施方式

[0041] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042] 一种基于白名单机制的软件运行统一控制系统,包括客户机和服务机;所述客户机和服务机处于同一个局域网中,所述客户机包括若干个;所述客户机向服务机发送本地软件清单和指令信息;所述指令信息包括在客户机添加新软件进入本地软件白名单的添加申请指令以及在客户机上将某软件从本地软件白名单中移除的移除申请指令;接收服务机发送的初始软件白名单和软件白名单变化量,根据软件白名单变化量更新本地软件白名单,并根据本地软件白名单控制本机软件运行;所述服务机接收客户机发送的本地软件清单和指令信息,根据所述本地软件清单计算初始软件白名单,根据所述和指令信息计算软件白名单变化量,并将初始软件白名单和软件白名单变化量通过局域网发送给对应客户机。
[0043] 如图1所示,本发明实施例1
[0044] 某局域网有两台客户机U1和U2进行白名单初始化及软件验证功能启动。
[0045] S1、客户机上运行软件前,生成本机软件清单,将本机软件清单发送至服务机。首先,遍历客户机U1系统中所有的可执行文件(exe),得到所有可执行文件的路径集合P1={C:\\1.exe,C:\\2.exe};然后利用SHA1算法,计算集合P1中每个元素所对应的可执行文件的特征值,得到特征值集合H1={5ef3…a263,5977…93b0}(由于SHA1和RSA加密值过长,故省略中间一部分值,下同),将集合H1的内容发送给服务机。同理,遍历客户机U2系统中所有的可执行文件(exe),得到所有可执行文件的路径集合P2={C:\\3.exe,C:\\4.exe};然后利用SHA1算法,计算集合P2中每个元素所对应的可执行文件的特征值,得到特征值集合H2={845a…f480,1805…257c},将集合H2的内容发送给服务机。
[0046] S2、服务机根据客户机的本机软件清单计算生成初始软件白名单,将初始软件白名单发送至客户机。服务机收到来自客户机U1发来的特征值集合H1,利用算法EncF,得到客户机U1的初始软件白名单L1={<5ef3…a263,4590…ae98>,<5977…93b0,5632…66cf>};然后,服务机将L1保存在本地日志中,并发给客户机U1。同理,服务机收到来自客户机U2发来的特征值集合H2,计算得到客户机U2的初始软件白名单L2={<845a…f480,e396…fe21>,<1805…257c,1132…11cf>};然后,服务机将L2保存在本地日志中,并发给客户机U2。
[0047] S3、客户机接收初始软件白名单,将初始软件白名单存为本地软件白名单,对将要执行的软件检测其是否在本地软件白名单中;若在,则允许执行;否则,不允许执行。客户机U1接收来自服务机的初始软件白名单L1,形成本地软件白名单L1;然后利用HOOK技术拦截操作系统内核函数NtCreateSection,这时有一个软件准备加载运行,触发这个拦截操作;接着,通过函数NtCreateSection的ObjectAttributes参数获得将要加载的可执行模块的全路径名称ObjectName,ObjectName是D:\\a.exe,由于它是.exe结尾的文件,所以利用SHA1算法计算其所对应的可执行文件的特征值,得到特征值4573…ab23;最后,利用算法DecF,计算公式res=DecF(4573…ab23),由于这个特征值不在本地软件白名单中,所以res值为0,不允许该软件加载。同理,客户机U2接收来自服务机的初始软件白名单L2;然后利用HOOK技术拦截操作系统内核函数NtCreateSection,这时有一个软件准备加载运行,触发这个拦截操作;接着,通过函数NtCreateSection的ObjectAttributes参数获得将要加载的可执行模块的全路径名称ObjectName,ObjectName是C:\\3.exe,由于它是.exe结尾的文件,所以利用SHA1算法计算其所对应的可执行文件的特征值,得到特征值845a…f480;最后,利用算法DecF,计算公式res=DecF(845a…f480),由于这个特征值在本地软件白名单中,所以res值为1,允许该软件加载。
[0048] 如图2所示,本发明实施例2
[0049] 某用户申请在客户机U1添加新软件进入本地软件白名单。
[0050] S1、用户在客户机U1向服务机提交需要添加进白名单的软件sample1.exe及其软件类型:可直接执行软件类型。
[0051] S2、服务机收到申请及软件sample1.exe后,首先,利用SHA1算法计算得到软件sample1.exe的特征值3316…de05,然后判断软件类型为可直接执行软件类型;然后,利用算法EncF,计算公式l0=EncF(h0),得到软件白名单变化量L′1={<3316…de05,1109…887e>};最后,将L′1记录到本地日志中,并发送给客户机U1。
[0052] S3、客户机U1收到软件白名单变化量L′1,将其添加进本地软件白名单L1中;然后用户可以在客户机U1使用软件sample1.exe。
[0053] 如图3所示,本发明实施例3
[0054] 用户申请在客户机U2上将某软件从本地软件白名单中移除。
[0055] S1、客户机U2向服务机提交需要从本地软件白名单中移除的软件sample2.exe的特征值673e…acd3。
[0056] S2、服务端收到申请和软件sample2.exe的特征值673e…acd3后,通过查询日志得到其所对应的软件白名单变化量L′2={<673e…acd3,7732…1290>},然后将L′2发送给客户机U2。
[0057] S3、客户机U2收到L′2后,将同时属于L′2和本地软件白名单L2的软件白名单元素值从L2中删除(即<673e…acd3,7732…1290>);然后软件sample2.exe就不可以在客户机U2上使用了。
[0058] 虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
[0059] 本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈