本发明是关于工业控制系统安全领域,特别涉及一种基于白名单的控制器防护技术。
背景技术:
随着工业4.0及两化融合的趋势到来,传统的工业控制系统网络安全(简称工控安全)问题已成为企业及国家安全面临的严峻挑战,受到越来越多的企业及政府关注。工业控制系统由于历史上相对封闭的使用环境,大多只重视系统的功能实现,对安全的关注相对缺乏,工控安全的现状处于“先天不足、后天失养、未来堪忧”的状态。工业控制系统的协议和设计,在研发时即偏重于功能的实时性和可靠实现,对安全攻击缺乏前期设计和有效抵御方法。另外,工业控制系统由于担心系统兼容性问题,通常不升级补丁,甚至有的工作站供应商明确要求用户不得自行升级系统,因此系统长期运行后会积累大量的安全漏洞;再加上运维过程中缺乏科学的安全意识、管理和技术方案,这些缺陷使工控系统面对网络安全攻击时极其脆弱,给安全生产带来极大隐患。
目前针对工业控制系统中的dcs、plc的控制器设备,基本是裸露的,没有防护,只是在网络层部署相应的隔离设备进行防护,遍采用的安全防护手段就是安装杀毒软件,来阻止机器上的恶意软件运行和传播。但是杀毒软件是一种基于黑名单的查杀方式,“黑名单”是指“坏的”、“不被允许的”,即只有在恶意软件被加入黑名单时才会被阻止运行,黑名单之外的软件和行为被认为都是正常、可信的。但是,杀毒软件的特征库更新是必然晚于恶意软件的发现的,具有天然的滞后性,并不能对付未知的、新的恶意程序的攻击,如0-day攻击,apt攻击等。并且其对来自操作人员的行为攻击完全无能为力。
“白名单”是指规则中设置的允许使用的名单列表,其意义是“好的”、“被允许的”,“应用程序白名单”是一组应用程序名单列表,只有在此列表中的应用程序是被允许在系统中运行,之外的任何程序都不被允许运行。
目前国内大量运行中的工控设备(尤其是已经运行了一段时间的设备),在当初设计时多重视系统的功能实现,并没有充分考虑到安全问题,或者拥有的安全机制无法应对现在不断涌现的各类安全威胁挑战。如何为这些工控系统控制器提供适当的安全防护,安全增强和运维管理,同时保障生产安全、系统可靠和可扩展性无疑是当前工控企业需要重点解决的问题。
技术实现要素:
本发明的主要目的在于克服现有技术中的不足,提供一种能在控制器运行环境中构筑安全“白环境”的控制器防护技术。为解决上述技术问题,本发明的解决方案是:
提供一种基于白名单的控制器防护技术,工业控制系统包括操作员站、工程师站、服务器和控制器,操作员站只能进行在线监视和调节简单参数(供现场操作人员操作),工程师站能对工业控制系统监控软件进行组态、编程、修改(供工业过程控制工程师使用),服务器是用于存放过程数据和趋势数据的工作站;所述基于白名单的控制器防护技术具体包括下述步骤:
(1)运行工程师站,在工程师站的控制器算法组态软件中部署控制器白名单提取软件;
所述控制器算法组态软件用于对控制器算法进行组态、编程、修改(供工业过程控制工程师使用);
所述控制器白名单提取软件包括白名单提取模块和白名单列表模块;白名单提取模块能在白名单服务进程在初始化时进行过滤,同时扫描控制器上的所有进程、通信文件,并将各个进程、通信文件的全路径和文件内容的特征值提交过滤,然后添加到白名单清单中,建立白名单列表;白名单列表模块用于存放白名单提取模块建立的白名单列表;控制器白名单提取软件基于白名单原理嵌入在控制器算法组态软件中;
(2)将控制器接入网络,运行控制器白名单提取软件,控制器白名单提取软件根据白名单规则,智能学习控制器与操作员站、工程师站、服务器之间信息交互的进程、数据传输或交互使用的通信协议,获取控制器白名单规则并下载到工程师站控制器组态软件中,形成控制器白名单列表;
所述控制器白名单列表包括控制器运行进程、通信协议、端口规则;
(3)工程师站把控制器算法组态软件中已编程的内容,即算法或运算逻辑,传输更新到控制器中,同时将提取到的控制器白名单列表,一起传输更新到控制器中;
(4)启动控制器,运行工程师站传输过来的算法或运算逻辑,同时部署更新的控制器白名单列表;
(5)将控制器中运行的控制器白名单列表,与工控网络中实时与控制器交互的进程、通信协议、端口规则进行比较、匹配、判断;如果该实时交互的进程、通信协议、端口规则不在白名单规则中,就判断该进程、通信协议、端口规则是非法的进程,进行阻止,实现对控制器防护。
在本发明中,所述控制器白名单列表能够用户自定义。
本发明的工作原理:通过主机智能学习技术,将白名单技术用于工控控制器行为的分析判断;通过大数据采集和分析,智能学习模块自动生成的工业控制软件正常行为模式的白名单,与现网中的实时传输数据进行比较、匹配、判断,实现在控制器运行环境中构筑安全“白环境”:只有可信任的进程,才能在控制器中运行;只有可信任的通信协议,才能在控制器中传输;只有可信任的指令,才能在控制器中执行。
与现有技术相比,本发明的有益效果是:
如果发现其用户节点的行为不符合白名单中的行为特征,本发明能基于白名单规则安全防护,将会对此行为进行阻断或告警,以此避免工业控制网络受到未知漏洞威胁,同时还可以有效的阻止操作人员异常操作带来的危害。
附图说明
图1为本发明的工作流程图。
具体实施方式
首先需要说明的是,本发明涉及白名单提取技术,是计算机技术在工控系统安全领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的白名单提取技能实现本发明。凡本发明申请文件提及的均属此范畴,申请人不再一一列举。
下面结合附图与具体实施方式对本发明作进一步详细描述:
操作站、工程师站、服务器、控制器是工业控制系统的组成部分。操作员站操作员站是工业控制系统中用来现场操作人员操作,只有在线监视和简单的调节修改参数等功能;工程师站是指工控软件的工程师站,供工业过程控制工程师使用,能对计算机系统进行组态、编程、修改;服务器是工控系统存放过程数据库和趋势等数据的工作站。
如图1所示的一种基于白名单的控制器防护技术,具体包括下述步骤:
(1)工控软件的工程师站运行,在工程师站的控制器算法组态软件中部署控制器白名单提取软件;
所述控制器白名单提取软件是指:基于白名单原理嵌入在控制器算法组态软件中的提取控制器白名单的软件;
(2)将控制器接入网络,运行控制器白名单提取软件,软件根据白名单规则智能学习控制器与操作员站、工程师站、服务器信息交互的进程、数据传输或交互使用的通信协议;
所述控制器算法组态软件是指:供工业过程控制工程师使用的,对控制器算法进行组态、编程、修改等的软件;
(3)通过工程师站的控制器白名单提取软件,在工控网络中获取控制器白名单规则,包括控制器运行进程、通信协议、端口规则,下载到工程师站控制器算法组态软件中,形成白名单列表;
(4)工程师站把控制器算法组态中算法或运算逻辑传输更新到控制器中,同时提取到的控制器白名单规则一起传输更新到控制器中;
(5)启动控制器,运行控制器算法组态中算法或运算逻辑,控制器中更新的白名单规则运行;
(6)将控制器中运行的白名单规则,与工控网络中的实时与控制器交互的进程、通信协议、端口规则进行比较、匹配、判断,如果有新的规则不在控制器原来的白名单列表中,就判断新的规则是非法进程,进行阻止,实现对控制器防护。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。