发明内容
本发明的目的在于提供一种工业控制系统的网络风险预警及管控系统,通过在虚拟运行环境对网络数据包进行解析和预加载,实现对网络攻击实现有效的预警和管控。
为解决上述技术问题,本发明是通过以下技术方案实现的:
本发明提供一种工业控制系统的网络风险预警系统,包括,
数据接收单元,用于接收网络数据包;
虚拟隔离单元,用于解析所述网络数据包得到控制指令;
获取所述工业控制系统的运行状态;
根据所述工业控制系统的运行状态构建虚拟运行环境;
在所述虚拟运行环境执行所述控制指令;
持续获取所述虚拟运行环境的运行参数;
预警单元,用于根据持续获取的所述虚拟运行环境的运行参数判断所述控制指令的安全性;
若判断所述控制指令安全,则将所述控制指令发送至所述工业控制系统进行实际执行;
若判断所述控制指令不安全,则不予执行所述控制指令;
对所述网络数据包进行预警。
本发明还公开了一种工业控制系统的网络风险管控系统,包括,
数据接收单元,用于接收网络数据包;
虚拟隔离单元,用于解析所述网络数据包得到控制指令;
获取所述工业控制系统的运行状态;
根据所述工业控制系统的运行状态构建虚拟运行环境;
在所述虚拟运行环境执行所述控制指令;
持续获取所述虚拟运行环境的运行参数;
预警单元,用于根据持续获取的所述虚拟运行环境的运行参数判断所述控制指令的安全性;
若判断所述控制指令安全,则将所述控制指令发送至所述工业控制系统进行实际执行;
若判断所述控制指令不安全,则不予执行所述控制指令;
发出针对所述网络数据包的网络预警;
风控单元,由于持续获取网络预警;
根据持续获取的所述网络预警判断是否需要断开所述数据接收单元对所述网络数据包的接收。
本发明通过数据接收单元接收网络数据包,并通过虚拟隔离单元解析网络数据包得到控制指令。然后获取工业控制系统的运行状态,并根据这些状态构建一个虚拟运行环境。在虚拟运行环境中执行控制指令,同时持续获取虚拟运行环境的运行参数。预警单元根据获取的运行参数判断控制指令的安全性。如果控制指令被判断为安全,它会被发送至工业控制系统进行实际执行;如果判断为不安全,则不会执行该指令,同时会发出针对网络数据包的网络预警。风控单元会持续获取网络预警,并根据这些预警判断是否需要断开数据接收单元对网络数据包的接收,以防止可能的网络攻击。
当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述一种网络风险预警及管控系统于一实施例的功能单元和信息交互示意图;
图2为本发明所述一种工业控制系统的网络风险预警系统于一实施例的功能单元和信息交互示意图;
图3为本发明所述一种网络风险预警及管控系统于一实施例的步骤流程示意图;
图4为本发明所述步骤S3于一实施例的步骤流程示意图;
图5为本发明所述步骤S31于一实施例的步骤流程示意图一;
图6为本发明所述步骤S31于一实施例的步骤流程示意图二;
图7为本发明所述步骤S318于一实施例的步骤流程示意图;
图8为本发明所述步骤S35于一实施例的步骤流程示意图;
图9为本发明所述步骤S353于一实施例的步骤流程示意图;
图10为本发明所述步骤S7于一实施例的步骤流程示意图;
图11为本发明所述步骤S7于一实施例的步骤流程示意图。
附图中,各标号所代表的部件列表如下:
1-数据接收单元,2-虚拟隔离单元,3-预警单元,4-风控单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
由于工业控制网络相比较消费级民用互联网络具有更低的安全冗余度,为了对工业控制系统进行更高等级的防护,本发明提供以下方案。
请参阅图1至3所示,本发明提供了一种工业控制系统的网络风险管控系统,从功能模块上划分可以包括数据接收单元1、虚拟隔离单元2、预警单元3以及风控单元4。其中数据接收单元1、虚拟隔离单元2以及预警单元3可以组成一种工业控制系统的网络风险预警系统作为前置系统用以实现对网络风险的筛查和预警。
在实际应用中,首先可以由数据接收单元1执行步骤S1接收网络数据包,数据接收单元1可以是抽象的网络数据接口。接下来可以由虚拟隔离单元2执行步骤S2解析网络数据包得到控制指令。接下来可以执行步骤S3获取工业控制系统的运行状态,接下来可以执行步骤S4根据工业控制系统的运行状态构建虚拟运行环境。接下来可以执行步骤S5在虚拟运行环境执行控制指令,接下来可以执行步骤S6持续获取虚拟运行环境的运行参数。可以通过各种数据接口读取所需数据。
接下来可以由预警单元3执行步骤S7根据持续获取的虚拟运行环境的运行参数判断控制指令的安全性。若判断控制指令安全则将接下来可以执行步骤S8控制指令发送至工业控制系统进行实际执行,若判断控制指令不安全则接下来可以执行步骤S9不予执行控制指令。接下来可以执行步骤S10发出针对网络数据包的网络预警。之后可以由风控单元4执行步骤S11持续获取网络预警,最后可以执行步骤S12根据持续获取的网络预警判断是否需要断开数据接收单元对网络数据包的接收。可以是断开网络连接,也可以拒接接收网络数据。
以上步骤在实施过程中,接收并解析网络数据包,获取控制指令,并根据工业控制系统的状态构建虚拟运行环境执行该指令。同时,根据环境的运行参数评估指令安全性,若安全则在实际系统执行;若不安全则发出预警。最后,通过持续获取网络预警判断是否需要断开数据接收,有效避免网络攻击对工业系统的不良影响。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图4所示,为了构建一个与工业控制系统的运行状态一致的虚拟运行环境,上述的步骤S3在实施的过程中首先可以执行步骤S31获取工业控制系统的运行状态的运行状态镜像。接下来可以执行步骤S32载入运行状态镜像得到虚拟运行环境,接下来可以执行步骤S33获取工业控制系统的运行参数。接下来可以执行步骤S34获取虚拟运行环境的运行参数。接下来可以执行步骤S35根据工业控制系统的运行参数和虚拟运行环境的运行参数判断虚拟运行环境的仿真程度是否符合要求。若是则接下来可以执行步骤S36保持虚拟运行环境,若否则接下来可以执行步骤S37释放虚拟运行环境。最后可以返回执行步骤S31和S32重新获取工业控制系统的运行状态的运行状态镜像并载入运行状态镜像得到虚拟运行环境。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图5所示,为了对控制指令的运行环境进行更为准确的模拟,上述的步骤S31在实施的过程中首先可以执行步骤S311根据控制指令获取执行控制指令所需的功能进程。接下来可以执行步骤S312根据控制指令所需的功能进程获取工业控制系统的运行状态中控制指令的功能进程的对应参数。最后可以执行步骤S313根据工业控制系统的运行状态中控制指令的功能进程的对应参数对虚拟运行环境中控制指令的功能进程的对应参数进行修正。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图6所示,由于控制指令对功能进程以外的进程也可能会调用,为了更为准确模拟控制指令的运行环境,上述的步骤S31在实施的过程中还可以执行步骤S314在虚拟运行环境执行控制指令的过程中,实时获取控制指令运行涉及的相关进程。接下来可以执行步骤S315根据控制指令获取执行控制指令的相关进程。接下来可以执行步骤S316根据控制指令的相关进程获取虚拟运行环境中控制指令的相关进程的对应参数。接下来可以执行步骤S317根据控制指令的相关进程获取工业控制系统的运行状态中控制指令的相关进程的对应参数。最后可以执行步骤S318根据工业控制系统的运行状态中控制指令的相关进程的对应参数对虚拟运行环境中控制指令的相关进程的对应参数进行判断修正。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图7所示,为了对虚拟运行环境中差异过大的参数进行修正,上述的步骤S318在实施的过程中首先可以执行步骤S3181判断虚拟运行环境中控制指令的相关进程的对应参数是否与工业控制系统的运行状态中控制指令的相关进程的对应参数一致。若是则接下来可以执行步骤S3182保持在虚拟运行环境中运行控制指令,若否则接下来可以执行步骤S3183中止运行虚拟运行环境。接下来可以执行步骤S3184根据工业控制系统的运行状态中控制指令的相关进程的对应参数对虚拟运行环境中控制指令的相关进程的对应参数进行修正。最后可以执行步骤S3185继续运行虚拟运行环境。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图8所示,如果虚拟运行环境与工业控制系统的运行状态差异过大,重置虚拟运行环境的方式导入新的镜像,这就需要判断虚拟运行环境的仿真程度不符合要求。有鉴于此,上述的步骤S35在具体实施的过程中首先可以执行步骤S351计算得到每个进程在工业控制系统中和虚拟运行环境中的运行参数差值。接下来可以执行步骤S352计算得到每个进程在工业控制系统中和虚拟运行环境中的运行参数差值与进程在工业控制系统中运行参数的比例作为进程的仿真偏差率。接下来可以执行步骤S353根据每个进程的仿真偏差率得到虚拟运行环境的仿真程度。接下来可以执行步骤S354判断虚拟运行环境的仿真程度是否大于设定值。若是则接下来可以执行步骤S355虚拟运行环境的仿真程度不符合要求,若否则最后可以执行步骤S356虚拟运行环境的仿真程度符合要求。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图9所示,为了对虚拟运行环境的仿真程度进行量化以便于计算判断,上述的步骤S353在实施的过程中首先可以执行步骤S3531获取工业控制系统中每个进程的处理器执行时间。接下来可以执行步骤S3532计算获取工业控制系统中每个进程的处理器执行时间之间的比值。接下来可以执行步骤S3533根据工业控制系统中每个进程的处理器执行时间之间的比值,将每个进程的处理器执行时间之间比例系数作为每个进程之间的加权系数。最后可以执行步骤S3534根据每个进程之间的加权系数计算进程的仿真偏差率的加权和或加权均值作为虚拟运行环境的仿真程度。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图10所示,为了量化计算并判断控制指令是否安全,上述的步骤S7在实施的过程中首先可以执行步骤S71获取执行完毕控制指令之后的虚拟运行环境的运行参数。接下来可以执行步骤S72判断执行完毕控制指令之后的虚拟运行环境的运行参数是否超过设定值。若是则接下来可以执行步骤S73判断控制指令不安全,若否则最后可以执行步骤S74判断控制指令安全。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
请参阅图11所示,为了避免大量的攻击性网络数据包对工业控制系统的运行造成饱和时攻击,上述的步骤S12在实施的过程中首先可以执行步骤S121根据网络预警的获取时刻计算得到单位时间内网络预警的接收数量作为网络预警频率。接下来可以执行步骤S122判断网络预警频率是否超过设定值。若是则接下来可以执行步骤S123判断需要断开数据接收单元对网络数据包的接收,若否则最后可以执行步骤S124判断不需要断开数据接收单元对网络数据包的接收。
为了对以上步骤进行补充说明,提供以下源代码,并在注释部分进行解释,受限于篇幅仅展示部分功能单元的源代码。
综上所述,本方案在实施的过程中首先通过数据接收单元获取网络数据包,并利用虚拟隔离单元解读得到的控制指令。接下来,它收集工业控制系统的运行状态,基于这些状态建立起一个虚拟的运行环境。在这个环境中执行控制指令,并同时实时获取虚拟环境的运行参数。预警单元根据获取的这些参数来评估控制指令的安全性。若控制指令评估为安全,将会被传送至工业控制系统以进行实际执行;若评估为不安全,则不会执行该指令,并将触发针对网络数据包的预警。风险控制单元持续收集这些网络预警,并根据收集到的预警评估是否需要停止数据接收单元对网络数据包的接收,以此来抵御潜在的网络攻击。最终达到对网络数据包进行主动防御的技术效果,实现了对网络攻击的有效预防和管控。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件,例如电路或ASIC(专用集成电路,Application Specific Integrated Circuit)来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。