一种程序白名单知识库更新的方法及装置与流程

文档序号:17694955发布日期:2019-05-17 21:24阅读:152来源:国知局
一种程序白名单知识库更新的方法及装置与流程

本发明涉及工控主机安全技术领域,具体涉及一种程序白名单知识库更新的方法及装置。



背景技术:

随着工业4.0及两化融合的趋势到来,传统的工业控制系统网络安全(简称工控安全)问题已成为企业及国家安全面临的严峻挑战,受到越来越多的企业及政府关注,工业控制系统在经历很长一段时间的封闭状态之后已经开始发展起来。早期,工业控制系统由于担心系统兼容性问题,通常不升级补丁,因此针对工控的特定环境,工控环境下的程序白名单知识库技术被引入进来。

未来为了提高生产效率和效益,工控网络会越来越开放,而开放带来的诸如木马、病毒、网络攻击等安全问题将成为制约两化融合以及工业4.0发展的重要因素。如何为这些工控主机提供适当的安全防护,安全增强和运维管理,同时保障生产安全、系统可靠无疑是当前工控企业需要重点解决的问题。其中,工控主机操作系统升级和程序安装升级的过程存在很大安全隐患并且对运维工作极大的不利,因此人们迫切地希望工控主机能够自动安装和升级程序,在保证安全的同时能够自动把程序添加到程序白名单知识库中。



技术实现要素:

有鉴于此,本发明实施例提供了一种程序白名单知识库更新的方法及装置,以实现工控主机操作系统和应用程序自动安装和升级,保证安全的同时能够自动把程序添加到程序白名单知识库中。

根据第一方面,本发明实施例提供了一种程序白名单知识库更新的方法,包括:检测系统中是否产生运行安装程序的操作;如果检测到运行安装程序的操作,建立安装程序的进程父子关系树及临时程序白名单列表;判断所述安装程序是否属于临时程序白名单列表;如果安装程序属于临时程序白名单列表,则执行安装程序;判断安装程序的父进程是否属于进程父子关系树;如果安装程序的父进程属于进程父子关系树,则将安装程序执行过程中产生的新的文件存入临时程序白名单列表;根据临时程序白名单列表更新预设的程序白名单知识库。

可选地,在将安装程序执行过程中产生的新的文件存入临时程序白名单列表之后,该程序白名单知识库更新的方法还包括:在临时程序白名单列表中执行安装程序执行过程中产生的子程序;判断子程序是否在程序白名单知识库或临时程序白名单列表中;如果子程序在程序白名单知识库或临时程序白名单列表中,执行子程序。

可选地,如果子程序不在程序白名单知识库或临时程序白名单列表中,阻止子程序执行。

可选地,在执行子程序之后,该程序白名单知识库更新的方法还包括:判断子程序的父进程是否在进程父子关系树中;如果子程序的父进程在进程父子关系树中,则将子程序存入进程父子关系树中。

可选地,如果子程序的父进程不在进程父子关系树中,则子程序生成的文件不放入临时程序白名单列表。

可选地,在根据临时程序白名单列表更新预设的程序白名单知识库之后,该程序白名单知识库更新的方法还包括:

重启操作系统;判断操作系统修复程序是否读取或执行临时程序白名单列表中的程序修复操作系统文件;如果操作系统修复程序读取或执行临时程序白名单列表中的程序修复操作系统文件,则将操作系统修复程序放到进程父子关系树中;判断程序修复操作系统执行过程中产生的子程序是否属于进程父子关系树;如果程序修复操作系统执行过程中产生的子程序属于进程父子关系树,则将子程序执行过程中产生的第二文件存入临时程序白名单列表;根据临时程序白名单列表更新预设的程序白名单知识库。

根据第二方面,本发明实施例提供了一种程序白名单知识库更新的装置,包括:检测模块,用于检测系统中是否产生运行安装程序的操作;建立模块,用于如果检测到运行安装程序的操作,建立安装程序的进程父子关系树及临时程序白名单列表;第一判断模块,用于判断安装程序是否属于临时程序白名单列表;执行模块,用于如果安装程序属于临时程序白名单列表,则执行安装程序;第二判断模块,用于判断安装程序的的父进程是否属于进程父子关系树;存入模块,用于如果安装程序的父进程属于进程父子关系树,则将文件存入临时程序白名单列表;更新模块,用于根据临时程序白名单列表更新预设的程序白名单知识库。

根据第三方面,本发明实施例提供了一种控制器,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行上述任意实施例的程序白名单知识库更新的方法。

根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行上述任意实施例的程序白名单知识库更新的方法。

