一种工业控制系统威胁检测防御装置、系统及方法

文档序号:7802729阅读:210来源:国知局
一种工业控制系统威胁检测防御装置、系统及方法
【专利摘要】本发明公开了一种工业控制系统威胁检测防御装置、系统及方法,用于工业控制系统中的安全防护,该装置包括:威胁检测模块用于截获通信数据报文;识别其中的报文字段信息;根据报文字段信息判断通信数据报文是否为恶意报文;根据报文字段信息及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对本地上位机的恶意行为或由本地上位机发起的恶意行为;检测是否存在针对本地上位机内部控制程序的恶意操作;异常处理模块用于如果存在通信数据报文为恶意报文、针对本地上位机的恶意行为、由本地上位机发起的恶意行为、针对本地上位机内部控制程序的恶意操作中的一种或多种,根据安全配置文件触发进行对应的安全操作。
【专利说明】一种工业控制系统威胁检测防御装置、系统及方法
【技术领域】
[0001]本发明涉及工业控制系统【技术领域】,具体涉及一种工业控制系统威胁检测防御装置、系统及方法。
【背景技术】
[0002]在工业化和信息化的背景之下,现代工业企业的用于生产的工业控制系统越来越多的被连入到互联网之中,发挥信息系统的集成效益,但是随之而来的网络安全问题也日益明显。
[0003]由于工业控制系统网络在设计或者部署初期对于网络安全的重视程度不够,在现有技术中,针对不同类型的控制系统安全防护中,主要采用防火墙、网闸等设备进行安全防护,这些防护设备只能部署在工业控制系统与上层信息网络之间,以防止恶意信息进入工业控制网络。但是,一旦恶意攻击利用漏洞进入工业控制网络,或者攻击者直接在控制系统中以插入U盘或者带入恶意文件的方式进行植入式攻击,现有技术的安全防护手段无法对工业控制系统进行有效防护,一旦安全问题发生将出现较大的损失。

【发明内容】

