CN114189395A - Plc受攻击停止的风险检测包获取方法及装置 - Google Patents
Plc受攻击停止的风险检测包获取方法及装置 Download PDFInfo
- Publication number
- CN114189395A CN114189395A CN202210135710.XA CN202210135710A CN114189395A CN 114189395 A CN114189395 A CN 114189395A CN 202210135710 A CN202210135710 A CN 202210135710A CN 114189395 A CN114189395 A CN 114189395A
- Authority
- CN
- China
- Prior art keywords
- plc
- script
- attack
- stopping
- packet
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/054—Input/output
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/76—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种PLC受攻击停止的风险检测包获取方法及装置,该方法包括:通过流量采集获取使PLC停止的流量包;对使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;对TCP报文和S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;根据IP端口号及协议信息帧生成停止攻击脚本,利用停止攻击脚本对PLC下达停止指令;响应于PLC停止将PLC接收的数据包作为PLC受攻击停止的风险检测包。本发明实施例实现了PLC受攻击停止的风险检测包的获取,可以利用风险检测包预先对可能造成PLC停止的风险进行防范,以避免不必要的损失,有利于提高PLC的运行安全。
Description
技术领域
本发明实施例涉及一种PLC受攻击停止的风险检测包获取方法及装置。
背景技术
PLC(Programmable Logic Controller,可编程逻辑控制器)是关键基础设施中的基础控制设备,其安全性涉及到整个控制系统的稳定运行。工业控制系统在提高信息化水平的同时,其信息安全问题也日益突出。
PLC遭受攻击的种类按照攻击难易程度可以分为干扰性攻击、组态攻击和固件攻击。干扰性攻击主要用于耗尽PLC的资源,比如网络带宽、CPU计算资源等,从而使得PLC对正常的请求无法及时作出回应。组态攻击是对PLC的组态进行攻击,破坏PLC的控制逻辑,使得PLC的逻辑执行跳转到攻击者指定的功能块上,从而达到精准实施攻击的目标。针对PLC的固件攻击是目前最为隐蔽的攻击方式,实现起来比较复杂,包括:对PLC的固件进行反汇编,确定各个参数的寄存器地址,匹配已知的设备功能;注入恶意指令、修改跳转指令或者修改寄存器地址,且一般不影响上层组态软件的稳定性;对固件进行重新打包并重新下载到PLC中。
以上对于PLC的攻击目标均还未涉及使PLC停止,需要预先对可能造成PLC停止的风险进行防范,以避免不必要的损失。
发明内容
本发明实施例提供一种PLC受攻击停止的风险检测包获取方法,包括:通过流量采集获取使PLC停止的流量包;对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述方法还包括:获取向PLC发送的通信报文,将所述通信报文与所述风险检测包进行匹配;若匹配成功,则确认所述通信报文存在使PLC停止的攻击风险,停止所述通信报文向PLC的发送。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述方法还包括:将所述风险检测包加入报警规则库。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述通过流量采集获取使PLC停止的流量包,包括:与PLC建立通信后使PLC停止运行,对PLC进行流量采集获取使PLC停止的流量包。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述协议信息帧包括用于连接确认的协议信息帧、用于建立通信的协议信息帧、用于请求数据的协议信息帧和用于下达停止指令的协议信息帧;所述根据所述IP端口号及所述协议信息帧生成停止攻击脚本包括:根据所述IP端口号生成用于发送与PLC建立连接的数据包的第一脚本;根据所述用于连接确认的协议信息帧生成发送连接确认数据包的第二脚本;根据所述用于建立通信的协议信息帧生成发送建立通信数据包的第三脚本;根据所述用于请求数据的协议信息帧生成发送请求数据数据包的第四脚本;根据所述用于下达停止指令的协议信息帧生成发送停止指令数据包的第五脚本;由所述第一脚本、所述第二脚本、所述第三脚本、所述第四脚本及所述第五脚本顺次构成所述停止攻击脚本。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述利用所述停止攻击脚本对PLC下达停止指令,包括:通过执行所述第一脚本与PLC建立连接;通过执行所述第二脚本与PLC进行连接确认;通过执行所述第三脚本与PLC建立通信;通过执行所述第四脚本向PLC请求数据;通过执行所述第五脚本向PLC下达停止指令。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,在所述通过流量采集获取使PLC停止的流量包之前,所述方法还包括:获取系统存活主机;对所述系统存活主机进行网络资产扫描,得到网络资产配置结果;根据所述网络资产配置结果识别PLC。
本发明实施例还提供一种PLC受攻击停止的风险检测包获取装置,包括:流量采集模块,用于:通过流量采集获取使PLC停止的流量包;流量识别模块,用于:对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;流量解析模块,用于:对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;停止攻击模块,用于:根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;风险检测包获取模块,用于:响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述PLC受攻击停止的风险检测包获取方法的步骤。
本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述PLC受攻击停止的风险检测包获取方法的步骤。
本发明实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述PLC受攻击停止的风险检测包获取方法的步骤。
本发明实施例提供的PLC受攻击停止的风险检测包获取方法及装置,通过流量采集获取使PLC停止的流量包,对使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包,对TCP报文和S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧,根据IP端口号及协议信息帧生成停止攻击脚本,利用停止攻击脚本对PLC下达停止指令,响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包,实现了PLC受攻击停止的风险检测包的获取,可以利用风险检测包预先对可能造成PLC停止的风险进行防范,以避免不必要的损失,有利于提高PLC的运行安全。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的PLC受攻击停止的风险检测包获取方法的流程示意图之一;
图2是本发明实施例提供的PLC受攻击停止的风险检测包获取方法的流程示意图之二;
图3是本发明实施例提供的PLC受攻击停止的风险检测包获取装置的结构示意图;
图4是本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的PLC受攻击停止的风险检测包获取方法的流程示意图之一。如图1所示,所述方法包括:
步骤101、通过流量采集获取使PLC停止的流量包。
可以通过对PLC的运行状态进行监控,在PLC停止时通过流量采集获取使PLC停止的流量包。其中,PLC停止是指的停止用户程序,PLC自带程序还可以运行。
步骤102、对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包。
可以利用Wireshark(一种网络封包分析软件)工具,基于端口识别技术和深色包识别技术对使PLC停止的流量包进行流量识别,得到IP端口号、TCP(Transmission ControlProtocol,传输控制协议)报文和S7协议数据包。
S7协议(S7以太网协议)本身也是TCP/IP协议簇的一员,S7协议在OSI中的位置相当于将物理层和数据链路层之上的协议进行了定义,S7comm的协议栈修改程度更高,在应用层组织的数据经过COTP协议、TPKT协议的进一步处理后,最终通过TCP进行传输。
步骤103、对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧。
S7协议数据包包括COTP协议数据包和S7comm协议数据包。可以对TCP报文、COTP协议数据包和S7comm协议数据包的数据包头和载荷进行流量解析,根据流量的分布特征,得到用于生成停止攻击脚本的协议信息帧。停止攻击脚本为用于攻击PLC使其停止的脚本。获取的协议信息帧的具体情况可以依据停止攻击脚本实施的具体步骤而定。停止攻击脚本需要与PLC正常停止时的脚本相区别。
步骤104、根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令。
根据IP端口号可以生成建立连接的脚本,根据所获取的协议信息帧可以得到发送对应数据包的脚本,由此可以根据IP端口号和协议信息帧生成停止攻击脚本。
生成停止攻击脚本后,即可利用停止攻击脚本对PLC下达停止指令,也即执行停止攻击脚本的目的是使PLC停止。
步骤105、响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
通过执行停止攻击脚本向PLC下达停止指令后,若PLC停止,说明PLC停止受控过程存在漏洞,在停止攻击脚本的攻击下停止。获取由于停止攻击脚本的执行PLC接收的数据包,将PLC接收的数据包作为PLC受攻击停止的风险检测包。也即若PLC接收到和风险检测包同样的数据包时,表明存在使PLC停止的攻击风险。
另外,可以对进一步通过漏洞挖掘(比如可以利用Nessus网络漏洞扫描器,对流量进行聚类和相关性分析,挖掘流量中的结构性知识),得到可编程逻辑控制器PLC中存在的漏洞,比如漏洞为与PLC连接和下发停止指令时,没有相关认证。
可以根据得到的PLC设备的漏洞风险编写相应的分析测试报告,形成工业互联网漏洞知识库,进而为工业互联网安全应用提供理论和模型的支持,以提高工业互联网安全的快速响应与防范能力。
本发明实施例提供的PLC受攻击停止的风险检测包获取方法,通过流量采集获取使PLC停止的流量包,对使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包,对TCP报文和S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧,根据IP端口号及协议信息帧生成停止攻击脚本,利用停止攻击脚本对PLC下达停止指令,响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包,实现了PLC受攻击停止的风险检测包的获取,可以利用风险检测包预先对可能造成PLC停止的风险进行防范,以避免不必要的损失,有利于提高PLC的运行安全。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述方法还包括:获取向PLC发送的通信报文,将所述通信报文与所述风险检测包进行匹配;若匹配成功,则确认所述通信报文存在使PLC停止的攻击风险,停止所述通信报文向PLC的发送。
可以在PLC之前,预先获取向PLC发送的通信报文,在确认通信报文安全后再转发给PLC,在确认通信报文存在风险时,停止通信报文向PLC的发送,以保证PLC的安全。
在获取向PLC发送的通信报文后,确认通信报文是否存在使PLC停止的攻击风险,可以通过将通信报文与风险检测包进行匹配,若匹配成功,则确认通信报文存在使PLC停止的攻击风险,停止通信报文向PLC的发送。
本发明实施例提供的PLC受攻击停止的风险检测包获取方法,通过获取向PLC发送的通信报文,将通信报文与风险检测包进行匹配,若匹配成功,则确认通信报文存在使PLC停止的攻击风险,停止通信报文向PLC的发送,避免或降低了PLC受攻击停止的风险。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述方法还包括:将所述风险检测包加入报警规则库。
在得到PLC受攻击停止的风险检测包后,可以将PLC受攻击停止的风险检测包加入报警规则库。报警规则库中可以包括各种PLC受攻击的风险检测包。
在PLC之前,预先获取向PLC发送的通信报文后,可以将通信报文与报警规则库中的风险检测包一一进行匹配,以判断是否存在潜在攻击风险。
本发明实施例提供的PLC受攻击停止的风险检测包获取方法,通过将风险检测包加入报警规则库,实现了统一规范的风险处理。
本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述通过流量采集获取使PLC停止的流量包,包括:与PLC建立通信后使PLC停止运行,对PLC进行流量采集获取使PLC停止的流量包。
可以打开可编程逻辑控制器 PLC 的编程软件STEP 7-MicroWIN SMART,通过该软件与PLC建立通讯并使PLC停止运行(属于正常停止过程),同时打开Wireshark对其通讯进行流量采集,得到使可编程逻辑控制器 PLC 停止的流量包。
本发明实施例提供的PLC受攻击停止的风险检测包获取方法,通过与PLC建立通信后使PLC停止运行,对PLC进行流量采集获取使PLC停止的流量包,提高了使PLC停止的流量包获取的便利性。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述协议信息帧包括用于连接确认的协议信息帧、用于建立通信的协议信息帧、用于请求数据的协议信息帧和用于下达停止指令的协议信息帧;所述根据所述IP端口号及所述协议信息帧生成停止攻击脚本包括:根据所述IP端口号生成用于发送与PLC建立连接的数据包的第一脚本;根据所述用于连接确认的协议信息帧生成发送连接确认数据包的第二脚本;根据所述用于建立通信的协议信息帧生成发送建立通信数据包的第三脚本;根据所述用于请求数据的协议信息帧生成发送请求数据数据包的第四脚本;根据所述用于下达停止指令的协议信息帧生成发送停止指令数据包的第五脚本;由所述第一脚本、所述第二脚本、所述第三脚本、所述第四脚本及所述第五脚本顺次构成所述停止攻击脚本。
对TCP报文和S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧。协议信息帧可以包括用于连接确认的协议信息帧、用于建立通信的协议信息帧、用于请求数据的协议信息帧和用于下达停止指令的协议信息帧。
在根据IP端口号及协议信息帧生成停止攻击脚本时,根据IP端口号生成用于发送与PLC建立连接的数据包的第一脚本,根据用于连接确认的协议信息帧生成发送连接确认数据包的第二脚本,根据用于建立通信的协议信息帧生成发送建立通信数据包的第三脚本,根据用于请求数据的协议信息帧生成发送请求数据数据包的第四脚本,根据用于下达停止指令的协议信息帧生成发送停止指令数据包的第五脚本,由第一脚本、第二脚本、第三脚本、第四脚本及第五脚本顺次构成停止攻击脚本。也即,停止攻击脚本包括顺次执行的用于发送与PLC建立连接的数据包的第一脚本、用于发送连接确认数据包的第二脚本、用于发送建立通信数据包的第三脚本、用于发送请求数据数据包的第四脚本以及用于发送停止指令数据包的第五脚本。
连接确认数据包和请求数据数据包可以是COTP数据包。
本发明实施例提供的PLC受攻击停止的风险检测包获取方法,通过获取包括用于连接确认、用于建立通信、用于请求数据和用于下达停止指令的协议信息帧,根据IP端口号生成用于发送与PLC建立连接的数据包的第一脚本,根据用于连接确认的协议信息帧生成发送连接确认数据包的第二脚本,根据用于建立通信的协议信息帧生成发送建立通信数据包的第三脚本,根据用于请求数据的协议信息帧生成发送请求数据数据包的第四脚本,根据用于下达停止指令的协议信息帧生成发送停止指令数据包的第五脚本,由第一脚本、第二脚本、第三脚本、第四脚本及第五脚本顺次构成停止攻击脚本,实现了停止攻击脚本的简便快速生成。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,所述利用所述停止攻击脚本对PLC下达停止指令,包括:通过执行所述第一脚本与PLC建立连接;通过执行所述第二脚本与PLC进行连接确认;通过执行所述第三脚本与PLC建立通信;通过执行所述第四脚本向PLC请求数据;通过执行所述第五脚本向PLC下达停止指令。
在利用停止攻击脚本对PLC下达停止指令时,通过执行第一脚本向PLC发送与PLC建立连接的数据包,与PLC建立连接;通过执行第二脚本向PLC发送连接确认数据包,与PLC进行连接确认;通过执行第三脚本向PLC发送建立通信数据包,与PLC建立通信;通过执行第四脚本向PLC发送请求数据数据包,向PLC请求数据;通过执行第五脚本向PLC发送停止指令数据包,向PLC下达停止指令。
执行第一脚本、第二脚本、第三脚本和第四脚本可以收到PLC的响应。
生成停止攻击脚本的示例如下:
import socket
import time
1.与PLC建立连接
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('192.168.1.3', 102))
2.发送COTP数据包进行连接确认
# cotp
pp = bytes.fromhex("0300001611e0000005f600c1020101c2020101c0010a")
s.send(pp)
r1 = s.recv(1024)
print(r1)
time.sleep(3)
3.发送建立通信数据包,与PLC建立通信
# s7:0xf0
pp = bytes.fromhex("0300001902f08032010000ccc100080000f0000001000103c0")
s.send(pp)
r2 = s.recv(1024)
print(r2)
time.sleep(3)
4.发送COTP数据包请求数据
# cotp
pp = bytes.fromhex("0300000702f000")
s.send(pp)
time.sleep(3)
5.发送停止指令数据包,下达停止指令
# s7:0x29
pp = bytes.fromhex("0300002102f080320100006a210010000029000000000009505f50524f4752414d")
s.send(pp)
r3 = s.recv(1024)
print(r3)
本发明实施例提供的PLC受攻击停止的风险检测包获取方法,通过执行第一脚本与PLC建立连接;通过执行第二脚本与PLC进行连接确认;通过执行第三脚本与PLC建立通信;通过执行第四脚本向PLC请求数据;通过执行第五脚本向PLC下达停止指令,实现了向PLC下达停止指令的简便化。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取方法,在所述通过流量采集获取使PLC停止的流量包之前,所述方法还包括:获取系统存活主机;对所述系统存活主机进行网络资产扫描,得到网络资产配置结果;根据所述网络资产配置结果识别PLC。
在通过流量采集获取使PLC停止的流量包之前,可以在kali linux系统下,使用scapy srp函数快速得到系统存活主机,使用nmap进行对系统存活主机进行网络资产扫描(#nmap -a ip),得到可编程逻辑控制器PLC的相关信息,如IP地址、MAC地址、操作系统、开放端口等信息,从而识别PLC。
本发明实施例提供的PLC受攻击停止的风险检测包获取方法,通过获取系统存活主机;对系统存活主机进行网络资产扫描,得到网络资产配置结果;根据网络资产配置结果识别PLC,实现了快速识别PLC。
图2是本发明实施例提供的PLC受攻击停止的风险检测包获取方法的流程示意图之二。如图2所示,该方法包括:
(1)资产扫描
方法:在kali linux系统下,使用scapy srp得到系统存活主机,使用nmap进行资产扫描(#nmap -a ip)。
结果:得到系统存活主机,得到可编程逻辑控制器PLC的相关信息,如IP地址、MAC地址、操作系统、开放端口等信息。
(2)流量采集
方法:打开可编程逻辑控制器 PLC 的编程软件STEP 7-MicroWIN SMART,通过该软件与PLC建立通讯并使PLC停止运行,同时打开Wireshark对其通讯进行流量采集。
结果:得到使可编程逻辑控制器 PLC 停止的流量包。
(3)流量识别
方法:应用端口识别技术和深度包识别技术进行流量识别。
结果:得到IP端口号、TCP报文以及S7 协议数据包。
(4)流量解析
方法:对流量中TCP协议,COTP协议,S7comm协议进行数据包头和载荷进行解析。
结果:发现流量的分布特性,得到使PLC停止的协议信息帧,使PLC停止的协议信息帧包括使PLC停止的功能码(如0x29)。
(5)漏洞挖掘
方法:对流量进行聚类和相关性分析,挖掘流量中的结构性知识。
结果:得到可编程逻辑控制器 PLC 存在的漏洞:如与PLC连接时和下发停止指令时,没有相关认证。若PLC不存在漏洞,再转到流量识别步骤,重新进行流量识别和解析,重新进行漏洞挖掘,直至分析完所有的流量数据。
(6)漏洞利用
方法:使用计算机编程语言Python编写停止攻击脚本,与PLC建立连接,并对其下达停止指令。
结果:与PLC建立起连接,可编程逻辑控制器 PLC 被攻击停止。
(7)分析报告
方法:通过对工业互联网安全进行分析,发现流量的内在特性,得到相关设备的漏洞风险,并编写相应的测试报告。
结果:得到分析测试报告,形成工业互联网漏洞知识库,进而为工业互联网安全应用提供理论和模型的支持,以提高工业互联网安全的快速响应与防范能力。
(8)获取风险检测包,写入报警规则库
将执行停止攻击脚本时PLC接收到的数据包作为风险检测包,该风险检测包用于检测PLC是否存在受攻击停止的风险。将风险检测包写入工控协议异常报警规则库,以进行规范、统一的风险监测。若PLC没有被攻击停止,重新转到流量采集步骤,重新进行流量采集、流量识别、流量解析、漏洞挖掘、漏洞利用等步骤,可以在设定的流量采集次数后终止。
下面对本发明实施例提供的PLC受攻击停止的风险检测包获取装置进行描述,下文描述的PLC受攻击停止的风险检测包获取装置与上文描述的PLC受攻击停止的风险检测包获取方法可相互对应参照。
图3是本发明实施例提供的PLC受攻击停止的风险检测包获取装置的结构示意图。如图3所示,所述装置包括流量采集模块10、流量识别模块20、流量解析模块30、停止攻击模块40和风险检测包获取模块50,其中:流量采集模块10用于:通过流量采集获取使PLC停止的流量包;流量识别模块20用于:对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;流量解析模块30用于:对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;停止攻击模块40用于:根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;风险检测包获取模块50用于:响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
本发明实施例提供的PLC受攻击停止的风险检测包获取装置,通过流量采集获取使PLC停止的流量包,对使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包,对TCP报文和S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧,根据IP端口号及协议信息帧生成停止攻击脚本,利用停止攻击脚本对PLC下达停止指令,响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包,实现了PLC受攻击停止的风险检测包的获取,可以利用风险检测包预先对可能造成PLC停止的风险进行防范,以避免不必要的损失,有利于提高PLC的运行安全。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取装置,所述装置还包括风险处理模块,所述风险处理模块用于:获取向PLC发送的通信报文,将所述通信报文与所述风险检测包进行匹配;若匹配成功,则确认所述通信报文存在使PLC停止的攻击风险,停止所述通信报文向PLC的发送。
本发明实施例提供的PLC受攻击停止的风险检测包获取装置,通过获取向PLC发送的通信报文,将通信报文与风险检测包进行匹配,若匹配成功,则确认通信报文存在使PLC停止的攻击风险,停止通信报文向PLC的发送,避免或降低了PLC受攻击停止的风险。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取装置,风险检测包获取模块50还用于将所述风险检测包加入报警规则库。
本发明实施例提供的PLC受攻击停止的风险检测包获取装置,通过将风险检测包加入报警规则库,实现了统一规范的风险处理。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取装置,流量采集模块10在用于通过流量采集获取使PLC停止的流量包时,具体用于:与PLC建立通信后使PLC停止运行,对PLC进行流量采集获取使PLC停止的流量包。
本发明实施例提供的PLC受攻击停止的风险检测包获取装置,通过与PLC建立通信后使PLC停止运行,对PLC进行流量采集获取使PLC停止的流量包,提高了使PLC停止的流量包获取的便利性。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取装置,所述协议信息帧包括用于连接确认的协议信息帧、用于建立通信的协议信息帧、用于请求数据的协议信息帧和用于下达停止指令的协议信息帧;停止攻击模块40在用于根据所述IP端口号及所述协议信息帧生成停止攻击脚本时,具体用于:根据所述IP端口号生成用于发送与PLC建立连接的数据包的第一脚本;根据所述用于连接确认的协议信息帧生成发送连接确认数据包的第二脚本;根据所述用于建立通信的协议信息帧生成发送建立通信数据包的第三脚本;根据所述用于请求数据的协议信息帧生成发送请求数据数据包的第四脚本;根据所述用于下达停止指令的协议信息帧生成发送停止指令数据包的第五脚本;由所述第一脚本、所述第二脚本、所述第三脚本、所述第四脚本及所述第五脚本顺次构成所述停止攻击脚本。
本发明实施例提供的PLC受攻击停止的风险检测包获取装置,通过获取包括用于连接确认、用于建立通信、用于请求数据和用于下达停止指令的协议信息帧,根据IP端口号生成用于发送与PLC建立连接的数据包的第一脚本,根据用于连接确认的协议信息帧生成发送连接确认数据包的第二脚本,根据用于建立通信的协议信息帧生成发送建立通信数据包的第三脚本,根据用于请求数据的协议信息帧生成发送请求数据数据包的第四脚本,根据用于下达停止指令的协议信息帧生成发送停止指令数据包的第五脚本,由第一脚本、第二脚本、第三脚本、第四脚本及第五脚本顺次构成停止攻击脚本,实现了停止攻击脚本的简便快速生成。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取装置,停止攻击模块40在用于利用所述停止攻击脚本对PLC下达停止指令时,具体用于:通过执行所述第一脚本与PLC建立连接;通过执行所述第二脚本与PLC进行连接确认;通过执行所述第三脚本与PLC建立通信;通过执行所述第四脚本向PLC请求数据;通过执行所述第五脚本向PLC下达停止指令。
本发明实施例提供的PLC受攻击停止的风险检测包获取装置,通过执行第一脚本与PLC建立连接;通过执行第二脚本与PLC进行连接确认;通过执行第三脚本与PLC建立通信;通过执行第四脚本向PLC请求数据;通过执行第五脚本向PLC下达停止指令,实现了向PLC下达停止指令的简便化。
根据本发明实施例提供的一种PLC受攻击停止的风险检测包获取装置,所述装置还包括资产扫描模块,在流量采集模块10通过流量采集获取使PLC停止的流量包之前,资产扫描模块用于获取系统存活主机;对所述系统存活主机进行网络资产扫描,得到网络资产配置结果;根据所述网络资产配置结果识别PLC。
本发明实施例提供的PLC受攻击停止的风险检测包获取装置,通过获取系统存活主机;对系统存活主机进行网络资产扫描,得到网络资产配置结果;根据网络资产配置结果识别PLC,实现了快速识别PLC。
图4是本发明实施例提供的电子设备的结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行PLC受攻击停止的风险检测包获取方法,该方法包括:通过流量采集获取使PLC停止的流量包;对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的PLC受攻击停止的风险检测包获取方法,该方法包括:通过流量采集获取使PLC停止的流量包;对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的PLC受攻击停止的风险检测包获取方法,该方法包括:通过流量采集获取使PLC停止的流量包;对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种PLC受攻击停止的风险检测包获取方法,其特征在于,包括:
通过流量采集获取使PLC停止的流量包;
对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;
对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;
根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;
响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
2.根据权利要求1所述的PLC受攻击停止的风险检测包获取方法,其特征在于,所述方法还包括:
获取向PLC发送的通信报文,将所述通信报文与所述风险检测包进行匹配;
若匹配成功,则确认所述通信报文存在使PLC停止的攻击风险,停止所述通信报文向PLC的发送。
3.根据权利要求1所述的PLC受攻击停止的风险检测包获取方法,其特征在于,所述方法还包括:将所述风险检测包加入报警规则库。
4.根据权利要求1所述的PLC受攻击停止的风险检测包获取方法,其特征在于,所述通过流量采集获取使PLC停止的流量包,包括:
与PLC建立通信后使PLC停止运行,对PLC进行流量采集获取使PLC停止的流量包。
5.根据权利要求1所述的PLC受攻击停止的风险检测包获取方法,其特征在于,所述协议信息帧包括用于连接确认的协议信息帧、用于建立通信的协议信息帧、用于请求数据的协议信息帧和用于下达停止指令的协议信息帧;所述根据所述IP端口号及所述协议信息帧生成停止攻击脚本包括:
根据所述IP端口号生成用于发送与PLC建立连接的数据包的第一脚本;
根据所述用于连接确认的协议信息帧生成发送连接确认数据包的第二脚本;
根据所述用于建立通信的协议信息帧生成发送建立通信数据包的第三脚本;
根据所述用于请求数据的协议信息帧生成发送请求数据数据包的第四脚本;
根据所述用于下达停止指令的协议信息帧生成发送停止指令数据包的第五脚本;
由所述第一脚本、所述第二脚本、所述第三脚本、所述第四脚本及所述第五脚本顺次构成所述停止攻击脚本。
6.根据权利要求5所述的PLC受攻击停止的风险检测包获取方法,其特征在于,所述利用所述停止攻击脚本对PLC下达停止指令,包括:
通过执行所述第一脚本与PLC建立连接;
通过执行所述第二脚本与PLC进行连接确认;
通过执行所述第三脚本与PLC建立通信;
通过执行所述第四脚本向PLC请求数据;
通过执行所述第五脚本向PLC下达停止指令。
7.根据权利要求1所述的PLC受攻击停止的风险检测包获取方法,其特征在于,在所述通过流量采集获取使PLC停止的流量包之前,所述方法还包括:
获取系统存活主机;
对所述系统存活主机进行网络资产扫描,得到网络资产配置结果;
根据所述网络资产配置结果识别PLC。
8.一种PLC受攻击停止的风险检测包获取装置,其特征在于,包括:
流量采集模块,用于:通过流量采集获取使PLC停止的流量包;
流量识别模块,用于:对所述使PLC停止的流量包进行流量识别得到IP端口号、TCP报文和S7协议数据包;
流量解析模块,用于:对所述TCP报文和所述S7协议数据包的数据包头和载荷进行流量解析,得到用于生成停止攻击脚本的协议信息帧;
停止攻击模块,用于:根据所述IP端口号及所述协议信息帧生成停止攻击脚本,利用所述停止攻击脚本对PLC下达停止指令;
风险检测包获取模块,用于:响应于PLC停止,将PLC接收的数据包作为PLC受攻击停止的风险检测包。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述PLC受攻击停止的风险检测包获取方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述PLC受攻击停止的风险检测包获取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210135710.XA CN114189395B (zh) | 2022-02-15 | 2022-02-15 | Plc受攻击停止的风险检测包获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210135710.XA CN114189395B (zh) | 2022-02-15 | 2022-02-15 | Plc受攻击停止的风险检测包获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114189395A true CN114189395A (zh) | 2022-03-15 |
CN114189395B CN114189395B (zh) | 2022-06-28 |
Family
ID=80545950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210135710.XA Active CN114189395B (zh) | 2022-02-15 | 2022-02-15 | Plc受攻击停止的风险检测包获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114189395B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543700A (zh) * | 2012-06-27 | 2014-01-29 | 尤比奎蒂网络公司 | 控制传感器装置的方法和设备 |
CN103780602A (zh) * | 2012-10-17 | 2014-05-07 | 北京力控华康科技有限公司 | 一种阻止震网攻击的方法 |
US20170302691A1 (en) * | 2016-04-18 | 2017-10-19 | Acalvio Technologies, Inc. | Systems and Methods for Detecting and Tracking Adversary Trajectory |
CN110678864A (zh) * | 2017-05-24 | 2020-01-10 | 西门子股份公司 | 危害和取证数据的plc指标的收集 |
CN111193738A (zh) * | 2019-12-30 | 2020-05-22 | 南京联成科技发展股份有限公司 | 一种工业控制系统的入侵检测方法 |
US20200285738A1 (en) * | 2019-03-06 | 2020-09-10 | Singapore University Of Technology And Design | Process-centric security measurement of cyber-physical systems |
CN111830928A (zh) * | 2020-06-08 | 2020-10-27 | 杭州电子科技大学 | 一种工业控制设备固件的模糊测试方法 |
CN112383538A (zh) * | 2020-11-11 | 2021-02-19 | 西安热工研究院有限公司 | 一种混合式高交互工业蜜罐系统及方法 |
CN112650077A (zh) * | 2020-12-11 | 2021-04-13 | 中国科学院信息工程研究所 | 基于工控业务仿真的plc蜜罐系统、实现方法及仿真设备 |
CN112883372A (zh) * | 2019-11-29 | 2021-06-01 | 中国电信股份有限公司 | 跨站脚本攻击检测方法和装置 |
CN113259396A (zh) * | 2021-07-06 | 2021-08-13 | 北京安帝科技有限公司 | 一种S7comm协议的异常检测方法及装置 |
CN113542299A (zh) * | 2021-07-29 | 2021-10-22 | 国家工业信息安全发展研究中心 | 一种基于模糊测试的工业互联网漏洞挖掘方法及系统 |
-
2022
- 2022-02-15 CN CN202210135710.XA patent/CN114189395B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543700A (zh) * | 2012-06-27 | 2014-01-29 | 尤比奎蒂网络公司 | 控制传感器装置的方法和设备 |
CN103780602A (zh) * | 2012-10-17 | 2014-05-07 | 北京力控华康科技有限公司 | 一种阻止震网攻击的方法 |
US20170302691A1 (en) * | 2016-04-18 | 2017-10-19 | Acalvio Technologies, Inc. | Systems and Methods for Detecting and Tracking Adversary Trajectory |
CN110678864A (zh) * | 2017-05-24 | 2020-01-10 | 西门子股份公司 | 危害和取证数据的plc指标的收集 |
US20200285738A1 (en) * | 2019-03-06 | 2020-09-10 | Singapore University Of Technology And Design | Process-centric security measurement of cyber-physical systems |
CN112883372A (zh) * | 2019-11-29 | 2021-06-01 | 中国电信股份有限公司 | 跨站脚本攻击检测方法和装置 |
CN111193738A (zh) * | 2019-12-30 | 2020-05-22 | 南京联成科技发展股份有限公司 | 一种工业控制系统的入侵检测方法 |
CN111830928A (zh) * | 2020-06-08 | 2020-10-27 | 杭州电子科技大学 | 一种工业控制设备固件的模糊测试方法 |
CN112383538A (zh) * | 2020-11-11 | 2021-02-19 | 西安热工研究院有限公司 | 一种混合式高交互工业蜜罐系统及方法 |
CN112650077A (zh) * | 2020-12-11 | 2021-04-13 | 中国科学院信息工程研究所 | 基于工控业务仿真的plc蜜罐系统、实现方法及仿真设备 |
CN113259396A (zh) * | 2021-07-06 | 2021-08-13 | 北京安帝科技有限公司 | 一种S7comm协议的异常检测方法及装置 |
CN113542299A (zh) * | 2021-07-29 | 2021-10-22 | 国家工业信息安全发展研究中心 | 一种基于模糊测试的工业互联网漏洞挖掘方法及系统 |
Non-Patent Citations (1)
Title |
---|
周建乐等: "基于规则的蜜罐脚本动态调用", 《信息安全与通信保密》 * |
Also Published As
Publication number | Publication date |
---|---|
CN114189395B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2680736C1 (ru) | Сервер и способ для определения вредоносных файлов в сетевом трафике | |
US10771500B2 (en) | System and method of determining DDOS attacks | |
US20220263823A1 (en) | Packet Processing Method and Apparatus, Device, and Computer-Readable Storage Medium | |
CN112468518B (zh) | 访问数据处理方法、装置、存储介质及计算机设备 | |
CN108337266B (zh) | 一种高效的协议客户端漏洞发掘方法与系统 | |
CN111478888B (zh) | 一种旁路阻断方法、设备及存储介质 | |
CN111343176B (zh) | 一种网络攻击的反制装置、方法、存储介质及计算机设备 | |
CN111049784B (zh) | 一种网络攻击的检测方法、装置、设备及存储介质 | |
CN112804263A (zh) | 一种面向物联网的漏洞扫描方法、系统及设备 | |
CN114553730B (zh) | 一种应用识别方法、装置、电子设备及存储介质 | |
CN111669371A (zh) | 一种适用于电力网络的网络攻击还原系统及方法 | |
WO2016008212A1 (zh) | 一种终端及检测终端数据交互的安全性的方法、存储介质 | |
CN114091031A (zh) | 基于白规则的类加载防护方法及装置 | |
CN114189395B (zh) | Plc受攻击停止的风险检测包获取方法及装置 | |
KR101927100B1 (ko) | 순환 신경망 기반 네트워크 패킷의 위험요소 분석 방법, 이를 수행하는 순환 신경망 기반 네트워크 패킷의 위험요소 분석 장치 | |
CN114328216A (zh) | 一种漏洞挖掘的方法和装置 | |
CN115604162A (zh) | 一种网络安全设备的检测方法 | |
CN115150209A (zh) | 数据处理方法、工业控制系统、电子设备及存储介质 | |
CN112751807B (zh) | 安全通信方法、装置、系统和存储介质 | |
CN111221764B (zh) | 一种跨链路数据传输方法及系统 | |
CN114363059A (zh) | 一种攻击识别方法、装置及相关设备 | |
EP3432544B1 (en) | System and method of determining ddos attacks | |
CN114553490B (zh) | 工业用被动模糊测试方法、系统和可读存储介质 | |
CN116760819B (zh) | 计算机文件网络传送方法、计算机装置和装置介质 | |
US11921912B1 (en) | Manipulating inter-chip communications for IoT security |
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 |