本发明实施例提供了一种程序白名单知识库更新的方法及装置,通过建立安装程序的进程父子关系树及临时程序白名单列表,在临时程序白名单列表中执行安装程序,使安装程序在安装和更新过程中不影响程序白名单知识库对工控系统的控制;且安装程序在安装和更新的过程中可以自动更新程序白名单知识库,和普通程序安装类似,无需要过多的人工干预,针对定期升级程序白名单知识库中可信的程序,只需要指定升级路径就可以自动更新程序白名单知识库。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据本发明实施例程序白名单知识库更新的方法的流程图;

图2示出了本发明实施例安装程序执行前程序白名单知识库结构框图;

图3示出了本发明实施例安装程序执行时程序白名单知识库和临时程序白名单列表结构框图;

图4示出了本发明实施例安装程序升级流程图;

图5示出了本发明实施例程序安装升级完成程序白名单知识库更新后的结构框图;

图6示出了本发明实施例程序安装升级结构图;

图7示出了现有技术中程序白名单知识库实现基本结构图;

图8示出了本发明实施例安装程序执行过程中程序白名单知识库和临时程序白名单列表结构框图;

图9示出了本发明实施例程序白名单知识库更新的装置示意图;

图10示出了本发明实施例控制器示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种程序白名单知识库更新的方法,如图1所示,包括:

s101.检测系统中是否产生运行安装程序的操作;

实际应用中,在工控主机白名单防护的环境下,可以根据工控主机的操作系统类型及安装的工控软件自动扫描生成程序白名单知识库或根据操作系统类型从集中管理中心获取到程序白名单知识库,如图2所示,程序白名单知识库按照作用一般分为系统类白名单和应用类白名单,系统类白名单指操作系统环境运行的基本程序,应用类白名单是指在操作系统之上的一些应用程序,包括监控软件、组态软件、办公软件等,程序知识库中每条规则包括程序的名称,文件内容的标记(如哈希值)等。在程序白名单知识库控制启动之后,不在程序白名单列表中的安装程序将无法直接运行。

s102.如果检测到运行安装程序的操作,建立安装程序的进程父子关系树及临时程序白名单列表。

在本实施例中,安装程序指操作系统定期升级程序、软件安装包、软件升级包和软件定期升级程序等。此时建立的安装程序的进程父子关系树是初始化的进程父子关系树,进程父子关系树中只有安装程序。

s103.判断安装程序是否属于临时程序白名单列表。

在本实施例中,如图3所示,为了让不在程序白名单列表中的安装程序运行,在程序安装部件执行安装程序时,则会自动把安装程序加入到临时程序白名单列表。

s104.如果安装程序属于临时程序白名单列表,则执行安装程序。

s105.判断安装程序的父进程是否属于进程父子关系树。

s106.如果安装程序的父进程属于所述进程父子关系树,则将安装程序执行过程中产生的新的文件存入所述临时程序白名单列表。

在本实施例中,程序安装操作部件执行安装程序之后,安装程序在执行过程中会生成很多新的文件,如图4所示,程序安装升级检测部件会检测新的文件,判断当前进程是否在安装程序的父子关系树中。

s107.根据所述临时程序白名单列表更新预设的程序白名单知识库。

在本实施例中,如图5所示,程序安装升级完成后,将生成新的程序白名单知识库。

在本实施例中,程序白名单知识库实现更新结构图如图6所示,至少包括程序白名单管理、程序安装升级管理、程序安装升级检测引擎、程序白名单检测引擎、程序白名单控制引擎。本发明在原来的程序白名单知识库方案(如图7所示)的基础上,增加了程序安装升级管理和程序安装升级检测引擎部件,同时增强程序白名单管理实时处理临时白名单列表功能。具体地,程序安装升级管理提供安装程序的操作界面;程序安装升级检测引擎收到程序安装升级管理的配置信息启动安装程序的安装过程并生成临时程序白名单列表;程序白名单管理增加对临时程序白名单列表的扫描和分析过程,完成程序白名单知识库的更新。

本发明通过建立安装程序的进程父子关系树及临时程序白名单列表,在临时程序白名单列表中执行安装程序,使安装程序在安装和更新过程中不影响程序白名单知识库对工控系统的控制;且安装程序在安装和更新的过程中可以自动更新程序白名单知识库,和普通程序安装类似,无需要过多的人工干预,针对定期升级程序白名单知识库中可信的程序,只需要指定升级路径就可以自动更新程序白名单知识库。