[0004]有鉴于此,本发明提供一种工业控制系统威胁检测防御装置、系统及方法,以解决现有技术中安全防护手段无法对工业控制系统进行有效防护的技术问题。
[0005]为解决上述问题,本发明提供的技术方案如下:
[0006]一种工业控制系统威胁检测防御装置,所述装置部署在工业控制系统监控层的上位机中,所述装置包括:
[0007]威胁检测模块以及异常处理模块;
[0008]所述威胁检测模块包括:
[0009]截获单元,用于截获本地上位机接收或发送的通信数据报文;
[0010]识别单元,用于识别所述通信数据报文中的报文字段信息,所述报文字段信息包括源物理地址、源逻辑地址、目的物理地址、目的逻辑地址、协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容;
[0011]第一判断单元,用于根据截获的当前通信数据报文中的报文字段信息判断所述当前通信数据报文是否为恶意报文;
[0012]第二判断单元,用于根据所述当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对所述本地上位机的恶意行为或者由所述本地上位机发起的恶意行为;
[0013]第三判断单元,用于检测是否存在针对所述本地上位机内部控制程序的恶意操作;
[0014]所述异常处理模块,用于如果存在安全威胁,根据安全配置文件触发对所述安全威胁进行对应的安全操作,所述安全威胁包括所述当前通信数据报文为恶意报文、存在针对所述本地上位机的恶意行为、存在由所述本地上位机发起的恶意行为、存在针对所述本地上位机内部控制程序的恶意操作中的一种或多种,所述安全操作包括拦截处理、报警处理、放行处理或者安全状态启动处理。
[0015]相应的,所述第一判断单元包括:
[0016]第一判断子单元,用于判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与本地通信协议栈数据库中经认证报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果否,则确定所述当前通信数据报文为恶意报文;
[0017]第二判断子单元,用于判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与攻击检测规则库中记录的攻击报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果是,则确定所述当前通信数据报文为恶意报文;
[0018]第三判断子单元,用于判断截获的当前通信数据报文中的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容是否与所述本地通信协议栈数据库中记录的各字段内容的许可值相符合,如果否,则确定所述当前通信数据报文为恶意报文。
[0019]相应的,所述第二判断单元包括:
[0020]第一查找子单元,用于当截获本地上位机接收的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的源物理地址以及源逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第一待查行为数据流;
[0021]第一识别子单元,用于根据所述第一待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第一待查行为数据流代表的第一操作行为;
[0022]第四判断子单元,用于判断所述第一操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在针对所述本地上位机的恶意行为;
[0023]第二查找子单元,用于当截获本地上位机发送的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的目的物理地址以及目的逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第二待查行为数据流;
[0024]第二识别子单元,用于根据所述第二待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第二待查行为数据流代表的第二操作行为;
[0025]第五判断子单元,用于判断所述第二操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在由所述本地上位机发起的恶意行为。
[0026]相应的,所述第三判断单元具体用于:
[0027]采用在所述本地上位机的操作系统中植入劫持函数的方式来获得针对所述本地上位机内部控制程序的操作行为,判断所述操作行为是否与程序恶意操作库中所记录的恶意操作相同,如果是,则确定存在针对所述本地上位机内部控制程序的恶意操作。
[0028]相应的,所述装置还包括:
[0029]日志生成模块,用于生成所述安全威胁的日志信息;当所述当前通信数据报文不是恶意报文,记录所述通信数据报文信息,建立本地通信日志数据库。
[0030]相应的,所述装置还包括:
[0031]通信模块,用于接收威胁监控服务器下发的所述安全配置文件;向所述威胁监控服务器发送心跳数据包,所述心跳数据包包括发送时间戳、发送序列号、所述本地上位机的基本信息、所述本地上位机的工作状态;将所述安全威胁的日志信息发送给所述威胁监控服务器。
[0032]相应的,所述拦截处理包括对所述恶意报文进行丢弃,对所述针对所述本地上位机内部控制程序的恶意操作进行强行中断;
[0033]所述报警处理包括由所述本地上位机弹出异常发生消息进行报警;将所述安全威胁的日志信息发送给所述威胁监控服务器之后,由所述威胁监控服务器进行报警;
[0034]所述放行处理包括对所述通信数据报文不予干预;
[0035]所述安全状态启动处理包括工业控制系统的运行状态导向到安全运行状态运行。
[0036]一种工业控制系统威胁检测防御系统,所述系统包括:
[0037]威胁检测客户端以及威胁监控服务器;所述威胁检测客户端部署在工业控制系统监控层的每台上位机中,所述威胁监控服务器部署在所述工业控制系统监控层中;
[0038]所述威胁检测客户端是上述的一种工业控制系统威胁检测防御装置;
[0039]所述威胁监控服务器包括:
[0040]通信模块,用于接收所述威胁检测客户端发送的心跳数据包,所述心跳数据包包括发送时间戳、发送序列号、发送所述心跳数据包的上位机的基本信息、该上位机的工作状态;接收所述威胁检测客户端发送的安全威胁的日志信息;向所述威胁检测客户端发送安全配置文件;
[0041]数据库模块,根据所述心跳数据包以及所述安全威胁的日志信息,建立包括每台上位机信息的数据库,所述每台上位机信息包括该上位机对应的基本信息、工作状态以及安全威胁的日志信息。
[0042]相应的,所述威胁监控服务器还包括:
[0043]显示模块,用于对每台上位机信息通过浏览器/服务器B/S架构进行显示;
[0044]报表生成模块,用于根据每台上位机信息按照用户需求生成威胁检测报表。
[0045]一种工业控制系统威胁检测防御方法,应用在工业控制系统监控层的上位机中,所述方法包括:
[0046]截获本地上位机接收或发送的通信数据报文;
[0047]识别所述通信数据报文中的报文字段信息,所述报文字段信息包括源物理地址、源逻辑地址、目的物理地址、目的逻辑地址、协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容;
[0048]根据截获的当前通信数据报文中的报文字段信息判断所述当前通信数据报文是否为恶意报文;[0049]根据所述当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对所述本地上位机的恶意行为或者由所述本地上位机发起的恶意行为;
[0050]检测是否存在针对所述本地上位机内部控制程序的恶意操作;
[0051]如果存在安全威胁,根据安全配置文件对所述安全威胁进行对应的安全操作,所述安全威胁包括所述当前通信数据报文为恶意报文、存在针对所述本地上位机的恶意行为、存在由所述本地上位机发起的恶意行为、存在针对所述本地上位机内部控制程序的恶意操作中的一种或多种,所述安全操作包括所述安全操作包括拦截处理、报警处理、放行处理或者安全状态启动处理。
[0052]相应的,所述根据截获的当前通信数据报文中的报文字段信息判断所述当前通信数据报文是否为恶意报文,包括:
[0053]判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与本地通信协议栈数据库中经认证报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果否,则确定所述当前通信数据报文为恶意报文;
[0054]判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与攻击检测规则库中记录的攻击报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果是,则确定所述当前通信数据报文为恶意报文;
[0055]判断截获的当前通信数据报文中的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容是否与所述本地通信协议栈数据库中记录的各字段内容的许可值相符合,如果否,则确定所述当前通信数据报文为恶意报文。
[0056]相应的,所述根据所述当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对所述本地上位机的恶意行为或者由所述本地上位机发起的恶意行为,包括:
[0057]当截获本地上位机接收的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的源物理地址以及源逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第一待查行为数据流;
[0058]根据所述第一待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第一待查行为数据流代表的第一操作行为;
[0059]判断所述第一操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在针对所述本地上位机的恶意行为;
[0060]当截获本地上位机发送的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的目的物理地址以及目的逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第二待查行为数据流;
[0061]根据所述第二待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第二待查行为数据流代表的第二操作行为;
[0062]判断所述第二操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在由所述本地上位机发起的恶意行为。[0063]相应的,所述检测是否存在针对所述本地上位机内部控制程序的恶意操作,包括:
[0064]采用在所述本地上位机的操作系统中植入劫持函数的方式来获得针对所述本地上位机内部控制程序的操作行为,判断所述操作行为是否与程序恶意操作库中所记录的恶意操作相同,如果是,则确定存在针对所述本地上位机内部控制程序的恶意操作。
[0065]相应的,所述方法还包括:
[0066]生成所述安全威胁的日志信息;当所述当前通信数据报文不是恶意报文,记录所述通信数据报文信息,建立本地通信日志数据库。
[0067]相应的,所述方法还包括:
[0068]接收威胁监控服务器下发的所述安全配置文件;向所述威胁监控服务器发送心跳数据包,所述心跳数据包包括发送时间戳、发送序列号、所述本地上位机的基本信息、所述本地上位机的工作状态;将所述安全威胁的日志信息发送给所述威胁监控服务器。
[0069]相应的,所述拦截处理包括对所述恶意报文进行丢弃,对所述针对所述本地上位机内部控制程序的恶意操作进行强行中断;
[0070]所述报警处理包括由所述本地上位机弹出异常发生消息进行报警;将所述安全威胁的日志信息发送给所述威胁监控服务器之后,由所述威胁监控服务器进行报警;
[0071 ] 所述放行处理包括对所述通信数据报文不予干预;
[0072]所述安全状态启动处理包括工业控制系统的运行状态导向到安全运行状态运行。
[0073]由此可见,本发明实施例具有如下有益效果:
[0074]本发明实施例通过部署在工业控制系统监控层的上位机中的威胁检测客户端,判断上位机接收或发送的通信数据报文是否为恶意报文、是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为、是否存在针对本地上位机内部控制程序的恶意操作,发现安全威胁及时处理,实现了对工业控制系统内部进行有效威胁检测与防护,提高了系统安全性。另外,本发明实施例在安装和部署时不会影响控制工业控制系统正常工作,可以部署在运行中的工业控制系统中,可以在不改变工业控制系统网络的前提下进行全方位的防护。
【专利附图】

