公开/公告号CN113220329A
专利类型发明专利
公开/公告日2021-08-06
原文格式PDF
申请/专利号CN202110569166.5
申请日2021-05-25
分类号G06F8/65(20180101);G06F8/61(20180101);
代理机构32331 苏州国卓知识产权代理有限公司;
代理人江舟
地址 100085 北京市海淀区上地三街9号F座9层907
入库时间 2023-06-19 12:07:15
技术领域
本发明涉及工控程序保护领域,特别是涉及一种动态跟踪工控软件更新程序白名单库的方法及装置。
背景技术
随着工业4.0及两化融合的趋势到来,传统的工业控制系统网络安全(简称工控安全)问题已成为企业及国家安全面临的严峻挑战,受到越来越多的企业及政府关注,工业控制系统在经历很长一段时间的封闭状态之后已经开始发展起来。
早期,工业控制系统由于担心系统兼容性问题,通常不升级补丁,因此针对工控的特定环境,工控环境下的程序白名单技术被引入进来。在白名单技术的安全防护下,不在白名单库中的程序不能够被执行,同时白名单库中的程序不能被随意修改。
但是不可避免的,应用程序会有一些软件升级需求。特别在工业现场,工控软件在启动时,先向软件库管理服务器检查是否有新版本或是补丁包;如果有的话,则先进行下载并更新。更新过程完成之前,重启工控软件。工控软件版本不断地以更新方式增加程序白名单。此时需要一种可动态跟踪工控软件更新程序白名单库的方式。
发明内容
本发明提供一种动态跟踪工控软件更新程序白名单库的方法,包括:
在工控主机上加载程序白名单控制软件,完成程序白名单库的创建,并将自升级软件的启动文件配置到程序白名单控制软件;
检测自升级软件启动,跟踪自升级软件更新行为;
分析自升级软件更新行为,根据分析结果更新程序白名单库。
如上所述的动态跟踪工控软件更新程序白名单库的方法,其中,程序白名单中存储有工控主机上识别为安全的、允许运行的程序,以及程序运行用到的可执行组件;将所有的程序白名单的可执行程序文件的特征码按一定的方式组织成程序白名单库,用于拦截非白名单程序启动。
如上所述的动态跟踪工控软件更新程序白名单库的方法,其中,由程序白名单控制软件中的程序安装检测部件检测自升级软件的启动行为,并由程序白名单控制软件中的程序安装分析部件跟踪此跟踪自升级软件更新行为。
如上所述的动态跟踪工控软件更新程序白名单库的方法,其中,自升级软件更新行为包括自升级软件具体进程以及此自升级软件子进程新创建或是有改动的文件以及目录的更新行为。
如上所述的动态跟踪工控软件更新程序白名单库的方法,其中,检测自升级软件启动,跟踪自升级软件更新行为,具体包括:
检测是否有自升级软件启动;
如果监测到自升级软件的启动行为,则跟踪自升级软件具体进程以及此软件子进程新创建或是有改动的文件以及目录的行为,并加入到跟踪进程组;
检测跟踪进程组的进程退出行为,将进程退出行为信息传递到程序安装分析部件。
如上所述的动态跟踪工控软件更新程序白名单库的方法,其中,预先以特定方式配置当前工控主机上的自升级软件文件,然后由程序白名单控制软件分析配置项的特征码,将这些特征码加入到自升级软件列表库,程序安装检测部件检测启动的软件的特征码是否在已配置的自升级软件列表库中,以此使用自升级软件列表库中的特征码来锁定哪些启动的程序是自升级软件。
如上所述的动态跟踪工控软件更新程序白名单库的方法,其中,由程序安装检测部件跟踪自升级软件具体进程以及此软件子进程新创建或是有改动的文件以及目录的行为,并加入到跟踪进程组,具体包括如下子步骤:
根据自升级软件的进程创建特定的跟踪进程组,跟踪自升级软件创建的子进程,把跟踪进程组内进程创建的子进程加入到跟踪进程组,将新创建的子进程的行为信息传递到程序安装分析部件;
跟踪进程组的进程更新行为,将进程更新行为传递到程序安装分析部件;
将新建的可执行文件和安装包文件加入到临时白名单列表中,跟踪临时白名单列表中启动的程序,将这些程序加入到跟踪进程组,将新创建的子进程的行为信息传递到程序安装分析部件。
如上所述的动态跟踪工控软件更新程序白名单库的方法,其中,分析自升级软件更新行为,根据分析结果更新程序白名单库,具体包括:
从文件修改的行为信息,判断文件是否新创建或是有改动的可执行文件,如果文件是为新创建或有改动的可执行文件,将可执行文件加入白名单知识库;
扫描新创建的目录,将新目录中可执行文件,加入到白名单知识库;
判断自升级软件文件是否有改动,如果自升级软件文件有改动,则计算改动后文件的特征码,并将特征码更新至自升级软件列表库中。
本发明还提供一种动态跟踪工控软件更新程序白名单库的装置,其特征在于,所述动态跟踪装置包括自升级软件模块和程序白名单控制软件模块;所述动态跟踪装置执行上述任一项所述的动态跟踪工控软件更新程序白名单库的方法。
如上所述的动态跟踪工控软件更新程序白名单库的装置,其中,程序白名单控制软件模块具体包括程序安装检测部件和程序安装分析部件;在程序白名单控制软件模块中配置有自升级软件模块的启动文件,通过程序安装检测部件检测是否启动了自升级软件程序,并跟踪自升级软件更新行为;通过程序安装分析部件分析整个自升级软件的行为过程。
本发明还提供一种计算机可读存储介质,其特征在于,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于被处理器执行上述任一项所述的一种动态跟踪工控软件更新程序白名单库的方法。
本发明的有益效果是:采用本发明技术方案,工控主机在整个工作过程当中受到程序白名单控制软件的保护,非白名单程序无法启动,在兼顾了工控主机的安全性的同时,为工控软件更新提供一种可行的解决方案。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
图1是本发明的动态跟踪装置示意图;
图2是本发明的自升级软件的更新流程图;
图3是本发明的动态跟踪工控软件更新程序白名单库的方法流程图;
图4是具体的跟踪过程流程图;
图5是进行重复升级过程流程图。
具体实施方式
下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种动态跟踪工控软件更新程序白名单库的方法,应用于动态跟踪工控软件更新程序白名单库的装置中,所述装置可以是工控主机,实现工控主机的自动更新软件及自动跟踪工控软件更新程序白名单库的能力,另外本申请的动态跟踪装置也可以是其他设备中,以实现其他设备的自动更新跟踪,在此不作限定。如图1所示,所述装置100包括自升级软件模块110和程序白名单控制软件模块120,其中:
①自升级软件模块110,包括工控主机中具有自升级能力且包含启动检测特征码的工控软件,能够从服务器请求版本检查更新,并下载新版本的安装包,自动安装新版本安装包的自升级软件;
其中,自升级软件的更新如图2所示,工控主机中某一软件主程序启动,启动升级代理软件进行软件自动升级操作,具体为:从服务器下载补丁或安装程序,如果是补丁,则解压补丁,使用新文件代替旧文件,如果是安装程序,则启动新的安装程序,使用新文件代替旧文件;然后启动升级后的文件。
②程序白名单控制软件模块120,是具有拦截非法程序、检测程序自升级、根据自升级行为更新程序白名单库的程序白名单控制软件;具体包括程序安装检测部件121和程序安装分析部件122;在程序白名单控制软件模块120中配置有自升级软件模块110的启动文件,通过程序安装检测部件121检测是否启动了自升级软件程序,并跟踪自升级软件更新行为;通过程序安装分析部件122分析整个自升级软件的行为过程。
如图3所示,所述动态跟踪工控软件更新程序白名单库的方法包括:
步骤310、在工控主机上加载程序白名单控制软件,完成程序白名单库的创建,并将自升级软件的启动文件配置到程序白名单控制软件;
程序白名单中存储有工控主机上识别为安全的、允许运行的程序,以及程序运行用到的可执行组件;将所有的程序白名单的可执行程序文件的特征码按一定的方式组织成程序白名单库(也可称为程序白名单知识库),用于拦截非白名单程序启动;程序白名单控制软件通过程序白名单库的特征信息,判断启动的程序是否是程序白名单,以此拦截非法程序启动。
本步骤为程序准备工作阶段,在工控主机上通过自动或手动方式安装程序白名单程序软件,并且通过自动或手动方式把自升级软件的具体的启动文件配置到程序白名单控制软件,使得在程序白名单控制软件的保护下,保证工控主机在整个工作过程中,不在程序白名单中的可执行文件在启动时被拦截,无法启动。
需要说明的是,由于工控软件不断需要更新,当有新的版本部署到服务器时,工控主机再一次打开工控软件,由于受到以加载的程序白名单控制软件的保护,继续从步骤320开始处理。
步骤320、检测自升级软件启动,跟踪自升级软件更新行为;
当在工控主机上安装程序白名单控制软件之后,由程序白名单控制软件中的程序安装检测部件检测自升级软件的启动行为,并由程序白名单控制软件中的程序安装分析部件跟踪此自升级软件具体进程以及此自升级软件子进程新创建或是有改动的文件以及目录的更新行为;
其中,检测自升级软件启动,跟踪自升级软件更新行为,具体包括如下子步骤:
步骤321、检测是否有自升级软件启动,如果监测到自升级软件的启动行为,则执行步骤322,否则继续执行步骤321;
预先由程序白名单控制软件的管理员以特定方式配置当前工控主机上的自升级软件文件,然后由程序白名单控制软件分析配置项的特征码,将这些特征码加入到自升级软件列表库,程序安装检测部件检测启动的软件的特征码是否在已配置的自升级软件列表库中,以此使用自升级软件列表库中的特征码来锁定哪些启动的程序是自升级软件。
步骤322、跟踪自升级软件具体进程以及此软件子进程新创建或是有改动的文件以及目录的行为,并加入到跟踪进程组;
本发明实施例中,由程序安装检测部件跟踪自升级软件,将自升级软件的各种行为加入跟踪进程组,具体包括如下子步骤:
Step1、根据自升级软件的进程创建特定的跟踪进程组,跟踪自升级软件创建的子进程,把跟踪进程组内进程创建的子进程加入到跟踪进程组,将新创建的子进程的行为信息传递到程序安装分析部件。
Step2、跟踪进程组的进程更新行为,将进程更新行为传递到程序安装分析部件;其中,进程更新行为包括但不限于创建文件(目录)行为、修改文件(目录)行为、删除文件(目录)行为、重命名文件(目录)行为等。
Step3、将新建的可执行文件和安装包文件加入到临时白名单列表中,跟踪临时白名单列表中启动的程序,将这些程序加入到跟踪进程组,将新创建的子进程的行为信息传递到程序安装分析部件。
步骤323、检测跟踪进程组的进程退出行为,将进程退出行为信息传递到程序安装分析部件;
具体地,由程序安装检测部件检测跟踪进程组的进程退出行为,将进程退出行为信息传递到程序安装分析部件,当最后一个进程退出后,表示整个跟踪过程结束。
返回参见图2,步骤330、分析自升级软件更新行为,根据分析结果更新程序白名单库;
本发明实施例中,由程序安装分析部件分析自升级软件更新行为,根据分析结果更新程序白名单库,具体包括:
一、从文件修改的行为信息,判断文件是否新创建或是有改动的可执行文件,如果文件是为新创建或有改动的可执行文件,将可执行文件加入白名单知识库;
二、扫描新创建的目录,将新目录中可执行文件,加入到白名单知识库;
三、判断自升级软件文件是否有改动,如果自升级软件文件有改动,则计算改动后文件的特征码,并将特征码更新至自升级软件列表库中。
图4展示了具体的跟踪过程,在自升级软件启动后,检测软件的特征码是否在“自升级软件列表库”中,如果是,则为自升级软件设置“跟踪根进程标记”,并为自升级软件的启动进程设置“跟踪标记”,为有“跟踪标记”的进程的子进程设置与父进程相同的“跟踪标记”,将有“跟踪标记”的特殊进程启动的文件信息记录到文件更新表中,判断更新文件的类型,如果是在“自升级软件列表库”中,则计算新软件的特征码加入到“自升级软件列表库”中,如果是可执行文件,则将文件加入到程序白名单库中,如果文件更新表中文件有目录,则将目录的可执行文件加入程序白名单库中。
图5展示了进行重复升级过程,自升级软件启动,在新的软件安装成功后加入到程序白名单库和自升级软件列表库中之后,如果有重复升级操作,即再次启动该新版本软件,则由于新版本软件在程序白名单库中,故可以启动成功,并且由于新版本软件在自升级软件列表库中,所以可以进行下一次的更新升级。
采用本发明技术方案,能够达到如下技术效果:
(1)本发明实施例提供了一种动态跟踪工控软件更新程序白名单库的方法,跟踪自升级软件多次更新过程,将更新后的可执行文件加入到白名单知识库,并且将学习到的自更新特征信息加入自升级软件列表库,确保更新后的软件还具有更新文件到白名单知识库的能力;
(2)使用特征码可以有效地识别软件的唯一性,有效地避免了由于错误操作或是病毒入侵导致非受信软件具有更新文件到白名单知识库的能力。
与上述实施例对应的,本发明实施例提供一种动态跟踪装置,该动态跟踪装置包括:至少一个存储器和至少一个处理器;
存储器用于存储一个或多个程序指令;
处理器,用于运行一个或多个程序指令,用以执行一种动态跟踪工控软件更新程序白名单库的方法。
与上述实施例对应的,本发明实施例提供一种计算机可读存储介质,计算机存储介质中包含一个或多个程序指令,一个或多个程序指令用于被处理器执行一种动态跟踪工控软件更新程序白名单库的方法。
本发明所公开的实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述的方法。
在本发明实施例中,处理器可以是一种集成电路芯片,具有信号的处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific工ntegrated Circuit,简称ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。处理器读取存储介质中的信息,结合其硬件完成上述方法的步骤。
存储介质可以是存储器,例如可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。
其中,非易失性存储器可以是只读存储器(Read-Only Memory,简称ROM)、可编程只读存储器(Programmable ROM,简称PROM)、可擦除可编程只读存储器(Erasable PROM,简称EPROM)、电可擦除可编程只读存储器(Electrically EPROM,简称EEPROM)或闪存。
易失性存储器可以是随机存取存储器(Random Access Memory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,简称SRAM)、动态随机存取存储器(Dynamic RAM,简称DRAM)、同步动态随机存取存储器(Synchronous DRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,简称DDRSDRAM)、增强型同步动态随机存取存储器(EnhancedSDRAM,简称ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,简称SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,简称DRRAM)。
本发明实施例描述的存储介质旨在包括但不限于这些和任意其它适合类型的存储器。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件与软件组合来实现。当应用软件时,可以将相应功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
机译: 加工控制装置,加工控制系统,加工控制方法,加工控制程序以及具有记录有该程序的介质
机译: 基于非标准协议白名单的工控系统异常检测方法及装置
机译: 白名单创建装置,白名单创建方法和白名单创建程序