在可选地实施例中,如图4所示,在将文件存入临时程序白名单列表之后,该程序白名单知识库更新的方法还包括:在临时程序白名单列表中执行安装程序执行过程中产生的子程序;判断子程序是否在程序白名单知识库或临时程序白名单列表中;如果子程序在程序白名单知识库或临时程序白名单列表中,执行子程序。判断子程序的父进程是否在进程父子关系树中;如果子程序的父进程在进程父子关系树中,则将子程序存入进程父子关系树中。如果子程序不在程序白名单知识库或临时程序白名单列表中,阻止子程序执行。如果子程序的父进程不在进程父子关系树中,则子程序生成的文件不放入临时程序白名单列表。

具体的,程序安装操作部件执行安装程序之后,安装程序在执行过程中会生成很多新的可执行程序,程序安装升级检测部件检测到安装程序产生的一级执行程序,并把相关一级执行程序放到临时程序白名单列表中。在安装程序执行过程中,安装程序会调用并运行部分一级执行程序,由于这个一级执行程序已经被程序安装监测部件加入到临时程序白名单列表中,则这个一级执行程序允许运行。同样,一级执行程序在运行过程也可能会产生很多二级执行程序,一级执行程序会调用并运行部分二级执行程序。为了能使二级执行程序能够运行,程序安装升级检测部件监测一级执行进程的启动,如果一级程序的父进程为安装程序,则把安装程序和一级执行程序的父子关系添加到这个安装程序的进程父子关系树中,同样可以监控二级程序的启动,如果二级执行程序的父进程为一级执行程序,则一级执行程序和二级执行程序的父子关系添加到这个安装程序的进程父子关系树中,如此类推,可以跟踪三级执行程序、四级可执行程序等,这样就可以完整地记录安装程序的进程父子关系。只要进程在这个安装程序的进程父子关系树中,则其产生的文件都放到临时白名单列表。如图8所示,临时程序白名单列表中新的安装程序、一级执行程序、二级执行程序为父子关系。当安装程序执行调用各个子执行程序完成安装之后,所有的执行文件都会被添加到临时白名单中,也就是说该安装程序释放的文件都可以执行。

在可选地实施例中,对于系统类安装程序,更新之后并不能马上替代操作系统中的程序文件,在根据临时程序白名单列表更新预设的程序白名单知识库之后,还包括:重启操作系统,操作系统重启之后会调用操作系统修复程序;判断操作系统修复程序是否读取或执行了临时程序白名单列表中的程序修复操作系统文件;如果操作系统修复程序读取或执行了临时程序白名单列表中的程序修复操作系统文件,则将操作系统修复程序放到进程父子关系树中;判断程序修复操作系统执行过程中产生的子程序是否属于进程父子关系树;如果程序修复操作系统执行过程中产生的子程序属于进程父子关系树,则将子程序执行过程中产生的第二文件存入临时程序白名单列表;根据临时程序白名单列表更新预设的程序白名单知识库。

本发明实施例还提供了一种程序白名单知识库更新的装置,如图9所示,包括:检测模块61,用于检测系统中是否产生运行安装程序的操作;建立模块62,用于如果检测到运行安装程序的操作,建立安装程序的进程父子关系树及临时程序白名单列表;第一判断模块63,用于判断安装程序是否属于临时程序白名单列表;执行模块64,用于如果安装程序属于临时程序白名单列表,则执行安装程序;第二判断模块65,用于判断安装程序的的父进程是否属于进程父子关系树;存入模块66,用于如果安装程序的父进程属于进程父子关系树,则将文件存入临时程序白名单列表;更新模块67,用于根据临时程序白名单列表更新预设的程序白名单知识库。具体的实施方式详见上述实施例程序白名单知识库更新的方法的描述。

本发明实施例还提供了一种控制器,该控制器包括一个或多个处理器71以及存储器72,图10中以一个处理器71为例。

控制器还可以包括:输入装置73和输出装置74。

处理器71、存储器72、输入装置73和输出装置74可以通过总线或者其他方式连接,图7中以通过总线连接为例。

处理器71可以为中央处理器(centralprocessingunit,cpu)。处理器71还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器72作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本申请实施例中的程序白名单知识库更新的方法对应的程序指令/模块。处理器71通过运行存储在存储器72中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例程序白名单知识库更新的方法。

存储器72可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用户终端操作的处理装置的使用所创建的数据等。此外,存储器72可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器72可选包括相对于处理器71远程设置的存储器,这些远程存储器可以通过网络连接至图像检测、处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入装置73可接收输入的数字或字符信息,以及产生与用户终端的处理装置的用户设置以及功能控制有关的键信号输入。输出装置74可包括显示屏等显示设备。

一个或者多个模块存储在存储器72中,当被一个或者多个处理器71执行时,执行如图1所示的方法。

本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行如上述实施例中任意一项描述的程序白名单知识库更新的方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;存储介质还可以包括上述种类的存储器的组合。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1