【附图说明】
[0075]图1为本发明实施例中工业控制系统威胁检测防御装置实施例一的示意图;
[0076]图2为本发明实施例中对上位机内部控制程序进行威胁检测的示意图;
[0077]图3为本发明实施例中工业控制系统威胁检测防御装置实施例二的示意图;
[0078]图4为本发明实施例中工业控制系统威胁检测防御系统实施例的示意图;
[0079]图5为本发明实施例中工业控制系统威胁检测防御系统实施例的部署结构示意图;
[0080]图6为本发明实施例中工业控制系统威胁检测防御方法实施例的流程图。
【具体实施方式】
[0081]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明实施例作进一步详细的说明。[0082]本发明工业控制系统威胁检测防御装置、系统及方法,是针对现有技术中安全防护手段无法对工业控制系统进行有效防护的技术问题,提出由分布在工业控制网络监控层的各个上位机中的威胁检测客户端对上位机发送或接收的通信数据报文以及上位机中的控制程序进行识别、监控,进行恶意报文例如泛洪攻击、拒绝服务攻击等通用网络攻击的检测,并利用工业控制网络协议进行对工业控制系统控制方案与代码读取、本地恶意代码注入/替换、对控制器进行代码注入、对控制器进行关机、要求控制器上传代码、对控制器关键地址的参数及属性窃取、控制代码篡改、测量数据欺骗等恶意操作行为的检测,同时还可以实现报警与拦截等保护,生成的威胁检测、处理数据可以由威胁监控服务器集中存储管理。
[0083]基于上述思想,本发明实施例提供一种工业控制系统威胁检测防御装置实施例,该装置可以理解为威胁检测客户端,威胁检测客户端可以部署在工业控制系统监控层的上位机中,工业控制系统监控层的上位机包括工程师站、操作员服务器/客户端站、OPC(Object Linking and Embedding for Process Control,用于过程控制的对象连接与嵌入OLE)服务器/客户端站、MES (Manufacturing Execution System,制造执行系统)服务器/客户端站、实时数据库服务器/客户端站等。
[0084]参见图1所示,是本发明实施例提供的工业控制系统威胁检测防御装置实施例一,可以包括:
[0085]威胁检测模块101以及异常处理模块102。
[0086]其中,威胁检测模块101可以包括:
[0087]截获单元1011,可以用于截获本地上位机接收或发送的通信数据报文。
[0088]威胁检测模块可以对工业控制系统中的通信数据报文进行拦截,可以采用通过向上位机操作系统底层通用网络(如通用以太网)驱动程序,或专有网络(如专用工业以太网协议,或其他串行或并行专有网络通信协议)驱动程序植入劫持函数的方式,来截获工业控制系统的通信数据报文,以获得本地上位机(如智能设备/工作站)与其他所有上位机或工业控制系统控制层的控制器之间的点对点、单播、多播、广播通信数据报文。
[0089]识别单元1012,可以用于识别通信数据报文中的报文字段信息,报文字段信息包括源物理地址、源逻辑地址、目的物理地址、目的逻辑地址、协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容。
[0090]威胁检测模块可以截获的通信数据报文进行分析,识别其中关键字段的内容,例如源物理地址、源逻辑地址、目的物理地址、目的逻辑地址、协议类型字段内容、优先级字段、命令字段、测量数据字段以及控制数据等字段的内容,以对通信数据报文以及通信数据报文构成的通信行为进行识别,判断上位机是否遭遇安全威胁。
[0091]第一判断单元1013,可以用于根据截获的当前通信数据报文中的报文字段信息判断当前通信数据报文是否为恶意报文。
[0092]第二判断单元1014,可以用于根据当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为。
[0093]第三判断单元1015,可以用于检测是否存在针对本地上位机内部控制程序的恶意操作。[0094]也即威胁检测模块可以具有至少三方面的安全威胁检测:第一,判断通信数据报文本身是否为恶意报文,例如判断是否受到泛洪攻击、拒绝服务攻击;第二,判断是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为,例如是否存在对工控系统控制方案与代码读取、恶意代码注入/替换、对控制器进行代码注入、对控制器进行关机、要求控制器上传代码、对控制器关键地址的参数及属性窃取、控制代码篡改、测量数据欺骗等测量控制攻击操作行为;第三,判断是否存在针对本地上位机内部控制程序的恶意操作,例如是否存在控制程序被恶意破坏/替换/更新/打补丁 /终止,进程是否被恶意终止。
[0095]异常处理模块102,可以用于如果存在安全威胁,根据安全配置文件触发对安全威胁进行对应的安全操作,安全威胁包括当前通信数据报文为恶意报文、存在针对本地上位机的恶意行为、存在由本地上位机发起的恶意行为、存在针对本地上位机内部控制程序的恶意操作中的一种或多种,安全操作包括拦截处理、报警处理、放行处理或者安全状态启动处理。
[0096]对于威胁检测模块识别出的安全威胁交由异常处理模块进行处理,异常处理模块可以根据安全配置文件的配置,对不同类型的安全威胁触发对应的安全操作,如进行拦截、报警、放行或者安全状态启动等安全操作。
[0097]在本发明的一些实施例中,第一判断单元1013可以包括:
[0098]第一判断子单元,用于判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与本地通信协议栈数据库中经认证报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果否,则确定当前通信数据报文为恶意报文。
[0099]第二判断子单元,用于判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与攻击检测规则库中记录的攻击报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果是,则确定当前通信数据报文为恶意报文。
[0100]第三判断子单元,用于判断截获的当前通信数据报文中的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容是否与本地通信协议栈数据库中记录的各字段内容的许可值相符合,如果否,则确定当前通信数据报文为恶意报文。
[0101]在判断当前通信数据报文是否为恶意报文的过程中,又可以具体分为以下几方面的识别:
[0102]第一,白名单识别:将截获的当前通信数据报文中的源/目的物理地址、逻辑地址与本地通信协议栈数据库中经授权、认证的源/目的物理地址、逻辑地址白名单进行比对,如果两者一致,则可以将本次通信数据报文的源/目的物理地址、逻辑地址、端口号、通信序列号、接收报文时间戳、发送报文时间戳等报文信息,建立本地通信日志数据库,并可以继续进行下一步通用网络攻击识别;如不符合,则认为该报文为疑似攻击报文,并交由异常处理模块处理。
[0103]第二,通用网络攻击识别:将截获的当前通信数据报文中的源/目的物理地址、逻辑地址与攻击检测规则库中的信息进行比对,判断本地上位机是否受到泛洪攻击、拒绝服务攻击等,如果是则交由异常处理模块处理,否则可以继续进行下一步工控协议语法与关键字段识别。
[0104]第三,工控协议语法与关键字段识别:将截获的当前通信数据报文,按本地通信协议栈数据库中定义的协议字段位置、字段长度进行分割,并对其中的关键字段如协议类型字段、优先级字段、命令字段、测量数据字段、控制数据字段等,进行许可取值识别,以判断各关键字段的内容和取值是否符合本地通信协议栈数据库中记录的协议规定,如果符合,则可以继续进行之后的判断过程;如不符合,则认为该报文为疑似攻击报文,并交由异常处理模块处理。
[0105]在本发明的一些实施例中,第二判断单元1014可以包括:
[0106]第一查找子单元,用于当截获本地上位机接收的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的源物理地址以及源逻辑地址相同的连续多个历史通信数据报文,将当前通信数据报文以及历史通信数据报文作为第一待查行为数据流。
[0107]第一识别子单元,用于根据第一待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别第一待查行为数据流代表的第一操作行为。
[0108]第四判断子单元,用于判断第一操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在针对本地上位机的恶意行为。
[0109]第二查找子单元,用于当截获本地上位机发送的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的目的物理地址以及目的逻辑地址相同的连续多个历史通信数据报文,将当前通信数据报文以及历史通信数据报文作为第二待查行为数据流。
[0110]第二识别子单元,用于根据第二待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别第二待查行为数据流代表的第二操作行为。
[0111]第五判断子单元,用于判断第二操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在由本地上位机发起的恶意行为。
[0112]在判断是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为的过程中,则可以分别对针对本地上位机的恶意行为和由本地上位机发起的恶意行为分别进行识别:
[0113]第一,针对本地上位机(智能设备/工作站)的测量控制恶意行为识别:在本地通信日志数据库中,提取与本次截获的网络通信接收报文中源物理地址/逻辑地址相同的若干个连续历史网络通信报文,根据其中的关键字段(如协议号、控制代码、数据内容、操作权限控制、指令标识等)与本地通信协议栈数据库中的定义进行匹配,识别针对本地上位机的操作行为,再与攻击检测规则库进行比对,识别有无针对本地上位机(智能设备/工作站)的恶意行为(包括对工控系统控制方案与代码读取、恶意代码注入/替换、对控制器进行代码注入、对控制器进行关机、要求控制器上传代码、对控制器关键地址的参数及属性窃取、控制代码篡改、测量数据欺骗等测量控制攻击操作行为),识别出这些安全威胁后,交由异常处理模块进行处理。
[0114]第二,类似的,由本地上位机(智能设备/工作站)发起的测量控制恶意行为识别:在本地通信日志数据库中,提取与本次截获的网络通信发送报文中目的物理地址/逻辑地址相同的若干个连续历史网络通信报文,根据其中的关键字段(如协议号、控制代码、数据内容、操作权限控制、指令标识等)与本地通信协议栈数据库中的定义进行匹配,识别针对本地上位机的操作行为,再与攻击检测规则库进行比对,识别有无针对本地上位机(智能设备/工作站)的恶意行为(包括对工控系统控制方案与代码读取、恶意代码注入/替换、对控制器进行代码注入、对控制器进行关机、要求控制器上传代码、对控制器关键地址的参数及属性窃取、控制代码篡改、测量数据欺骗等测量控制攻击操作行为),识别出这些安全威胁后,交由异常处理模块进行处理。
[0115]在本发明的一些实施例中,第三判断单元1015可以具体用于:
[0116]采用在本地上位机的操作系统中植入劫持函数的方式来获得针对本地上位机内部控制程序的操作行为,判断操作行为是否与程序恶意操作库中所记录的恶意操作相同,如果是,则确定存在针对本地上位机内部控制程序的恶意操作。
[0117]针对是否存在针对本地上位机内部控制程序的恶意操作的识别可以采用在本地上位机的操作系统底层文件系统和任务调度系统的驱动程序植入劫持函数的方式来获得针对上位机(如智能设备/工作站)内部的控制程序各类恶意行为,包括文件是否被破坏/替换/更新,进程和任务是否被恶意的远程注入/恶意终止等的恶意动作。
[0118]参见图2所示,是本发明实施例中对上位机内部控制程序进行威胁检测的示意图,在本发明实施例中,可以采取劫持操作系统底层操作函数的方式作为威胁检测和防御的基础。其中,劫持文件操作的底层函数,可以检测针对控制程序相关文件操作,当存在针对控制程序关键文件的修改,删除操作,进行威胁报警和防御;劫持进程操作的底层函数,可以检测针对控制程序相关进程和服务的操作。当存在针对控制程序进程和服务的恶意操作,如结束其进程,远程注入其进程,远程读取相关进程数据,远程操作相关进程的数据等操作,进行威胁报警和威胁处理;劫持驱动操作函数,防止操作系统被擅自加载驱动,破坏或者劫持控制程序的通信驱动,对该类操作进行威胁报警和威胁处理。
[0119]参见图3所示,是本发明实施例提供的工业控制系统威胁检测防御装置实施例二,在本发明的一些实施例中,本发明实施例提供的工业控制系统威胁检测防御装置实施例还可以包括:
[0120]日志生成模块301,用于生成安全威胁的日志信息;当当前通信数据报文不是恶意报文,记录通信数据报文信息,建立本地通信日志数据库。
[0121]日志生成模块可以生成安全威胁的日志信息以及通信数据日志:第一,日志生成模块可以将威胁检测模块检测到的安全威胁以及对应所采取的安全操作形成日志记录文件,具体的,可以由异常信息与行为类型、异常关联节点物理地址/逻辑地址、异常发生上位机、异常发生进程、异常发生函数、异常发生时间、处理依据、处理结果等内容生成安全威胁的日志信息;第二,日志生成模块可以由正常通信数据报文的源/目的物理地址、逻辑地址、端口号、通信序列号、接收报文时间戳、发送报文时间戳等报文信息生成通信数据日志,建立本地通信日志数据库。
[0122]在本发明的一些实施例中,本发明实施例提供的工业控制系统威胁检测防御装置实施例还可以包括:
[0123]通信模块302,用于接收威胁监控服务器下发的安全配置文件;向威胁监控服务器发送心跳数据包,心跳数据包包括发送时间戳、发送序列号、本地上位机的基本信息、本地上位机的工作状态;将安全威胁的日志信息发送给威胁监控服务器。
[0124]通信模块主要负责与威胁监控服务器的数据交互,可以采用TCP/IP通信方式与威胁监控服务器通信。接收威胁监控服务器下发的配置信息作为安全配置文件,下发给异常处理模块;定时发送心跳数据包给威胁监控服务端,以向威胁监控服务端报告本地上位机中运行的威胁检测客户端的运行与健康状态,该心跳数据包可以包括本地客户端的物理地址、逻辑地址、发送时间戳、发送序列号、本地客户端工作状态、健康状态等信息;当威胁日志产生时,通信模块可以发送日志生成模块生成的安全威胁的日志信息给威胁监控服务器。
[0125]在本发明的一些实施例中,本发明实施例提供的工业控制系统威胁检测防御装置实施例还可以包括:
[0126]自我防护模块303,用于通过隐藏自身进程的方式防止被劫持者发现和拦截。
[0127]自我防护模块可以保护威胁检测客户端本身不被恶意的结束,通过隐藏自身的运行信息,包括进程名、进程ID,并且通过底层函数劫持过滤的方式,监控过滤对威胁检测客户端进程的非法操作,包括远程进程注入,远程进行关闭等的动作来实现自我防护模块的功能。
[0128]在本发明的一些实施例中,异常处理模块中的安全操作具体可以为:
[0129]拦截处理包括对恶意报文进行丢弃,对针对本地上位机内部控制程序的恶意操作进行强行中断。对于恶意网络通信报文进行丢弃相关数据包方式的拦截,而对上位机内部的控制程序的异常行为的可以采用底层函数过滤的方式,强行中断来数据读取、文件替换、代码写入、进程插入、数据篡改等恶意操作,并使之不向操作命令发起程序反馈消息,或向操作命令发起程序反馈空消息。
[0130]报警处理包括由本地上位机弹出异常发生消息进行报警;将安全威胁的日志信息发送给威胁监控服务器之后,由威胁监控服务器进行报警。威胁检测客户端一方面以本地消息弹出的方式向用户或操作人员报告异常发生消息,另一方面将本地上位机主机地址、异常发生主机名称、异常信息与行为类型、异常关联节点物理地址/逻辑地址、异常发生进程、异常发生函数、异常发生时间、报警处理依据、处理结果发送给威胁监控服务器,由威胁监控服务器以消息、声、光报警驱动的形式予以报警。
[0131 ] 放行处理包括对通信数据报文不予干预。放行处理可以对威胁检测客户端威胁检测模块所检测的网络通信报文、控制程序操作,不予干预。
[0132]安全状态启动处理包括工业控制系统的运行状态导向到安全运行状态运行。依据威胁检测客户端建立的安全状态启用规则库,启动关联的联动安全操作控制程序,将工业控制系统的运行状态导向到安全状态,以避免灾难事故的发生。
[0133]这样,本发明实施例通过部署在工业控制系统监控层的上位机中的威胁检测客户端,判断上位机接收或发送的通信数据报文是否为恶意报文、是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为、是否存在针对本地上位机内部控制程序的恶意操作,发现安全威胁及时处理,实现了对工业控制系统内部进行有效威胁检测与防护,提高了系统安全性。另外,本发明实施例在安装和部署时不会影响控制工业控制系统正常工作,可以部署在运行中的工业控制系统中,可以在不改变工业控制系统网络的前提下进行全方位的防护。
[0134]相应的,参见图4所示,本发明实施例还提供一种工业控制系统威胁检测防御系统实施例,该系统包括:
[0135]威胁检测客户端401以及威胁监控服务器402。威胁检测客户端以及威胁监控服务器部署在同一个网络环境中,威胁检测客户端可以部署在工业控制系统监控层的每台上位机中,则威胁监控服务器也可以部署在工业控制系统监控层中威胁监控服务器可以部署在独立上位机(智能设备/工作站)中,也可以部署在与某一威胁检测客户端部署在同一上位机(智能设备/工作站)中。参见图5所示,示出了工业控制系统威胁检测防御系统部署结构示意图。
[0136]上位机可以包括工程师站、操作员服务器/客户端站、OPC服务器/客户端站、MES服务器/客户端站、实时数据库服务器/客户端站等。
[0137]并且威胁检测客户端部署在不同角色的上位机之中都不会影响其正常使用,也不需要这些设备重启或者停机,也不影响控制器的正常使用,不需要控制系统控制器停止工作或者重启。威胁监控服务器作为一台独立的服务器加入到工业控制系统网络,不影响工业控制系统网络的架构,不影响工业控制系统正常运行。
[0138]其中,威胁检测客户端401可以是上述任一工业控制系统威胁检测防御装置实施例:例如威胁检测客户端可以包括威胁检测模块101、异常处理模块102、日志生成模块301、通信模块302、自我防护模块303,各模式功能可以参见上述说明中的内容,此处不再赘述。
[0139]威胁监控服务器402则可以包括:
[0140]通信模块403,可以用于接收威胁检测客户端发送的心跳数据包,心跳数据包包括发送时间戳、发送序列号、发送心跳数据包的上位机的基本信息、该上位机的工作状态;接收威胁检测客户端发送的安全威胁的日志信息;向威胁检测客户端发送安全配置文件。
[0141]与威胁检测客户端中的通信模块对应,威胁监控服务器中的通信模块主要负责与威胁检测客户端的数据交互,可以通过开放80端口接收网络内威胁检测客户端发送的数据。具体的,可以实时接收各威胁检测客户端发送的心跳数据包以及安全威胁的日志信息,当收到数据后交由数据库模块进行处理。也可以发送由配置信息组成的安全配置文件给网络内的各威胁检测客户端。
[0142]数据库模块404,根据心跳数据包以及安全威胁的日志信息,建立包括每台上位机信息的数据库,每台上位机信息包括该上位机对应的基本信息、工作状态以及安全威胁的日志信息。
[0143]数据库模块负责存储管辖内各个威胁检测客户端上报的数据,数据库模块通过通信模块中获得的数据,把数据存入对应的数据库之中,数据库模块为每个上位机建立一个唯一的ID、用这个ID来关联各个主机的信息,包括上位机的安全威胁的日志信息、上位机的运行状态,上位机的基本信息,其中安全威胁的日志信息可以包括异常信息与行为类型、异常关联节点物理地址/逻辑地址、异常发生上位机、异常发生进程、异常发生函数、异常发生时间、处理依据、处理结果等。[0144]在本发明的一些实施例中,本发明实施例中威胁监控服务器还可以包括:
[0145]显示模块405,用于对每台上位机信息通过浏览器/服务器B/S架构进行显示。
[0146]显示模块可以显示网络内各个部署威胁检测客户端的上位机的正常/异常运行情况、安全威胁上报情况以及安全威胁行为阻断情况等。当收到心跳数据包之后,通信模块会根据数据库模块中的上位机信息进行比对,如果上位机状态发生了改变,通信模块会驱动显示模块实时显示上位机新的状态。显示模块可以通过一种B/S的架构进行显示,可以在同一网络内的任意地方访问服务器进行显示,这样有利于访问的高效性和快捷性。
[0147]报表生成模块406,用于根据每台上位机信息按照用户需求生成威胁检测报表。
[0148]报表生成模块可以按用户所需要生成各种威胁检测报表,从数据库模块中获得相关的日志信息,并且把这些信息进行转换,生成一个文档,让用户保存在本地,供日常安全检测使用。
[0149]这样,本发明实施例通过部署在工业控制系统监控层的上位机中的威胁检测客户端,判断上位机接收或发送的通信数据报文是否为恶意报文、是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为、是否存在针对本地上位机内部控制程序的恶意操作,发现安全威胁及时处理,实现了对工业控制系统内部进行有效威胁检测与防护,提高了系统安全性。另外,本发明实施例在安装和部署时不会影响控制工业控制系统正常工作,可以部署在运行中的工业控制系统中,可以在不改变工业控制系统网络的前提下进行全方位的防护。
[0150]相应的,参见图6所示,本发明实施例还提供一种工业控制系统威胁检测防御方法实施例,可以应用在工业控制系统监控层上位机中,该方法包括:
[0151]步骤601:截获本地上位机接收或发送的通信数据报文。
[0152]步骤602:识别通信数据报文中的报文字段信息,报文字段信息包括源物理地址、源逻辑地址、目的物理地址、目的逻辑地址、协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容。
[0153]步骤603:根据截获的当前通信数据报文中的报文字段信息判断当前通信数据报文是否为恶意报文。
[0154]步骤604:根据当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为。
[0155]步骤605:检测是否存在针对本地上位机内部控制程序的恶意操作。
[0156]步骤606:如果存在安全威胁,根据安全配置文件对安全威胁进行对应的安全操作,安全威胁包括当前通信数据报文为恶意报文、存在针对本地上位机的恶意行为、存在由本地上位机发起的恶意行为、存在针对本地上位机内部控制程序的恶意操作中的一种或多种,安全操作包括安全操作包括拦截处理、报警处理、放行处理或者安全状态启动处理。
[0157]在本发明实施例中,对判断当前通信数据报文是否为恶意报文、判断是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为、检测是否存在针对本地上位机内部控制程序的恶意操作的步骤之间的顺序并不进行限定。
[0158]在本发明的一些实施例中,根据截获的当前通信数据报文中的报文字段信息判断当前通信数据报文是否为恶意报文的具体实现可以包括:[0159]判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与本地通信协议栈数据库中经认证报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果否,则确定当前通信数据报文为恶意报文;
[0160]判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与攻击检测规则库中记录的攻击报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果是,则确定当前通信数据报文为恶意报文;
[0161]判断截获的当前通信数据报文中的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容是否与本地通信协议栈数据库中记录的各字段内容的许可值相符合,如果否,则确定当前通信数据报文为恶意报文。
[0162]在本发明的一些实施例中,根据当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为的具体实现可以包括:
[0163]当截获本地上位机接收的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的源物理地址以及源逻辑地址相同的连续多个历史通信数据报文,将当前通信数据报文以及历史通信数据报文作为第一待查行为数据流;
[0164]根据第一待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别第一待查行为数据流代表的第一操作行为;
[0165]判断第一操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在针对本地上位机的恶意行为;
[0166]当截获本地上位机发送的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的目的物理地址以及目的逻辑地址相同的连续多个历史通信数据报文,将当前通信数据报文以及历史通信数据报文作为第二待查行为数据流;
[0167]根据第二待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别第二待查行为数据流代表的第二操作行为;
[0168]判断第二操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在由本地上位机发起的恶意行为。
[0169]在本发明的一些实施例中,检测是否存在针对本地上位机内部控制程序的恶意操作,包括:
[0170]采用在本地上位机的操作系统中植入劫持函数的方式来获得针对本地上位机内部控制程序的操作行为,判断操作行为是否与程序恶意操作库中所记录的恶意操作相同,如果是,则确定存在针对本地上位机内部控制程序的恶意操作。
[0171 ] 在本发明的一些实施例中,本发明实施例提供的工业控制系统威胁检测防御方法实施例还可以包括:生成安全威胁的日志信息;当当前通信数据报文不是恶意报文,记录通信数据报文信息,建立本地通信日志数据库。
[0172]可以将检测到的安全威胁以及对应所采取的安全操作形成安全威胁的日志信息,可以包括异常信息与行为类型、异常关联节点物理地址/逻辑地址、异常发生上位机、异常发生进程、异常发生函数、异常发生时间、处理依据、处理结果等内容;当判断当前通信数据报文不是恶意报文,正常通信数据报文的源/目的物理地址、逻辑地址、端口号、通信序列号、接收报文时间戳、发送报文时间戳等报文信息生成通信数据日志,建立本地通信日志数据库。
[0173]在本发明的一些实施例中,本发明实施例提供的工业控制系统威胁检测防御方法实施例还可以包括:
[0174]接收威胁监控服务器下发的安全配置文件;向威胁监控服务器发送心跳数据包,心跳数据包包括发送时间戳、发送序列号、本地上位机的基本信息、本地上位机的工作状态;将安全威胁的日志信息发送给威胁监控服务器。
[0175]在本发明的一些实施例中,拦截处理可以包括对恶意报文进行丢弃,对针对本地上位机内部控制程序的恶意操作进行强行中断;报警处理可以包括由本地上位机弹出异常发生消息进行报警;将安全威胁的日志信息发送给威胁监控服务器之后,由威胁监控服务器进行报警;放行处理可以包括对通信数据报文不予干预;安全状态启动处理可以包括工业控制系统的运行状态导向到安全运行状态运行。
[0176]这样,本发明实施例通过部署在工业控制系统监控层的上位机中的威胁检测客户端,判断上位机接收或发送的通信数据报文是否为恶意报文、是否存在针对本地上位机的恶意行为或者由本地上位机发起的恶意行为、是否存在针对本地上位机内部控制程序的恶意操作,发现安全威胁及时处理,实现了对工业控制系统内部进行有效威胁检测与防护,提高了系统安全性。另外,本发明实施例在安装和部署时不会影响控制工业控制系统正常工作,可以部署在运行中的工业控制系统中,可以在不改变工业控制系统网络的前提下进行全方位的防护。 [0177]需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0178]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0179]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0180]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种工业控制系统威胁检测防御装置,其特征在于,所述装置部署在工业控制系统监控层的上位机中,所述装置包括: 威胁检测模块以及异常处理模块; 所述威胁检测模块包括: 截获单元,用于截获本地上位机接收或发送的通信数据报文; 识别单元,用于识别所述通信数据报文中的报文字段信息,所述报文字段信息包括源物理地址、源逻辑地址、目的物理地址、目的逻辑地址、协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容; 第一判断单元,用于根据截获的当前通信数据报文中的报文字段信息判断所述当前通信数据报文是否为恶意报文; 第二判断单元,用于根据所述当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对所述本地上位机的恶意行为或者由所述本地上位机发起的恶意行为; 第三判断单元,用于检测是否存在针对所述本地上位机内部控制程序的恶意操作; 所述异常处理模块,用 于如果存在安全威胁,根据安全配置文件触发对所述安全威胁进行对应的安全操作,所述安全威胁包括所述当前通信数据报文为恶意报文、存在针对所述本地上位机的恶意行为、存在由所述本地上位机发起的恶意行为、存在针对所述本地上位机内部控制程序的恶意操作中的一种或多种,所述安全操作包括拦截处理、报警处理、放行处理或者安全状态启动处理。
2.根据权利要求1所述的装置,其特征在于,所述第一判断单元包括: 第一判断子单元,用于判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与本地通信协议栈数据库中经认证报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果否,则确定所述当前通信数据报文为恶意报文; 第二判断子单元,用于判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与攻击检测规则库中记录的攻击报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果是,则确定所述当前通信数据报文为恶意报文; 第三判断子单元,用于判断截获的当前通信数据报文中的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容是否与所述本地通信协议栈数据库中记录的各字段内容的许可值相符合,如果否,则确定所述当前通信数据报文为恶意报文。
3.根据权利要求1所述的装置,其特征在于,所述第二判断单元包括: 第一查找子单元,用于当截获本地上位机接收的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的源物理地址以及源逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第一待查行为数据流; 第一识别子单元,用于根据所述第一待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第一待查行为数据流代表的第一操作行为; 第四判断子单元,用于判断所述第一操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在针对所述本地上位机的恶意行为; 第二查找子单元,用于当截获本地上位机发送的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的目的物理地址以及目的逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第二待查行为数据流; 第二识别子单元,用于根据所述第二待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第二待查行为数据流代表的第二操作行为; 第五判断子单元,用于判断所述第二操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在由所述本地上位机发起的恶意行为。
4.根据权利要求1所述的装置,其特征在于,所述第三判断单元具体用于: 采用在所述本地上位机的操作系统中植入劫持函数的方式来获得针对所述本地上位机内部控制程序的操作行为,判断所述操作行为是否与程序恶意操作库中所记录的恶意操作相同,如果是,则确定存在针对所述本地上位机内部控制程序的恶意操作。
5.根据权利要求1所述的装置,其特征在于,所述装置还包括: 日志生成模块,用于生成所述安全威胁的日志信息;当所述当前通信数据报文不是恶意报文,记录所述通信数据报文信息,建立本地通信日志数据库。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括: 通信模块,用于接收威胁监控服务器下发的所述安全配置文件;向所述威胁监控服务器发送心跳数据包,所述心跳数据包包括发送时间戳、发送序列号、所述本地上位机的基本信息、所述本地上位机的工作状态;将所述安全威胁的日志信息发送给所述威胁监控服务器。
7.根据权利要求6所述的装置,其特征在于, 所述拦截处理包括对所述恶意报文进行丢弃,对所述针对所述本地上位机内部控制程序的恶意操作进行强行中断; 所述报警处理包括由所述本地上位机弹出异常发生消息进行报警;将所述安全威胁的日志信息发送给所述威胁监控服务器之后,由所述威胁监控服务器进行报警; 所述放行处理包括对所述通信数据报文不予干预; 所述安全状态启动处理包括工业控制系统的运行状态导向到安全运行状态运行。
8.一种工业控制系统威胁检测防御系统,其特征在于,所述系统包括: 威胁检测客户端以及威胁监控服务器;所述威胁检测客户端部署在工业控制系统监控层的每台上位机中,所述 威胁监控服务器部署在所述工业控制系统监控层中; 所述威胁检测客户端是权利要求1-7任一项所述的一种工业控制系统威胁检测防御装置; 所述威胁监控服务器包括:通信模块,用于接收所述威胁检测客户端发送的心跳数据包,所述心跳数据包包括发送时间戳、发送序列号、发送所述心跳数据包的上位机的基本信息、该上位机的工作状态;接收所述威胁检测客户端发送的安全威胁的日志信息;向所述威胁检测客户端发送安全配直文件; 数据库模块,根据所述心跳数据包以及所述安全威胁的日志信息,建立包括每台上位机信息的数据库,所述每台上位机信息包括该上位机对应的基本信息、工作状态以及安全威胁的日志信息。
9.根据权利要求8所述的系统,其特征在于,所述威胁监控服务器还包括: 显示模块,用于对每台上位机信息通过浏览器/服务器B/S架构进行显示; 报表生成模块,用于根据每台上位机信息按照用户需求生成威胁检测报表。
10.一种工业控制系统威胁检测防御方法,其特征在于,应用在工业控制系统监控层的上位机中,所述方法包括: 截获本地上位机接收或发送的通信数据报文; 识别所述通信数据报文中的报文字段信息,所述报文字段信息包括源物理地址、源逻辑地址、目的物理地址、目的逻辑地址、协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容; 根据截获的当前通信数据报文中的报文字段信息判断所述当前通信数据报文是否为恶意报文; 根据所述当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对所述本地上位机的恶意行为或者由所述本地上位机发起的恶意行为; 检测是否存在针对所述本地上位机内部控制程序的恶意操作; 如果存在安全威胁,根据安全配置文件对所述安全威胁进行对应的安全操作,所述安全威胁包括所述当前通信数据报文为恶意报文、存在针对所述本地上位机的恶意行为、存在由所述本地上位机发起的恶意行为、存在针对所述本地上位机内部控制程序的恶意操作中的一种或多种,所述安全操作包括所述安全操作包括拦截处理、报警处理、放行处理或者安全状态启动处理。
11.根据权利要求10所述的方法,其特征在于,所述根据截获的当前通信数据报文中的报文字段信息判断所述当前通信数据报文是否为恶意报文,包括: 判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与本地通信协议栈数据库中经认证报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果否,则确定所述当前通信数据报文为恶意报文; 判断截获的当前通信数据报文中的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址与攻击检测规则库中记录的攻击报文的源物理地址、源逻辑地址、目的物理地址以及目的逻辑地址是否一致,如果是,则确定所述当前通信数据报文为恶意报文; 判断截获的当前通信数据报文中的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容是否与所述本地通信协议栈数据库中记录的各字段内容的许可值相符合,如果否,则确定所述当前通信数据报文为恶意报文。
12.根据权利要求10所述的方法,其特征在于,所述根据所述当前通信数据报文中的报文字段信息以及本地通信日志数据库中记录的通信报文中的报文字段信息判断是否存在针对所述本地上位机的恶意行为或者由所述本地上位机发起的恶意行为,包括: 当截获本地上位机接收的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的源物理地址以及源逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第一待查行为数据流; 根据所述第一待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第一待查行为数据流代表的第一操作行为; 判断所述第一操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在针对所述本地上位机的恶意行为; 当截获本地上位机发送的当前通信数据报文时,在本地通信日志数据库中查找获得与当前通信数据报文中的目的物理地址以及目的逻辑地址相同的连续多个历史通信数据报文,将所述当前通信数据报文以及所述历史通信数据报文作为第二待查行为数据流; 根据所述第二待查行为数据流中各个通信数据报文的协议类型字段内容、优先级字段内容、命令字段内容、测量数据字段内容以及控制数据字段内容与本地通信协议栈数据库中定义的字段含义进行匹配,识别所述第二待查行为数据流代表的第二操作行为; 判断所述第二操作行为是否与攻击检测规则库中记录的恶意行为相同,如果是,则确定存在由所述本地上位机发起的恶意行为。
13.根据权利要求10所述的方法,其特征在于,所述检测是否存在针对所述本地上位机内部控制程序的恶意操作,包括: 采用在所述本地上位机的操作系统中植入劫持函数的方式来获得针对所述本地上位机内部控制程序的操作行为,判断所述操作行为是否与程序恶意操作库中所记录的恶意操作相同,如果是,则确定存在针对所述本地上位机内部控制程序的恶意操作。
14.根据权利要求10所述的方法,其特征在于,所述方法还包括: 生成所述安全威胁的日志信息;当所述当前通信数据报文不是恶意报文,记录所述通信数据报文信息,建立本地通信日志数据库。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括: 接收威胁监控服务器下发的所述安全配置文件;向所述威胁监控服务器发送心跳数据包,所述心跳数据包包括发送时间戳、发送序列号、所述本地上位机的基本信息、所述本地上位机的工作状态;将所述安全威胁的日志信息发送给所述威胁监控服务器。
16.根据权利要求15所述的方法,其特征在于, 所述拦截处理包括对所述恶意报文进行丢弃,对所述针对所述本地上位机内部控制程序的恶意操作进行强行中断; 所述报警处理包括由所述本地上位机弹出异常发生消息进行报警;将所述安全威胁的日志信息发送给所述威胁监控服务器之后,由所述威胁监控服务器进行报警; 所述放行处理包括对所述通信数据报文不予干预; 所述安全状态启动处理包括工业控制系统的运行状态导向到安全运行状态运行。
【文档编号】H04L29/06GK103944915SQ201410179214
【公开日】2014年7月23日 申请日期:2014年4月29日 优先权日:2014年4月29日
【发明者】冯冬芹, 薛金良, 施一明 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1