CN115033881B - Plc控制器病毒检测方法、装置、设备及存储介质 - Google Patents
Plc控制器病毒检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115033881B CN115033881B CN202210964702.6A CN202210964702A CN115033881B CN 115033881 B CN115033881 B CN 115033881B CN 202210964702 A CN202210964702 A CN 202210964702A CN 115033881 B CN115033881 B CN 115033881B
- Authority
- CN
- China
- Prior art keywords
- plc controller
- logic
- detection
- plc
- virus detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/145—Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明公开了一种PLC控制器病毒检测方法、装置、设备及存储介质,利用PLC控制器主动探测技术向工控系统网络内的主机发送探测报文,通过对响应报文的深度解析,实现对PLC控制器基础信息的主动识别发现。针对具备本地工程逻辑等先验知识的情况下,可基于PLC控制器工程逻辑的稳定性特征,利用PLC控制器逻辑信息提取技术可实现对逻辑信息的探测获取,继而与本地抽取的逻辑信息进行文本化对比分析,最终实现对PLC控制器植入病毒的快速检测。针对无本地工程逻辑等先验知识的情况下,面对可能存在的病毒,还可通过对PLC控制器完整工程逻辑的获取,结合静态特征分析技术,实现对病毒检测的准确判断。
Description
技术领域
本发明涉及工控安全防护技术领域,尤其涉及到一种PLC控制器病毒检测方法、装置、设备及存储介质。
背景技术
可编程逻辑控制器(Programmable Logic Controller,简称PLC)是一种专门在工业环境下使用的可编程数字电子装置。PLC控制器可通过数据采集、测量和参数调节等手段实现对运行设备的监视和控制。目前,PLC控制器已成为工业控制系统的重要组成部分,并广泛应用于社会各领域。
近年来,世界范围内针对工业控制系统的恶意事件频发,一方面是由于工业互联网的大力发展与快速融合升级,另一方面也是由于传统工控系统自身安全防护能力与重视程度不够,最终导致工控系统的安全问题在多因素叠加下日益凸显。对于新型的PLC病毒可绕过上位机及其杀毒软件,并直接通过私有调试协议将病毒嵌入至PLC控制器,甚至具备在控制器之间的繁殖传播能力,对工业控制系统形成了严重的威胁。
当前,针对PLC控制器的安全检测多采用对工控系统网络进行流量异常监控的方法。该方法首先通过对工控系统环境中正常运行与非正常运行状态下的网络流量进行学习建模,随后生成并利用异常流量的行为特征,进而实现对异常行为和流量的动态监测与报警。异常流量监控的方案虽然实现了对特定异常流量识别与报警的功能,但无法直接针对PLC控制器自身的安全状态进行检测。同时其还可能存在识别准确率不高和提前预警能力较弱等方面的不足。首先,由于报文流量等样本条件限制,识别模型的判断准确率普遍不高,较容易出现误判。而一旦工控系统因误判出现强制措施紧急启动的情况,这可能会对误操作容忍度相对较低的工控系统产生较大影响,导致生产过程中断;其次,异常流量监控方法属于对流量行为的被动监测,是对异常流量和行为的事后发现过程,并不具备对潜伏病毒异常行为进行提前预警的能力。
因此,如何提升针对PLC控制器的安全检测能力以及完善工控系统的安全防护水平,是一个亟需解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种PLC控制器病毒检测方法、装置、设备及存储介质,旨在解决日益严重的工控系统网络安全问题和传统PLC控制器安全检测能力相对薄弱的技术问题。
为实现上述目的,本发明提供一种PLC控制器病毒检测方法,包括以下步骤:
在接收到检测指令时,向目标PLC控制器发送标识信息探测报文;
接收目标PLC控制器发送的响应报文,并对所述响应报文执行信息提取,获得目标PLC控制器的标识信息;
基于标识信息,判断目标PLC控制器在本地是否存储有工程逻辑信息;
若是,向目标PLC控制器发送时间戳探测报文和逻辑信息探测报文,并根据工程逻辑信息对目标PLC控制器发送的响应报文进行逻辑匹配,判断目标PLC控制器是否病毒检测异常;
若否,向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常。
可选的,所述在接收到检测指令时,向目标PLC控制器发送标识信息探测报文步骤,具体包括:
在接收到检测指令时,提取检测指令中的IP段地址;
对IP段地址中每个IP地址对应的PLC控制器进行存活性和端口探测;
构建标识信息探测报文,并将标识信息探测报文发送至目标PLC控制器;其中,所述目标PLC控制器为存活且端口开启的PLC控制器。
可选的,所述标识信息包括IP地址、开放端口、生产厂商、设备型号或设备序列号中的一种或多种。
可选的,所述向目标PLC控制器发送时间戳探测报文和逻辑信息探测报文,并根据工程逻辑信息对目标PLC控制器发送的响应报文进行逻辑匹配,判断目标PLC控制器是否病毒检测异常步骤,具体包括:
向目标PLC控制器发送时间戳探测报文,并接收响应报文;
提取响应报文中目标PLC控制器的逻辑载入时间戳,将所述逻辑载入时间戳与工程逻辑信息中记录的本地时间戳进行匹配;
若匹配成功,则向目标PLC控制器发送逻辑信息探测报文,并接收响应报文;若匹配不成功,生成病毒检测报警;
提取响应报文中目标PLC控制器的逻辑信息,将所述逻辑信息与工程逻辑信息中记录的本地工程逻辑信息进行匹配,若匹配不成功,生成病毒检测报警。
可选的,所述逻辑信息包括项目名称、逻辑调用函数名称或变量参数名称中的一种或多种。
可选的,所述向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常步骤,具体包括:
向目标PLC控制器发送工程逻辑提取报文,并接收响应报文;
提取响应报文中目标PLC控制器的工程逻辑文件,利用静态工程分析法对上述工程逻辑文件与病毒样本进行特征匹配;
若检测到工程逻辑文件中存在与病毒样本特征匹配的非常规逻辑代码,则生成病毒检测报警。
可选的,所述非常规逻辑代码包括:地址靠后OB块、TCON系统函数以及循环向不合理IP地址发起通信连接。
此外,为了实现上述目的,本发明还提供了一种PLC控制器病毒检测装置,所述PLC控制器病毒检测装置包括:
发送模块,用于在接收到检测指令时,向目标PLC控制器发送标识信息探测报文;
提取模块,用于接收目标PLC控制器发送的响应报文,并对所述响应报文执行信息提取,获得目标PLC控制器的标识信息;
第一判断模块,用于基于标识信息,判断目标PLC控制器在本地是否存储有工程逻辑信息;
第二判断模块,用于向目标PLC控制器发送时间戳探测报文和逻辑信息探测报文,并根据工程逻辑信息对目标PLC控制器发送的响应报文进行逻辑匹配,判断目标PLC控制器是否病毒检测异常;
第三判断模块,用于向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常。
此外,为了实现上述目的,本发明还提供了一种PLC控制器病毒检测设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的PLC控制器病毒检测方法程序,所述PLC控制器病毒检测方法程序被所述处理器执行时实现上述的PLC控制器病毒检测方法的步骤。
此外,为了实现上述目的,本发明还提供了一种存储介质,所述存储介质上存储有PLC控制器病毒检测方法程序,所述PLC控制器病毒检测方法程序被处理器执行时实现上述的PLC控制器病毒检测方法的步骤。
本申请的有益效果如下:
1.主动探测能力强
本申请通过对PLC控制器的交互流程和协议的解析,具备对工业控制系统网络内PLC控制器的IP地址、开放端口、厂商型号等基础信息的自动探测识别能力,具有较强的主动性和实时性,并可为后续病毒检测提供信息支撑。
2.病毒检测准确率高
本申请克服了传统工控系统网络异常流量监测准确率不高的问题,具备对PLC控制器病毒的快速检测和深度检测能力,利用主动探测技术可实现对工程逻辑载入时间戳、逻辑调用函数名称、变量参数以及完整工程逻辑等的探测获取,通过结合逻辑信息对比分析与静态特征分析等技术,可实现植入病毒检测的快速准确判断。
3.病毒检测阶段早
本申请克服了传统工控系统网络异常流量监测仅能对异常行为进行事后发现的不足,通过PLC控制器的主动识别探测和基于逻辑信息的快速深度检测,可实现对潜伏病毒的异常行为进行提前预警。
4.研究对象应用范围广
本申请的研究对象PLC控制器在国家社会的各工业控制系统领域中有大量应用,并可针对多厂商型号的PLC控制器进行主动识别和病毒检测,具有较高的工程实用价值。
附图说明
图1为本发明实施例中一种PLC控制器病毒检测方法的流程示意图;
图2为典型工业控制系统的结构示意图;
图3为本发明基于逻辑信息的PLC控制器主动识别与病毒检测整体流程图;
图4为本发明PLC控制器主动探测识别流程图;
图5为本发明基于逻辑信息的PLC控制器快速病毒检测流程图;
图6为本发明基于逻辑信息的PLC控制器零先验深度病毒检测流程图;
图7为本发明实施例中一种PLC控制器病毒检测装置的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
目前,在相关技术领域,工控系统网络安全问题日益严重,传统PLC控制器安全检测能力相对薄弱。
为了解决这一问题,提出本发明的PLC控制器病毒检测方法的各个实施例。本发明提供的PLC控制器病毒检测方法克服了传统工控系统网络异常流量检测准确率不高、无法实现对潜伏病毒异常行为提前预警的不足,利用PLC控制器主动发现技术、逻辑信息对比分析与静态特征分析技术实现了对PLC控制器病毒的快速准确检测。
通常,设备包括:至少一个处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的PLC控制器病毒检测方法程序,所述PLC控制器病毒检测方法程序配置为实现如前所述的PLC控制器病毒检测方法的步骤。
处理器可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-ProgrammableGate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关PLC控制器病毒检测方法操作,使得PLC控制器病毒检测方法模型可以自主训练学习,提高效率和准确度。
存储器可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器所执行以实现本申请中方法实施例提供的PLC控制器病毒检测方法。
本领域技术人员可以理解,PLC控制器病毒检测设备,可以包括比上述描述更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明实施例提供了一种PLC控制器病毒检测方法,参照图1,图1为本发明PLC控制器病毒检测方法实施例的流程示意图。
本实施例中,所述PLC控制器病毒检测方法包括以下步骤:
S100,在接收到检测指令时,向目标PLC控制器发送标识信息探测报文;
S200,接收目标PLC控制器发送的响应报文,并对所述响应报文执行信息提取,获得目标PLC控制器的标识信息;
S300,基于标识信息,判断目标PLC控制器在本地是否存储有工程逻辑信息;
S400,若是,向目标PLC控制器发送时间戳探测报文和逻辑信息探测报文,并根据工程逻辑信息对目标PLC控制器发送的响应报文进行逻辑匹配,判断目标PLC控制器是否病毒检测异常;
S500,若否,向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常。
为了更清楚的解释本申请,下面对本申请一种PLC控制器病毒检测方法的实施例进行具体说明。
如图2所示,典型的工业控制系统主要由主站计算机与服务器(包括硬件和软件)、PLC控制器、监视触摸屏及阀门等设备构成。整体来看,工控系统架构主要可分为三层:监控中心层、逻辑控制层和设备执行层。其中,监控中心层主要由进行监视、管理的计算机与服务器构成,可实现现场业务、执行设备的遥控和管理;逻辑控制层则通常由各类的PLC控制器等设备组成,主要完成对现场设备的实时数据采集和逻辑控制,并向监控中心层动态反馈现场执行层的运行状态和参数等信息;设备执行层则主要由传感器、阀门、泵机组和压缩机组等设备组成,完成对工业环境的压力、温度、流量等通断、测量和控制等行为。
为了实现对PLC控制器的病毒检测,直接将病毒检测主机接入工控系统网络即可对PLC控制器开展主动探测识别和病毒检测。如图3所示,该技术主要分为PLC控制器主动探测识别和基于逻辑信息的PLC控制器病毒检测两个阶段。
其中,针对PLC控制器的病毒检测主要可分为快速病毒检测和零先验深度病毒检测两种工作模式。快速病毒检测主要是基于本地和探测获取的载入时间戳、项目名称等逻辑信息,利用对比分析技术实现病毒的快速检测;零先验深度病毒检测则是在无本地工程逻辑等相关信息的前提下结合工程逻辑探取、静态特征分析实现对病毒的深度检测。用户可根据实际情况,在两种工作模式间自由选择和切换。
(1)PLC控制器主动探测识别
基于对PLC控制器的协议解析和交互流程的研究分析,可通过ICMP协议、工控协议等向PLC控制器主动发送探测报文完成包括IP地址、开放端口、生产厂商、设备型号和设备序列号等基本信息的获取,为后续PLC控制器的病毒检测过程提供目标地址和设备类型等必要信息。针对PLC控制器基础信息探测的流程图如图4所示,主要可分为四个步骤:
1)主机探活。PLC控制器探测首先接收并自动解析输入参数中的IP段地址,随后利用ICMP协议PING指令依序对目标IP地址的存活性进行单次快速探测。如果目标IP地址正常响应报文,则判定该IP地址主机存活,并进入端口探活阶段;否则,本次探测结束并继续IP段内的其他地址的探测。
2)端口遍历与探活。PLC控制器与工程师站通常主要通过特定的端口进行信息交换。基于预置的各厂商PLC控制器端口号,程序会在目标主机存活的条件下,利用TCP协议对目标主机进行端口遍历与探测。如果目标主机的特定端口开启,则判定该端口开启,则进入基础信息探测阶段;否则,本次探测将结束并继续其余端口的探测,直至遍历完成。
3)探测识别报文构建。通过对PLC控制器的交互流程与协议的解析,程序基于端口探测的结果,程序根据报文规则将会话连接序号等内容适当嵌入到报文特定字段,构建出完整的探测报文。
4)PLC控制器基础信息探测。针对PLC控制器的基础信息探测主要可分为报文发送和信息提取两个过程。PLC控制器探测器首先将构建的探测报文依序向目标设备进行发送,再将响应报文送入报文分析器进行关键信息的转换与提取,最后将探测结果进行输出显示。
(2)基于逻辑信息的PLC控制器快速病毒检测
针对现有PLC控制器病毒样本的研究分析,本发明提出一种基于逻辑信息的PLC控制器快速病毒检测方法,该方法主要是基于PLC控制器病毒采用逻辑篡改以实现恶意行为的特征,采用工程逻辑载入时间戳和工程逻辑调用函数名称等逻辑信息与本地工程逻辑信息进行数据文本化对比的方式实现病毒的快速检测。如图5所示,此方法主要可分为三个步骤:
1)本地参考逻辑信息抽取。首先针对本地工程逻辑进行包括逻辑载入时间戳、项目名称、逻辑调用函数名称和变量参数名称等逻辑信息的文本化抽取或输入,并将抽取结果进行存储,作为后续实施逻辑信息文本化比对的参考样本。
2)逻辑载入时间戳匹配。首先将构建的时间戳探测报文依序向目标设备进行发送,随后将响应报文进行逻辑载入时间戳的提取,并与本地时间戳参考样本进行对比分析。如果目标PLC控制器的逻辑载入时间戳与参考样本一致,则判定该PLC控制器载入逻辑未被重新下载,则进入逻辑信息匹配阶段;否则,判定为逻辑被篡改,检测器直接进行病毒异常报警。
3)PLC控制器逻辑信息匹配。首先将构建的逻辑信息探测报文依序向目标设备进行发送,随后将响应报文进行逻辑信息的提取,并与进行本地逻辑信息样本进行对比分析。如果目标PLC控制器的逻辑信息与参考样本一致,则判定该PLC控制器载入的工程逻辑未被篡改,检测结束;否则,判定工程逻辑被篡改,检测器直接进行病毒检测报警。
(3)基于逻辑信息的PLC控制器零先验深度病毒检测
针对无本地工程逻辑等相关先验信息的前提下,通过对现有PLC控制器病毒样本特征的研究分析,本发明提出一种基于逻辑信息的PLC控制器零先验深度病毒检测方法,该方法首先主要利用工程逻辑提取技术,实现PLC控制器完整工程逻辑的获取,随后结合工程逻辑静态分析实现对病毒的准确检测。如图6所示,此方法主要可分为两个步骤:
1)完整工程逻辑提取。首先基于上阶段探测识别的PLC控制器探测结果,构建完整工程逻辑探取报文,随后依序向目标设备发送探测报文,并将响应报文中的工程逻辑内容进行自动组合并生成工程逻辑文件。
2)逆向静态分析与特征匹配。基于前期对PLC控制器病毒样本特征的研究总结,针对可能存在的除零死循环、库函数修改和逻辑炸弹等类病毒,则可利用本地静态工程分析技术,查看工程逻辑中是否存在如地址靠后OB块、TCON系统函数以及循环向不合理IP地址发起通信连接请求等非常规逻辑代码。如果目标工程逻辑中无异常逻辑代码,则判定该PLC控制器载入的工程逻辑未被篡改;否则,检测器直接进行病毒检测报警。
本实施例提供一种基于逻辑信息的PLC主动识别与病毒检测方法。该方法首先利用PLC控制器主动探测技术向工控系统网络内的主机发送探测报文,通过对响应报文的深度解析,实现对PLC控制器的IP地址、开放端口、厂商和型号等基础信息的主动识别发现。其次,针对具备本地工程逻辑等先验知识的情况下,可基于PLC控制器工程逻辑的稳定性特征,利用PLC控制器逻辑信息提取技术可实现对工程逻辑的载入时间、项目名称、工程逻辑调用函数名称等逻辑信息的探测获取,继而与本地抽取的逻辑信息进行文本化对比分析,最终实现对PLC控制器植入病毒的快速检测。此外,针对无本地工程逻辑等先验知识的情况下,面对可能存在的除零死循环、库函数修改和逻辑炸弹等类病毒,还可通过对PLC控制器完整工程逻辑的获取,结合静态特征分析技术,实现对病毒检测的准确判断。
参照图7,图7为本发明PLC控制器病毒检测装置实施例的结构框图。
如图7所示,本发明实施例提出的PLC控制器病毒检测装置包括:
发送模块10,用于在接收到检测指令时,向目标PLC控制器发送标识信息探测报文;
提取模块20,用于接收目标PLC控制器发送的响应报文,并对所述响应报文执行信息提取,获得目标PLC控制器的标识信息;
第一判断模块30,用于基于标识信息,判断目标PLC控制器在本地是否存储有工程逻辑信息;
第二判断模块40,用于向目标PLC控制器发送时间戳探测报文和逻辑信息探测报文,并根据工程逻辑信息对目标PLC控制器发送的响应报文进行逻辑匹配,判断目标PLC控制器是否病毒检测异常;
第三判断模块50,用于向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常。
本发明PLC控制器病毒检测装置的其他实施例或具体实现方式可参照上述各方法实施例,此处不再赘述。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有PLC控制器病毒检测方法程序,所述PLC控制器病毒检测方法程序被处理器执行时实现如上文所述的PLC控制器病毒检测方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
Claims (9)
1.一种PLC控制器病毒检测方法,其特征在于,包括以下步骤:
在接收到检测指令时,向目标PLC控制器发送标识信息探测报文;
接收目标PLC控制器发送的响应报文,并对所述响应报文执行信息提取,获得目标PLC控制器的标识信息;
基于标识信息,判断目标PLC控制器在本地是否存储有工程逻辑信息;
若是,向目标PLC控制器发送时间戳探测报文,并接收响应报文;提取响应报文中目标PLC控制器的逻辑载入时间戳,将所述逻辑载入时间戳与工程逻辑信息中记录的本地时间戳进行匹配;若匹配成功,则向目标PLC控制器发送逻辑信息探测报文,并接收响应报文;若匹配不成功,生成病毒检测报警;提取响应报文中目标PLC控制器的逻辑信息,将所述逻辑信息与工程逻辑信息中记录的本地工程逻辑信息进行匹配,若匹配不成功,生成病毒检测报警;
若否,向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常。
2.如权利要求1所述的PLC控制器病毒检测方法,其特征在于,所述在接收到检测指令时,向目标PLC控制器发送标识信息探测报文步骤,具体包括:
在接收到检测指令时,提取检测指令中的IP段地址;
对IP段地址中每个IP地址对应的PLC控制器进行存活性和端口探测;
构建标识信息探测报文,并将标识信息探测报文发送至目标PLC控制器;其中,所述目标PLC控制器为存活且端口开启的PLC控制器。
3.如权利要求1所述的PLC控制器病毒检测方法,其特征在于,所述标识信息包括IP地址、开放端口、生产厂商、设备型号或设备序列号中的一种或多种。
4.如权利要求1所述的PLC控制器病毒检测方法,其特征在于,所述逻辑信息包括项目名称、逻辑调用函数名称或变量参数名称中的一种或多种。
5.如权利要求1所述的PLC控制器病毒检测方法,其特征在于,所述向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常步骤,具体包括:
向目标PLC控制器发送工程逻辑提取报文,并接收响应报文;
提取响应报文中目标PLC控制器的工程逻辑文件,利用静态工程分析法对上述工程逻辑文件与病毒样本进行特征匹配;
若检测到工程逻辑文件中存在与病毒样本特征匹配的非常规逻辑代码,则生成病毒检测报警。
6.如权利要求5所述的PLC控制器病毒检测方法,其特征在于,所述非常规逻辑代码包括:地址靠后OB块、TCON系统函数以及循环向不合理IP地址发起通信连接。
7.一种PLC控制器病毒检测装置,其特征在于,所述PLC控制器病毒检测装置包括:
发送模块,用于在接收到检测指令时,向目标PLC控制器发送标识信息探测报文;
提取模块,用于接收目标PLC控制器发送的响应报文,并对所述响应报文执行信息提取,获得目标PLC控制器的标识信息;
第一判断模块,用于基于标识信息,判断目标PLC控制器在本地是否存储有工程逻辑信息;
第二判断模块,用于向目标PLC控制器发送时间戳探测报文,并接收响应报文;提取响应报文中目标PLC控制器的逻辑载入时间戳,将所述逻辑载入时间戳与工程逻辑信息中记录的本地时间戳进行匹配;若匹配成功,则向目标PLC控制器发送逻辑信息探测报文,并接收响应报文;若匹配不成功,生成病毒检测报警;提取响应报文中目标PLC控制器的逻辑信息,将所述逻辑信息与工程逻辑信息中记录的本地工程逻辑信息进行匹配,若匹配不成功,生成病毒检测报警;
第三判断模块,用于向目标PLC控制器发送工程逻辑提取报文,并根据病毒样本特征对目标PLC控制器发送的响应报文进行特征匹配,判断目标PLC控制器是否病毒检测异常。
8.一种PLC控制器病毒检测设备,其特征在于,所述PLC控制器病毒检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的PLC控制器病毒检测方法程序,所述PLC控制器病毒检测方法程序被所述处理器执行时实现如权利要求1至6中任一项所述的PLC控制器病毒检测方法的步骤。
9.一种存储介质,其特征在于,所述存储介质上存储有PLC控制器病毒检测方法程序,所述PLC控制器病毒检测方法程序被处理器执行时实现如权利要求1至6中任一项所述的PLC控制器病毒检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210964702.6A CN115033881B (zh) | 2022-08-12 | 2022-08-12 | Plc控制器病毒检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210964702.6A CN115033881B (zh) | 2022-08-12 | 2022-08-12 | Plc控制器病毒检测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115033881A CN115033881A (zh) | 2022-09-09 |
CN115033881B true CN115033881B (zh) | 2022-12-09 |
Family
ID=83131352
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210964702.6A Active CN115033881B (zh) | 2022-08-12 | 2022-08-12 | Plc控制器病毒检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115033881B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115793562A (zh) * | 2023-01-30 | 2023-03-14 | 国家工业信息安全发展研究中心 | 可编程逻辑控制器plc设备的异常处理方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430646B1 (en) * | 2013-03-14 | 2016-08-30 | Fireeye, Inc. | Distributed systems and methods for automatically detecting unknown bots and botnets |
EP3179322A1 (en) * | 2015-12-10 | 2017-06-14 | Deutsche Telekom AG | A method and system for detecting attempted malicious re-programming of a plc in scada systems |
CN107239705A (zh) * | 2017-05-25 | 2017-10-10 | 中国东方电气集团有限公司 | 一种非接触式的工业控制系统或设备静态漏洞检测系统和检测方法 |
CN110008713A (zh) * | 2019-05-06 | 2019-07-12 | 杭州齐安科技有限公司 | 一种新型工控系统漏洞探测方法及系统 |
CN110825040A (zh) * | 2019-10-22 | 2020-02-21 | 中国科学院信息工程研究所 | 一种工业控制系统的过程控制攻击检测方法及装置 |
CN111427336A (zh) * | 2020-05-08 | 2020-07-17 | 杭州安恒信息技术股份有限公司 | 一种工业控制系统的漏洞扫描方法、装置及设备 |
CN111611591A (zh) * | 2020-05-22 | 2020-09-01 | 中国电力科学研究院有限公司 | 一种固件漏洞的检测方法、装置、存储介质及电子设备 |
CN111881451A (zh) * | 2020-07-16 | 2020-11-03 | 哈尔滨工业大学(威海) | 一种工业控制系统的漏洞关联挖掘方法 |
CN112668010A (zh) * | 2020-12-17 | 2021-04-16 | 哈尔滨工大天创电子有限公司 | 扫描工业控制系统的漏洞的方法、系统及计算设备 |
WO2021146649A1 (en) * | 2020-01-16 | 2021-07-22 | Georgia Tech Research Corporation | System for detecting malicious programmable logic controller code |
CN114238980A (zh) * | 2021-11-29 | 2022-03-25 | 中国兵器工业信息中心 | 一种工控设备漏洞挖掘方法、系统、设备及存储介质 |
CN114371682A (zh) * | 2021-11-05 | 2022-04-19 | 中国科学院信息工程研究所 | Plc控制逻辑攻击检测方法及装置 |
CN114417355A (zh) * | 2022-01-07 | 2022-04-29 | 上海交通大学 | 针对工业控制系统的轻量级安全性检测系统及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109063486B (zh) * | 2018-08-01 | 2020-11-24 | 杭州安恒信息技术股份有限公司 | 一种基于plc设备指纹识别的安全渗透测试方法与系统 |
CN113239366B (zh) * | 2021-07-12 | 2021-12-10 | 国网江西省电力有限公司电力科学研究院 | 一种电力工控设备的漏洞无损检测方法及系统 |
CN114567463B (zh) * | 2022-02-15 | 2024-04-02 | 浙江腾珑网安科技有限公司 | 一种工业网络信息安全监测与防护系统 |
CN114760103B (zh) * | 2022-03-21 | 2023-10-31 | 广州大学 | 一种工业控制系统异常检测系统、方法、设备及存储介质 |
-
2022
- 2022-08-12 CN CN202210964702.6A patent/CN115033881B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430646B1 (en) * | 2013-03-14 | 2016-08-30 | Fireeye, Inc. | Distributed systems and methods for automatically detecting unknown bots and botnets |
EP3179322A1 (en) * | 2015-12-10 | 2017-06-14 | Deutsche Telekom AG | A method and system for detecting attempted malicious re-programming of a plc in scada systems |
CN107239705A (zh) * | 2017-05-25 | 2017-10-10 | 中国东方电气集团有限公司 | 一种非接触式的工业控制系统或设备静态漏洞检测系统和检测方法 |
CN110008713A (zh) * | 2019-05-06 | 2019-07-12 | 杭州齐安科技有限公司 | 一种新型工控系统漏洞探测方法及系统 |
CN110825040A (zh) * | 2019-10-22 | 2020-02-21 | 中国科学院信息工程研究所 | 一种工业控制系统的过程控制攻击检测方法及装置 |
WO2021146649A1 (en) * | 2020-01-16 | 2021-07-22 | Georgia Tech Research Corporation | System for detecting malicious programmable logic controller code |
CN111427336A (zh) * | 2020-05-08 | 2020-07-17 | 杭州安恒信息技术股份有限公司 | 一种工业控制系统的漏洞扫描方法、装置及设备 |
CN111611591A (zh) * | 2020-05-22 | 2020-09-01 | 中国电力科学研究院有限公司 | 一种固件漏洞的检测方法、装置、存储介质及电子设备 |
CN111881451A (zh) * | 2020-07-16 | 2020-11-03 | 哈尔滨工业大学(威海) | 一种工业控制系统的漏洞关联挖掘方法 |
CN112668010A (zh) * | 2020-12-17 | 2021-04-16 | 哈尔滨工大天创电子有限公司 | 扫描工业控制系统的漏洞的方法、系统及计算设备 |
CN114371682A (zh) * | 2021-11-05 | 2022-04-19 | 中国科学院信息工程研究所 | Plc控制逻辑攻击检测方法及装置 |
CN114238980A (zh) * | 2021-11-29 | 2022-03-25 | 中国兵器工业信息中心 | 一种工控设备漏洞挖掘方法、系统、设备及存储介质 |
CN114417355A (zh) * | 2022-01-07 | 2022-04-29 | 上海交通大学 | 针对工业控制系统的轻量级安全性检测系统及方法 |
Non-Patent Citations (4)
Title |
---|
Detecting Payload Attacks on Programmable Logic Controllers (PLCs);Huan Yang 等;《2018 IEEE Conference on Communications and Network Security (CNS)》;20180813;1-9 * |
工业控制系统信息安全防护;饶志宏;《信息安全与通信保密》;20141231(第12期);45-46+48 * |
工业控制系统协议安全综述;方栋梁 等;《计算机研究与发展》;20220531;第59卷(第05期);978-993 * |
新型PLC病毒特征分析与检测方法研究;廖向东 等;《信息技术》;20180331(第3期);62-66 * |
Also Published As
Publication number | Publication date |
---|---|
CN115033881A (zh) | 2022-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102088379B (zh) | 基于沙箱技术的客户端蜜罐网页恶意代码检测方法与装置 | |
Morris et al. | Industrial control system traffic data sets for intrusion detection research | |
CN106991324B (zh) | 一种基于内存保护类型监控的恶意代码跟踪识别方法 | |
CN111881452B (zh) | 一种面向工控设备的安全测试系统及其工作方法 | |
CN106101130B (zh) | 一种网络恶意数据检测方法、装置及系统 | |
US10547634B2 (en) | Non-intrusive digital agent for behavioral monitoring of cybersecurity-related events in an industrial control system | |
CN110678864A (zh) | 危害和取证数据的plc指标的收集 | |
CN104766011A (zh) | 基于主机特征的沙箱检测告警方法和系统 | |
CN101699815A (zh) | 一种网络攻击自动执行/展现的系统及方法 | |
CN115033881B (zh) | Plc控制器病毒检测方法、装置、设备及存储介质 | |
CN108337266B (zh) | 一种高效的协议客户端漏洞发掘方法与系统 | |
CN110716872B (zh) | 电能计量自动化设备的漏洞挖掘系统及方法 | |
CN114760103A (zh) | 一种工业控制系统异常检测系统、方法、设备及存储介质 | |
CN109561112A (zh) | 一种人工智能实时检测安全攻击系统 | |
CN112565278A (zh) | 一种捕获攻击的方法及蜜罐系统 | |
CN113489728A (zh) | 一种工业互联网的安全评估系统及方法 | |
CN111786986A (zh) | 一种数控系统网络入侵防范系统及方法 | |
CN110138780B (zh) | 一种基于探针技术实现物联网终端威胁检测的方法 | |
WO2023015783A1 (zh) | 基于漏洞情报的智能终端操作系统漏洞修复方法及系统 | |
KR101079036B1 (ko) | 제어망 이상 징후 탐지 장치 및 방법 | |
CN112035839A (zh) | 一种竞态条件漏洞利用的检测方法及装置 | |
CN111104670A (zh) | 一种apt攻击的识别和防护方法 | |
JP2002258972A (ja) | 不正操作監視装置及び不正操作監視プログラム | |
CN113836539A (zh) | 基于精准测试的电力工控系统漏洞全流程处置系统及方法 | |
CN112487414B (zh) | 一种进程命令行的获取方法、装置、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |