CN115941358B - 漏洞挖掘方法、装置、终端设备及存储介质 - Google Patents
漏洞挖掘方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN115941358B CN115941358B CN202310043331.2A CN202310043331A CN115941358B CN 115941358 B CN115941358 B CN 115941358B CN 202310043331 A CN202310043331 A CN 202310043331A CN 115941358 B CN115941358 B CN 115941358B
- Authority
- CN
- China
- Prior art keywords
- industrial control
- vulnerability
- control equipment
- target
- determining
- 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
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000012360 testing method Methods 0.000 claims abstract description 88
- 238000005065 mining Methods 0.000 claims abstract description 62
- 230000036244 malformation Effects 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 19
- 238000001514 detection method Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 10
- 230000035772 mutation Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000009412 basement excavation Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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]
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请适用于网络安全技术领域,提供了一种漏洞挖掘方法、装置、终端设备及存储介质,其中该方法包括:确定工控系统中需进行漏洞挖掘的目标工控设备;确定通过模糊测试对目标工控设备进行漏洞挖掘的畸形变异需求量,该畸形变异需求量用于反映进行模糊测试时畸形变异的总次数;根据畸形变异需求量对目标工控设备进行漏洞挖掘。本申请能缩短漏洞挖掘时间。
Description
技术领域
本申请属于网络安全技术领域,尤其涉及一种漏洞挖掘方法、装置、终端设备及存储介质。
背景技术
随着工控领域规模不断扩大,工控系统(即工业控制系统)也由封闭走向互联,大量的控制器配备了以太网通信组件,工控行业强调实时输入/输出能力,而在相对层面上忽略了网络安全问题。由于极少安装普通的防病毒软件,便很难更新到最新病毒库,并且各业务子模块缺乏隔离的概念,使得攻击者可以直接访问诸如可编程逻辑控制器(PLC,Programmable LogicController)等工控设备。但诸如PLC逻辑控制层的工控设备缺少认证和监测等保护措施,其代码的安全缺陷成为工控系统的重要安全威胁之一。
上述问题无论是针对工控设备的生产厂商还是应用工控设备的大型工业企业来说,都是一个需要解决的问题,因此出现了一些漏洞挖掘方法。
目前基于模糊测试的漏洞挖掘方法的使用较为广泛,但在对工控系统进行漏洞挖掘时,由于需要对数据进行全遍历式畸形变异处理,从而造成漏洞挖掘时间长。
发明内容
本申请实施例提供了一种漏洞挖掘方法、装置、终端设备及存储介质,可以解决漏洞挖掘时间长的问题。
第一方面,本申请实施例提供了一种漏洞挖掘方法,包括:
确定工控系统中需进行漏洞挖掘的目标工控设备;
确定通过模糊测试对目标工控设备进行漏洞挖掘的畸形变异需求量;畸形变异需求量用于反映进行模糊测试时畸形变异的总次数;
根据畸形变异需求量对目标工控设备进行漏洞挖掘。
可选的,确定工控系统中需进行漏洞挖掘的目标工控设备,包括:
确定工控系统中处于运行状态的一个或多个工控设备的资产信息;
将一个或多个工控设备中与工控漏洞库存在匹配资产信息的工控设备确定为需进行漏洞挖掘的目标工控设备;
工控漏洞库中存储有多个漏洞以及每个漏洞对应的资产信息。
可选的,工控漏洞库中还存储有每个漏洞的等级值,确定通过模糊测试对目标工控设备进行漏洞挖掘的畸形变异需求量,包括:
将工控漏洞库中与目标工控设备的资产信息匹配的资产信息对应的漏洞,作为目标工控设备已有的漏洞;
根据目标工控设备已有的漏洞的等级值,确定目标工控设备的漏洞等级;
确定通过模糊测试对目标工控设备进行漏洞挖掘的实际重复模糊测试间隔量;
根据漏洞等级和实际重复模糊测试间隔量,确定对目标工控设备进行漏洞挖掘的畸形变异需求量。
可选的,根据目标工控设备已有的漏洞的等级值,确定目标工控设备的漏洞等级,包括:
计算目标工控设备已有的所有漏洞的等级值的和;
将和与多个等级区间进行比对,其中,多个等级区间中每个等级区间对应一个漏洞等级,不同等级区间所对应的漏洞等级不同,等级区间的值越大对应的漏洞等级越高;
将和所在的等级区间对应的漏洞等级确定为目标工控设备的漏洞等级。
可选的,根据漏洞等级和实际重复模糊测试间隔量,确定对目标工控设备进行漏洞挖掘的畸形变异需求量,包括:
通过公式
计算对目标工控设备进行漏洞挖掘的畸形变异需求量;
可选的,确定通过模糊测试对目标工控设备进行漏洞挖掘的实际重复模糊测试间隔量,包括:
对重复模糊测试间隔量进行取整处理,得到实际重复模糊测试间隔量。
可选的,根据畸形变异需求量对目标工控设备进行漏洞挖掘,包括:
获取预设数量的用户请求数据;用户请求数据为用户终端设备发送给目标工控设备的请求数据;
分别针对每条用户请求数据,对用户请求数据进行解析,得到用户请求数据的特征值以及特征值在用户请求数据中的位置;
将得到的特征值中的一者作为目标特征值;
根据目标特征值在目标特征值所属用户请求数据中的位置,在目标特征值所属用户请求数据中对目标特征值进行编译,生成畸形报文;
利用畸形报文对目标工控设备进行漏洞挖掘;
判断畸形报文的数量是否达到畸形变异需求量,若是,则结束流程,否则,返回将得到的特征值中的一者作为目标特征值的步骤。
第二方面,本申请实施例提供了一种漏洞挖掘装置,包括:
第一确定模块,用于确定工控系统中需进行漏洞挖掘的目标工控设备;
第二确定模块,用于确定通过模糊测试对目标工控设备进行漏洞挖掘的畸形变异需求量;畸形变异需求量用于反映进行模糊测试时畸形变异的总次数;
挖掘模块,用于根据畸形变异需求量对目标工控设备进行漏洞挖掘。
可选的,第一确定模块包括:
第一确定单元,用于确定工控系统中处于运行状态的一个或多个工控设备的资产信息;
第二确定单元,用于将一个或多个工控设备中与工控漏洞库存在匹配资产信息的工控设备确定为需进行漏洞挖掘的目标工控设备;
工控漏洞库中存储有多个漏洞以及每个漏洞对应的资产信息。
可选的,工控漏洞库中还存储有每个漏洞的等级值,第二确定模块包括:
第三确定单元,用于将工控漏洞库中与目标工控设备的资产信息匹配的资产信息对应的漏洞,作为目标工控设备已有的漏洞;
第四确定单元,用于根据目标工控设备已有的漏洞的等级值,确定目标工控设备的漏洞等级;
第五确定单元,用于确定通过模糊测试对目标工控设备进行漏洞挖掘的实际重复模糊测试间隔量;
第六确定单元,用于根据漏洞等级和实际重复模糊测试间隔量,确定对目标工控设备进行漏洞挖掘的畸形变异需求量。
可选的,第四确定单元包括:
第一计算子单元,用于计算目标工控设备已有的所有漏洞的等级值的和;
比对子单元,用于将和与多个等级区间进行比对,其中,多个等级区间中每个等级区间对应一个漏洞等级,不同等级区间所对应的漏洞等级不同,等级区间的值越大对应的漏洞等级越高;
确定子单元,用于将和所在的等级区间对应的漏洞等级确定为目标工控设备的漏洞等级。
可选的,第六确定单元,具体用于通过公式
计算对目标工控设备进行漏洞挖掘的畸形变异需求量;
可选的,第五确定单元包括:
取整子单元,用于对重复模糊测试间隔量进行取整处理,得到实际重复模糊测试间隔量。
可选的,挖掘模块包括:
获取单元,用于获取预设数量的用户请求数据;用户请求数据为用户终端设备发送给目标工控设备的请求数据;
解析单元,用于分别针对每条用户请求数据,对用户请求数据进行解析,得到用户请求数据的特征值以及特征值在用户请求数据中的位置;
第七确定单元,用于将得到的特征值中的一者作为目标特征值;
编译单元,用于根据目标特征值在目标特征值所属用户请求数据中的位置,在目标特征值所属用户请求数据中对目标特征值进行编译,生成畸形报文;
挖掘单元,用于利用畸形报文对目标工控设备进行漏洞挖掘;
判断单元,用于判断畸形报文的数量是否达到畸形变异需求量,若是,则结束流程,否则,触发第七确定单元将得到的特征值中的一者作为目标特征值。
第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项的方法。
本申请实施例与现有技术相比存在的有益效果是:
在本申请的实施例中,通过在确定出工控系统中需要进行漏洞挖掘的目标工控设备后,先确定利用模糊测试对目标工控设备进行漏洞挖掘时畸形变异的总次数,再根据该总次数对目标工控设备进行漏洞挖掘。其中由于在进行模糊测试时不需要对数据进行全遍历式畸形变异处理,而只需要按照确定出的总次数执行有限次的畸形变异处理,从而大大缩短了漏洞挖掘时间。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的漏洞挖掘方法的流程图;
图2是本申请一实施例提供的步骤12的具体实现方式的流程图;
图3是本申请一实施例提供的步骤13的具体实现方式的流程图;
图4是本申请实施例提供的漏洞挖掘装置的结构示意图;
图5是本申请实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
由于目前在对工控设备进行漏洞挖掘时,需要对数据进行全遍历式畸形变异处理,从而造成漏洞挖掘时间长。
针对上述问题,本申请实施例提供了一种漏洞挖掘方法,该方法通过在确定出工控系统中需要进行漏洞挖掘的目标工控设备后,先确定利用模糊测试对目标工控设备进行漏洞挖掘时畸形变异的总次数,再根据该总次数对目标工控设备进行漏洞挖掘。其中由于在进行模糊测试时不需要对数据进行全遍历式畸形变异处理,而只需要按照确定出的总次数执行有限次的畸形变异处理,从而大大缩短了漏洞挖掘时间。
下面结合具体实施例对本申请提供的漏洞挖掘方法进行示例性的说明。
实施例一
本申请实施例提供的漏洞挖掘方法可以由终端设备执行,也可以由应用于终端设备中的装置(比如芯片)来执行,下述实施例以该方法由终端设备执行为例。作为一种示例,该终端设备可以是手机,或者平板,服务器或者笔记本电脑等,本申请实施例对此不做限定。
如图1所示,本申请的实施例提供了一种漏洞挖掘方法,该方法包括如下步骤:
步骤11,确定工控系统中需进行漏洞挖掘的目标工控设备。
在本申请的一些实施例中,上述目标工控设备可以是用户根据实际需求指定的工控设备,例如用户可通过终端设备的人机交互界面选择需进行漏洞挖掘的工控设备。
当然,上述目标工控设备还可以是终端设备根据预先设定的筛选规则从工控系统中自动确定的,使漏洞挖掘的自动化程度更高。其中,终端设备自动确定目标工控设备的方式将在后文详细阐述。
步骤12,确定通过模糊测试对目标工控设备进行漏洞挖掘的畸形变异需求量。
上述畸形变异需求量用于反映进行模糊测试时畸形变异的总次数,即,在通过模糊测试对目标工控设备进行漏洞挖掘时,向目标工控设备发送的畸形报文的总数。
步骤13,根据畸形变异需求量对目标工控设备进行漏洞挖掘。
在本申请的一些实施例中,在确定出上述畸形变异需求量后,通过模糊测试对目标工控设备进行漏洞挖掘。
其中,由于在进行模糊测试时不需要对数据(即目标工控设备与用户之间的交互数据)进行全遍历式畸形变异处理,而只需要按照确定出的总次数执行有限次的畸形变异处理,从而大大缩短了漏洞挖掘时间。
下面对终端设备自动确定目标工控设备的方式进行示例性的说明。
在本申请的一些实施例中,终端设备自动确定目标工控设备的方式可以为:先确定工控系统中处于运行状态的一个或多个工控设备的资产信息,然后将这一个或多个工控设备中与工控漏洞库存在匹配资产信息的工控设备确定为需进行漏洞挖掘的目标工控设备。
示例性的,终端设备可通过主机发现、端口扫描、版本侦测、操作系统侦测等方式确定工控系统中处于运行状态的工控设备的资产信息。其中,处于运行状态的工控设备指的是工控系统中存活的工控设备。
需要说明的是,上述主机发现、端口扫描、版本侦测、操作系统侦测等方式均为常用检测方式,因此在本申请的实施例中不对其原理进行过多赘述,但为便于快速理解本申请提供的方法,在此对其原理进行如下简要说明。
其中,主机发现原理与因特网包探索器(Ping,Packet Internet Grope)命令类似,其主要过程为:发送探测包到目标主机(即工控系统中的工控设备),如果收到回复,说明目标主机是开启的。具体可通过发送回应请求报文(如IMCP ECHO_REQUEST、IMCPTIMESTAMP _REQUEST),80和443端口的传输控制协议同步(TCP SYN,TransmissionControlProtocol synchronize)数据包来探测目标主机在线状态。
端口扫描方式主要分为传输控制协议(TCP,Transmission ControlProtocol)和用户数据报协议(UDP,User Datagram Protocol)两种方式。TCP扫描方式为发送SYN到目标端口(即工控系统中工控设备的某个端口),若收到SYN/确认字符(ACK,Acknowledgecharacter)回复,说明目标端口是开放的;若收到复位(RST)包,说明目标端口是关闭的,若没有收到回复,说明目标端口被屏蔽(Filtered)。UDP扫描方式用于判断UDP端口的情况,其主要过程为:向目标主机(即工控系统中的工控设备)的UDP端口发送探测包,若收到回复为因特网(Internet)控制报文协议(ICMP,Internet Control MessageProtocol)端口不可达(ICMP port unreachable),说明该UDP端口是关闭的;若没有收到回复,那说明该UDP端口可能是开放的或屏蔽的。
版本侦测的原理是:首先检查开放(open)与open|Filtered状态的端口是否在排除端口列表内,若端口在排除端口列表内,则将该端口剔除;若端口是TCP端口,则尝试建立TCP连接,并尝试等待片刻。通常在等待时间内,会接收到目标机(即工控系统中的工控设备)发送“WelcomeBanner”信息,此时将接收到的Banner与探针库中的签名进行对比,查找对应应用程序的名字与版本信息。若上述操作无法确定应用程序版本,则再尝试发送其他的探测包,若反复探测都无法得出具体应用,则打印出应用返回报文,让用户自行进一步判定。若端口是UDP端口,则直接使用探测包进行探测匹配,并根据结果对比分析出UDP应用服务类型。其中若探测到应用程序是安全套接字协议(SSL,Secure Sockets Layer )程序,则调用安全套接字层(openSSL)进一步的侦查运行在SSL之上的具体的应用类型。
操作系统侦测的原理是:根据终端设备内部包含的已知系统的指纹特征作为进行指纹对比的样本库,分别挑选一个open和关闭(closed)的端口,向其发送TCP/UDP/ICMP数据包,根据返回的数据包生成一份系统指纹,然后将探测生成的指纹与指纹特征库中指纹进行对比,查找匹配的系统。其中若无法匹配,则以概率形式列举出可能的系统。
需要说明的是,终端设备在对工控系统进行主机发现、端口扫描、版本侦测、操作系统侦测时,能获得工控系统中存活的工控设备的资产信息(包括工控设备的类型、型号、厂商、网际互连协议(IP,Internet Protocol)地址、媒体访问控制(MAC,Media AccessControl)地址、MAC厂商、端口等相关信息)。
需要进一步说明的是,为提升获取存活的工控设备的资产信息的效率,终端设备可通过调整线程参数构建多个线程对工控系统的工控设备进行检测。此外,由于终端设备能够自动确定目标工控设备,从而使得终端设备能实时完成漏洞挖掘。
在本申请的一些实施例中,上述工控漏洞库中存储有多个漏洞以及每个漏洞对应的资产信息。其中,工控漏洞库中的漏洞包括:公开漏洞平台(如通用漏洞平台(CVE,CommonVulnerabilities&Exposures)中与工控系统相关的漏洞,以及在工控系统的实际运行过程中出现过的漏洞,从而大大提升了资产信息匹配成功的概率,加大了抓取资产漏洞的可能性。上述工控漏洞库中每个漏洞对应的资产信息包括类型、型号和厂商。基于此,在确定出工控系统中处于运行状态的工控设备的资产信息后,可将该资产信息与工控漏洞库中的资产信息进行比对,若工控漏洞库中存在与该资产信息匹配的资产信息,则确定该工控设备为目标工控设备,表明在对该工控设备进行漏洞挖掘之前,该工控设备已有漏洞。
在本申请的一些实施例中,上述工控漏洞库中还包括每个漏洞的解决方案,因此在确定工控设备为目标工控设备后,可以在终端设备上展示该目标工控设备已有的漏洞以及每个漏洞的解决方案,以便用户及时修复目标工控设备的漏洞。
实施例二
本实施例是对实施例一的进一步说明,与实施例一相同或相似的地方,具体可参见实施例一的相关描述,此处不再赘述。
在本申请的一些实施例中,如图2所示,上述步骤12,确定通过模糊测试对目标工控设备进行漏洞挖掘的畸形变异需求量的具体实现方式包括如下步骤:
步骤21,根据目标工控设备已有的漏洞的等级值,确定目标工控设备的漏洞等级。
在本申请的一些实施例中,上述工控漏洞库中还存储有每个漏洞的等级值,相应的,在执行上述步骤21之前,上述方法还包括如下确定目标工控设备已有的漏洞的等级值的步骤:将工控漏洞库中与目标工控设备的资产信息匹配的资产信息对应的漏洞,作为目标工控设备已有的漏洞,然后查询工控漏洞库,得到目标工控设备已有的漏洞的等级值。
在本申请的一些实施例中,可通过如下方式确定目标工控设备的漏洞等级:首先计算目标工控设备已有的所有漏洞的等级值的和,然后将该和与多个等级区间进行比对,最后将和所在的等级区间对应的漏洞等级确定为目标工控设备的漏洞等级。
其中,上述多个等级区间中每个等级区间对应一个漏洞等级,不同等级区间所对应的漏洞等级不同,等级区间的值越大对应的漏洞等级越高。
作为一个可选的示例,上述多个等级区间包括按照数值从小至大的顺序依次分布的第一等级区间、第二等级区间、第三等级区间、第四等级区间和第五等级区间。其中,当和位于第一等级区间时,确定目标工控设备的漏洞等级为第一漏洞等级;当和值位于第二等级区间时,确定目标工控设备的漏洞等级为第二漏洞等级;当和值位于第三等级区间时,确定目标工控设备的漏洞等级为第三漏洞等级;当和值位于第四等级区间时,确定目标工控设备的漏洞等级为第四漏洞等级;当和值位于第五等级区间时,确定目标工控设备的漏洞等级为第五漏洞等级。
示例性的,可通过公式计算目标工控设备已有的所有漏洞的等级值的和,/>表示目标工控设备已有的所有漏洞的等级值的和,/>为目标工控设备已有的第个漏洞的等级值,/>为目标工控设备已有的漏洞的总数,/>为漏洞的序号。
举例说明,假设上述第一等级区间为[0,20),第二等级区间为[20,40),第三等级区间为[40,60),第四等级区间为[60,80),第五等级区间为[80,+),/>70,则说明目标工控设备的漏洞等级为第四漏洞等级。
步骤22,确定通过模糊测试对目标工控设备进行漏洞挖掘的实际重复模糊测试间隔量。
表1
步骤23,根据漏洞等级和重复模糊测试间隔量,确定对目标工控设备进行漏洞挖掘的畸形变异需求量。
在本申请的一些实施例中,可通过如下公式计算对目标工控设备进行漏洞挖掘的畸形变异需求量:
对应于前文等级区间的可选示例,当的值为1时,目标工控设备的漏洞等级为第一漏洞等级,/>,当/>的值为2时,目标工控设备的漏洞等级为第二漏洞等级,,当/>的值为3时,目标工控设备的漏洞等级为第三漏洞等级,,当/>的值为4时,目标工控设备的漏洞等级为第四漏洞等级,,当/>的值为5时,目标工控设备的漏洞等级为第五漏洞等级,。
需要说明的是,由于漏洞等级越高,需要进行模糊测试的畸形策略需要越复杂。因此在本申请的实施例中,为确保模糊测试的准确性,通过上述公式计算畸形变异需求量,使畸形报文的数量随漏洞等级的升高呈指数型增长。
下面结合具体实施例对漏洞挖掘过程进行示例性的说明。
在本申请的一些实施例中,如图3所示,上述步骤13,根据畸形变异需求量对目标工控设备进行漏洞挖掘的具体实现方式包括如下步骤:
步骤31,获取预设数量的用户请求数据。
上述用户请求数据为用户终端设备发送给目标工控设备的请求数据。在本申请的一些实施例中,终端设备可通过网口直连的方式实时抓取用户终端发送给目标工控设备的请求数据。上述用户终端可以为工控系统的操作员/工程师等所使用的终端设备。
在本申请的一些实施例中,上述预设数量可根据实际情况进行设定,例如设定为50、100等。可以理解的是,在本申请的实施例中并不限定预设数量的具体数值。
步骤32,分别针对每条用户请求数据,对用户请求数据进行解析,得到用户请求数据的特征值以及特征值在用户请求数据中的位置。
在本申请的一些实施例中,上述用户请求数据可通过报文的方式实现传输,基于此,在本申请的一些实施例中,可通过常用的报文解析方式对用户请求数据进行解析,确定用户请求数据的特征值,以及特征值在用户请求数据中的位置。
步骤33,将得到的特征值中的一者作为目标特征值。
步骤34,根据目标特征值在目标特征值所属用户请求数据中的位置,在目标特征值所属用户请求数据中对目标特征值进行编译,生成畸形报文。
在本申请的一些实施例中,可利用模糊测试的畸形变异机制对用户请求数据的特征值进行编译(即将特征值数据修改为其他数据),将编译后的用户请求数据作为畸形报文。举例说明,假设用户请求数据的表现形式为十六进制数,用户请求数据的特征值的位置为用户请求数据的第二个字节,则在对特征值进行编译时,需要将第二个字节的十六进制数修改为其他的十六进制数(修改后的十六进制数与特征值对应的十六进制数不同)。
步骤35,利用畸形报文对目标工控设备进行漏洞挖掘。
在本申请的一些实施例中,利用畸形报文对目标工控设备进行漏洞挖掘的主要过程为:首先将畸形报文发送给目标工控设备,然后监控目标工控设备在接收到畸形报文后是否出现故障,若出现故障,则说明目标工控设备对该条畸形报文存在漏洞,否则,说明目标工控设备对该条畸形报文不存在漏洞。需要说明的是,由于利用畸形报文对目标工控设备进行漏洞挖掘为模糊测试中的常用步骤,因此在此不对步骤35的具体过程进行过多赘述。
步骤36,判断畸形报文的数量是否达到畸形变异需求量,若是,则执行步骤37,否则,返回步骤33。
步骤37,结束流程。
在本申请的一些实施例中,在通过步骤34生成一条畸形报文,并利用该畸形报文对目标工控设备进行漏洞挖掘后,需要判断发送给目标工控设备的畸形报文的数量是否达到畸形变异需求量,若是,则结束流程,否则,重新从确定出的所有特征值中确定一目标特征值,并继续执行步骤34至步骤36,直至发送给目标工控设备的畸形报文的数量达到畸形变异需求量为止。
作为一个优选的示例,为提升漏洞挖掘的准确性,需确保每个特征值都可以被编译并得到相应的畸形报文。基于此,可以通过对确定出的所有特征值进行排序,然后在重复执行步骤33时,按照特征值的排序,依次将所有特征值的一特征值作为目标特征值。
需要说明的是,本申请实施例提供的漏洞挖掘方法可应用于各类评测认证机构,研究院以及工业控制设备和保护设备的生产厂商,除了能够帮助科研机构完成相关工业控制网络漏洞的发现和研究任务,极大的提高工作效率和准确率外;还能够帮助完善工控相关产品研发过程中的漏洞管理,避免产品在投入正式使用后因为漏洞被发现和利用而带来的各类不良后果,做到防患于未然。
实施例三
对应于上文实施例所述的漏洞挖掘方法,如图4所示,本申请的实施例提供了一种漏洞挖掘装置,该漏洞挖掘装置400包括:
第一确定模块401,用于确定工控系统中需进行漏洞挖掘的目标工控设备;
第二确定模块402,用于确定通过模糊测试对目标工控设备进行漏洞挖掘的畸形变异需求量;畸形变异需求量用于反映进行模糊测试时畸形变异的总次数;
挖掘模块403,用于根据畸形变异需求量对目标工控设备进行漏洞挖掘。
可选的,第一确定模块401包括:
第一确定单元,用于确定工控系统中处于运行状态的一个或多个工控设备的资产信息;
第二确定单元,用于将一个或多个工控设备中与工控漏洞库存在匹配资产信息的工控设备确定为需进行漏洞挖掘的目标工控设备;
工控漏洞库中存储有多个漏洞以及每个漏洞对应的资产信息。
可选的,工控漏洞库中还存储有每个漏洞的等级值,第二确定模块402包括:
第三确定单元,用于将工控漏洞库中与目标工控设备的资产信息匹配的资产信息对应的漏洞,作为目标工控设备已有的漏洞;
第四确定单元,用于根据目标工控设备已有的漏洞的等级值,确定目标工控设备的漏洞等级;
第五确定单元,用于确定通过模糊测试对目标工控设备进行漏洞挖掘的实际重复模糊测试间隔量;
第六确定单元,用于根据漏洞等级和实际重复模糊测试间隔量,确定对目标工控设备进行漏洞挖掘的畸形变异需求量。
可选的,第四确定单元包括:
第一计算子单元,用于计算目标工控设备已有的所有漏洞的等级值的和;
比对子单元,用于将和与多个等级区间进行比对,其中,多个等级区间中每个等级区间对应一个漏洞等级,不同等级区间所对应的漏洞等级不同,等级区间的值越大对应的漏洞等级越高;
确定子单元,用于将和所在的等级区间对应的漏洞等级确定为目标工控设备的漏洞等级。
可选的,第六确定单元,具体用于通过公式
计算对目标工控设备进行漏洞挖掘的畸形变异需求量;
可选的,第五确定单元包括:
取整子单元,用于对重复模糊测试间隔量进行取整处理,得到实际重复模糊测试间隔量。
可选的,挖掘模块403包括:
获取单元,用于获取预设数量的用户请求数据;用户请求数据为用户终端设备发送给目标工控设备的请求数据;
解析单元,用于分别针对每条用户请求数据,对用户请求数据进行解析,得到用户请求数据的特征值以及特征值在用户请求数据中的位置;
第七确定单元,用于将得到的特征值中的一者作为目标特征值;
编译单元,用于根据目标特征值在目标特征值所属用户请求数据中的位置,在目标特征值所属用户请求数据中对目标特征值进行编译,生成畸形报文;
挖掘单元,用于利用畸形报文对目标工控设备进行漏洞挖掘;
判断单元,用于判断畸形报文的数量是否达到畸形变异需求量,若是,则结束流程,否则,触发第七确定单元将得到的特征值中的一者作为目标特征值。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
如图5所示,本申请的实施例提供了一种终端设备,如图5所示,该实施例的终端设备D10包括:至少一个处理器D100(图5中仅示出一个处理器)、存储器D101以及存储在所述存储器D101中并可在所述至少一个处理器D100上运行的计算机程序D102,所述处理器D100执行所述计算机程序D102时实现上述任意各个方法实施例中的步骤。
所称处理器D100可以是中央处理单元(CPU,Central Processing Unit),该处理器D100还可以是其他通用处理器、数字信号处理器 (DSP,Digital Signal Processor)、专用集成电路 (ASIC,Application SpecificIntegrated Circuit)、现成可编程门阵列(FPGA,Field-Programmable Gate Array) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器D101在一些实施例中可以是所述终端设备D10的内部存储单元,例如终端设备D10的硬盘或内存。所述存储器D101在另一些实施例中也可以是所述终端设备D10的外部存储设备,例如所述终端设备D10上配备的插接式硬盘,智能存储卡(SMC,SmartMedia Card ),安全数字(SD,Secure Digital)卡,闪存卡(Flash Card)等。进一步地,所述存储器D101还可以既包括所述终端设备D10的内部存储单元也包括外部存储设备。所述存储器D101用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器D101还可以用于暂时地存储已经输出或者将要输出的数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到漏洞挖掘装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (9)
1.一种漏洞挖掘方法,其特征在于,包括:
确定工控系统中需进行漏洞挖掘的目标工控设备;
将工控漏洞库中与所述目标工控设备的资产信息匹配的资产信息对应的漏洞,作为所述目标工控设备已有的漏洞,所述工控漏洞库中存储有多个漏洞以及每个所述漏洞对应的资产信息和等级值;根据所述目标工控设备已有的漏洞的等级值,确定所述目标工控设备的漏洞等级;确定通过模糊测试对所述目标工控设备进行漏洞挖掘的实际重复模糊测试间隔量;根据所述漏洞等级和所述实际重复模糊测试间隔量,确定对所述目标工控设备进行漏洞挖掘的畸形变异需求量;所述畸形变异需求量用于反映进行所述模糊测试时畸形变异的总次数;
根据所述畸形变异需求量对所述目标工控设备进行漏洞挖掘。
2.根据权利要求1所述的方法,其特征在于,所述确定工控系统中需进行漏洞挖掘的目标工控设备,包括:
确定所述工控系统中处于运行状态的一个或多个工控设备的资产信息;
将一个或多个所述工控设备中与工控漏洞库存在匹配资产信息的所述工控设备确定为需进行漏洞挖掘的目标工控设备。
3.根据权利要求1所述的方法,其特征在于,所述根据所述目标工控设备
已有的漏洞的等级值,确定所述目标工控设备的漏洞等级,包括:
计算所述目标工控设备已有的所有漏洞的等级值的和;
将所述和与多个等级区间进行比对,其中,所述多个等级区间中每个等级区间对应一个漏洞等级,不同等级区间所对应的漏洞等级不同,等级区间的值越大对应的漏洞等级越高;
将所述和所在的等级区间对应的漏洞等级确定为所述目标工控设备的漏洞等级。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述根据所述畸
形变异需求量对所述目标工控设备进行漏洞挖掘,包括:
获取预设数量的用户请求数据;所述用户请求数据为用户终端设备发送给所述目标工控设备的请求数据;
分别针对每条所述用户请求数据,对所述用户请求数据进行解析,得到所述用户请求数据的特征值以及所述特征值在所述用户请求数据中的位置;
将得到的特征值中的一者作为目标特征值;
根据所述目标特征值在所述目标特征值所属用户请求数据中的位置,在所述目标特征值所属用户请求数据中对所述目标特征值进行编译,生成畸形报文;
利用所述畸形报文对所述目标工控设备进行漏洞挖掘;
判断所述畸形报文的数量是否达到所述畸形变异需求量,若是,则结束流程,否则,返回所述将得到的特征值中的一者作为目标特征值的步骤。
7.一种漏洞挖掘装置,其特征在于,包括:
第一确定模块,用于确定工控系统中需进行漏洞挖掘的目标工控设备;
第二确定模块,用于将工控漏洞库中与所述目标工控设备的资产信息匹配的资产信息对应的漏洞,作为所述目标工控设备已有的漏洞,所述工控漏洞库中存储有多个漏洞以及每个所述漏洞对应的资产信息和等级值;根据所述目标工控设备已有的漏洞的等级值,确定所述目标工控设备的漏洞等级;确定通过模糊测试对所述目标工控设备进行漏洞挖掘的实际重复模糊测试间隔量;根据所述漏洞等级和所述实际重复模糊测试间隔量,确定对所述目标工控设备进行漏洞挖掘的畸形变异需求量;所述畸形变异需求量用于反映进行所述模糊测试时畸形变异的总次数;
挖掘模块,用于根据所述畸形变异需求量对所述目标工控设备进行漏洞挖掘。
8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310043331.2A CN115941358B (zh) | 2023-01-29 | 2023-01-29 | 漏洞挖掘方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310043331.2A CN115941358B (zh) | 2023-01-29 | 2023-01-29 | 漏洞挖掘方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115941358A CN115941358A (zh) | 2023-04-07 |
CN115941358B true CN115941358B (zh) | 2023-06-30 |
Family
ID=86698014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310043331.2A Active CN115941358B (zh) | 2023-01-29 | 2023-01-29 | 漏洞挖掘方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115941358B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001829A (zh) * | 2022-06-07 | 2022-09-02 | 中国软件评测中心(工业和信息化部软件与集成电路促进中心) | 协议漏洞挖掘方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459876B (zh) * | 2008-10-28 | 2011-11-16 | 中国科学院研究生院 | 一种彩信协议漏洞挖掘方法及其系统 |
CN109902024B (zh) * | 2019-03-18 | 2022-04-29 | 中国人民解放军战略支援部队信息工程大学 | 一种程序路径敏感的灰盒测试方法及装置 |
CN113111351B (zh) * | 2020-01-10 | 2023-10-17 | 中国电信股份有限公司 | 测试方法、装置和计算机可读存储介质 |
CN114048126B (zh) * | 2021-11-09 | 2022-06-07 | 国家工业信息安全发展研究中心 | 一种协议模糊测试方法及系统 |
-
2023
- 2023-01-29 CN CN202310043331.2A patent/CN115941358B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001829A (zh) * | 2022-06-07 | 2022-09-02 | 中国软件评测中心(工业和信息化部软件与集成电路促进中心) | 协议漏洞挖掘方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115941358A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170083703A1 (en) | Leveraging behavior-based rules for malware family classification | |
US20140052748A1 (en) | Match engine for detection of multi-pattern rules | |
US20050259678A1 (en) | Network interface controller circuitry | |
US20210273964A1 (en) | Abnormality sensing device and abnormality sensing method | |
CN107276851B (zh) | 一种节点的异常检测方法、装置、网络节点及控制台 | |
CN114598504B (zh) | 一种风险评估方法、装置、电子设备及可读存储介质 | |
CN114598512B (zh) | 一种基于蜜罐的网络安全保障方法、装置及终端设备 | |
CN110851352A (zh) | 一种模糊测试系统及终端设备 | |
CN112261046A (zh) | 一种基于机器学习的工控蜜罐识别方法 | |
RU2746105C2 (ru) | Система и способ конфигурирования шлюза для защиты автоматизированных систем | |
RU2769075C1 (ru) | Система и способ активного обнаружения вредоносных сетевых ресурсов | |
CN114363053A (zh) | 一种攻击识别方法、装置及相关设备 | |
CN115941358B (zh) | 漏洞挖掘方法、装置、终端设备及存储介质 | |
CN115357513B (zh) | 程序模糊测试方法、装置、设备及存储介质 | |
CN113660134B (zh) | 端口探测方法、装置、电子装置和存储介质 | |
CN113904853B (zh) | 网络系统的入侵检测方法、装置、电子设备和介质 | |
CN113645191B (zh) | 可疑主机的确定方法、装置、设备和计算机可读存储介质 | |
CN113364766B (zh) | 一种apt攻击的检测方法及装置 | |
CN106411816B (zh) | 一种工业控制系统、安全互联系统及其处理方法 | |
CN110535844B (zh) | 一种恶意软件通讯活动检测方法、系统及存储介质 | |
CN111190824B (zh) | 监测方法、装置、终端设备及存储介质 | |
EP3799367B1 (en) | Generation device, generation method, and generation program | |
EP3484122A1 (en) | Malicious relay and jump-system detection using behavioral indicators of actors | |
US10810098B2 (en) | Probabilistic processor monitoring | |
KR20200075725A (ko) | 복수개의 디바이스 정보 종합 분석을 통한 디바이스 이상 징후 탐지 방법 및 그 장치 |
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 |