发明内容
本申请实施例提供了一种漏洞挖掘的方法和装置,通过劫持云端服务器和IoT设备的通信链路,基于模糊测试(Fuzzing)对IoT设备进行漏洞挖掘,提高IoT设备和云端服务器通信场景中的安全性。
第一方面,本申请实施例提供了一种漏洞挖掘的方法,包括:
获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
可选地,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息,包括:
通过所述网关获取所述流量信息。
可选的,所述网关通过内核接口修改所述终端设备向所述IoT设备发送流量信息的目的地址和端口,所述通过所述网关获取所述流量信息,包括:
基于修改后的目的地址和端口,从所述网关接收所述终端设备发送的所述流量信息;
在所述通过所述网关获取所述流量信息之后,所述方法还包括:
基于修复后的目的地址和端口,通过所述网关向所述IoT设备发送所述流量信息,其中,所述修复后的目的地址和端口分别为所述网关通过内核接口修复所述终端设备向所述IoT设备发送流量信息的目的地址和端口后的结果。
可选地,所述基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试,包括:
将所述流量信息作为测试集种子,对所述测试集种子进行变异,生成测试数据;
按照预设策略,基于所述测试数据对所述IoT设备上的客户端程序进行模糊测试。
可选地,所述监听所述模糊测试中的异常,确定所述IoT设备的漏洞,包括:
监听所述云端服务器和所述IoT设备之间的连接状态;
根据所述连接状态确定所述IoT设备是否存在内存破坏类漏洞。
可选地,所述方法还包括:
向所述IoT设备的客户端程序发送Ping命令;
所述监听所述模糊测试中的异常,确定所述IoT设备的漏洞,包括:
监听所述IoT设备对所述Ping命令是否有响应;
根据所述响应确定所述IoT设备存在命令注入类漏洞。
第二方面,本申请实施例还提供了一种漏洞挖掘的装置,包括:
获取单元,用于获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
测试单元,用于基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
监听单元,用于监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
可选地,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述获取单元,具体用于:
通过所述网关获取所述流量信息。
可选的,所述网关通过内核接口修改所述终端设备向所述IoT设备发送流量信息的目的地址和端口,所述获取单元,具体用于:
基于修改后的目的地址和端口,从所述网关接收的所述终端设备发送的所述流量信息;
所述装置还包括:
第一发送单元,用于在所述通过所述网关获取所述流量信息之后,基于修复后的目的地址和端口,通过所述网关向所述IoT设备发送所述流量信息,其中,所述修复后的目的地址和端口分别为所述网关通过内核接口修复所述终端设备向所述IoT设备发送流量信息的目的地址和端口后的结果。
可选地,所述测试单元,包括:
变异子单元,用于将所述流量信息作为测试集种子,对所述测试集种子进行变异,生成测试数据;
测试子单元,用于按照预设策略,基于所述测试数据对所述IoT设备上的客户端程序进行模糊测试。
可选地,所述监听单元,包括:
第一监听子单元,用于监听所述云端服务器和所述IoT设备之间的连接状态;
第一确定子单元,用于根据所述连接状态确定所述IoT设备是否存在内存破坏类漏洞。
可选地,所述装置还包括:
第二发送单元,用于向所述IoT设备的客户端程序发送Ping命令;
所述监听单元,包括:
第二监听子单元,用于监听所述IoT设备对所述Ping命令是否有响应;
第二确定子单元,用于根据所述响应确定所述IoT设备存在命令注入类漏洞。
第三方面,本申请实施例还提供了一种漏洞挖掘系统,包括:中间人流量代理模块、模糊测试引擎和异常信息捕获器,其中:
所述中间人流量代理模块,用于获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
所述模糊测试引擎,用于基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
所述异常信息捕获器,用于监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
其中,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述漏洞挖掘系统集成于所述网关。
或者,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述漏洞挖掘系统和所述网关通信。所述漏洞挖掘系统中的中间人流量代理模块、模糊测试引擎和异常信息捕获器,可以通过一个服务器实现,也可以通过多个服务器实现。
第四方面,本申请实施例还提供了一种电子设备,所述电子设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行上述第一方面提供的所述方法。
第五方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面提供的所述方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例提供了一种漏洞挖掘的方法,该方法中,漏洞挖掘装置先获取终端设备上的应用程序通过云端服务器向IoT设备发送的流量信息;然后基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;最后监听所述模糊测试中的异常,确定所述IoT设备的漏洞。可见,通过本申请实施例提供的方法,提供了反向(即服务端到客户端)的模糊测试,采用黑盒的方式让测试目标的适用性更为广泛,并且利用透明代理的技术进行流量中间人劫持,通过劫持云端服务器和IoT设备的通信链路,能够在例如消息队列通信等模式下挖掘IoT设备侧客户端程序所接收消息中的漏洞,提高IoT设备和云端服务器通信场景中的安全性。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,并非对本申请的限定。另外,还需要说明的是,为便于描述,附图中仅示出了与本申请相关的部分,并非全部结构。
对于智能家居场景,IoT设备的通信架构通常如图1所示。
作为一个示例,用户借助终端设备100(如手机)上安装的APP 110,通过云端服务器200对IoT设备300进行管控,云端服务器200和IoT设备300之间通过网关400通信。以IoT设备300为音响300为例,用户可以通过手机100上安装的用于控制音响300的APP 110发送控制消息,该控制消息经过云端服务器200发送到音响300,该音响300执行该控制消息以实现用户对音响300的控制。
作为另一个示例,用户借助终端设备100(如手机)上安装的APP 110,也可以直接对IoT设备300进行管控,终端设备100和IoT设备300之间通过网关400通信。以IoT设备300为音响300为例,用户可以通过手机100上安装的用于控制音响300的APP 110发送控制消息,该控制消息直接发送到音响300,该音响300执行该控制消息以实现用户对音响300的控制。
需要说明的是,本申请实施例为了更加清楚的阐述本申请提供的漏洞挖掘方法,以云端服务器200通过网关400向IoT设备300发送控制消息过程中的漏洞挖掘为例进行说明,对于终端设备100通过网关400向IoT设备300发送控制消息过程中的漏洞挖掘,由于原理相同,所以不再赘述。
基于图1所示的IoT架构,由于云端服务器和IoT设备之间通常使用长连接协议(如MQTT)进行交互,这样,云端服务器会主动将APP发来的消息推送给IoT设备,IoT设备直接解析云端服务器发来的消息,那么,衍生出一种新的攻击模式,即,将云端服务器作为跳板发送恶意消息给IoT设备,进而触发IoT设备解析恶意消息中的漏洞,这样,针对多个在线IoT设备造成远程拒绝服务攻击或远程命令执行,突破原有的Wi-F)或蓝牙等近场攻击的局限性,不需要抵近攻击,从而攻击成本降低,危害性更大,影响面更广。
然而,目前的漏洞挖掘方法无法直接接入云端服务器主动与IoT设备通信形成的反方向通信隧道,从而无法实现该场景下有效的IoT设备侧漏洞挖掘。
基于此,为了提高物联网中云和设备结合的场景的安全性,本申请实施例提供了一种IoT设备侧漏洞挖掘的方法,通过劫持云端服务器和IoT设备的通信链路,以此来自动化对设备程序模糊测试,挖掘零日(0day)漏洞。
本申请实施例提供的漏洞挖掘的方法,例如可以包括:漏洞挖掘装置先获取终端设备上的应用程序通过云端服务器向IoT设备发送的流量信息;然后基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;最后监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
可见,通过本申请实施例提供的方法,提供了反向(即服务端到客户端)的模糊测试,采用黑盒的方式让测试目标的适用性更为广泛,并且利用透明代理的技术进行流量中间人劫持,通过劫持云端服务器和IoT设备的通信链路,能够在例如消息队列通信等模式下挖掘IoT设备侧客户端程序所接收消息中的漏洞,提高IoT设备和云端服务器通信场景中的安全性。
为了使本申请实施例提供的方案更加清楚,下面对本申请实施例提及的一些词语进行解释。
消息队列通信:允许APP通过服务中转通信,消息队列会在APP未连接的时候临时存储消息,等待APP在线后发送,以保证IoT设备不在线时消息数据不丢失。这样,提供了异步的通信方式,将数据放入消息队列并且不需要立即响应来处理。
模糊测试(Fuzzing):是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法,被各大软件厂商广泛使用,对自家产品进行漏洞挖掘,从而减少产品中的漏洞。其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常,如崩溃、断言(assertion)失败,以发现可能的程序错误,比如内存泄漏。模糊测试常常用于检测软件或计算机系统的安全漏洞挖掘。
MQTT:轻量级的开源协议,在用户或IoT设备之间传输数据,与基于请求/响应模式的其他协议不同,MQTT采用了Pub/Sub通信模型,在IoT的通信架构中,IoT设备一般作为订阅者接收指令,用户作为发布者发布指令,通过MQTT协议服务来中转传输。
Seed:测试用例,由于Fuzzing过程中,会将测试用例作为变异的起点,所以也称为种子。
Mutation:种子变异阶段,通过变异种子来使输入发生一定的变化,从而让测试数据进入不同的程序路径中,增加漏洞发现的几率。
为便于理解本申请实施例提供的漏洞挖掘的方法的具体实现,下面将结合附图进行说明。
需要说明的是,实施该漏洞挖掘的方法的主体可以为本申请实施例提供的漏洞挖掘的装置,该装置可以承载于电子设备或电子设备的功能模块中。本申请实施例中的电子设备,可以是任意的能够实施本申请实施例中的漏洞挖掘的方法的设备。或者,实施该漏洞挖掘的方法的主体可以为本申请实施例提供的漏洞挖掘系统,该系统的各个模块可以承载于一个或多个实体设备中,例如可以承载在云端服务器和IoT设备之间的网关上。
介绍本申请实施例之前,先以该漏洞挖掘的装置承载于和网关连接的多个服务器组成的漏洞挖掘系统为例,对适用场景进行示例性的介绍,如图2所示。
参见图2,该场景中,漏洞挖掘系统1可以包括:中间人流量代理模块10、模糊测试引擎20和异常信息捕获器30。其中,所述中间人流量代理模块10,用于获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;所述模糊测试引擎20,用于基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;所述异常信息捕获器30,用于监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
对于中间人流量代理模块10,考虑到反向通信的Fuzzing难点在黑盒模式下如何主动向IoT设备的客户端程序发送测试数据。通过研究发现,IoT设备通信中,IoT设备需要借助Wi-Fi路由器等网关设备接入互联网,这提供流量中间人劫持的可能。本申请实施例中,采用中间人代理的方式劫持通信的会话。在生成测试数据阶段,可以记录流量信息并存储,以此作为变异种子。并且在Fuzzing阶段,介入通信会话向客户端程序发送测试数据。
作为一个示例,中间人流量代理模块10可以包括中间人劫持子模块11和流量记录器12。
考虑到常见的IoT设备的通信架构如图1所示。用户通过外围系统,比如终端设备的应用程序,通过云侧或者局域网内与IoT设备进行通信,那么,IoT设备与云端服务器的上行通信路径是⑥-③,IoT设备与云端服务器的下行通信路径是④-⑤,终端设备和IoT设备通信的路径为①-⑤和⑥-②,这些通信路径中都需要经过网关。所以,本申请实施例中的中间人劫持子模块11可以通过在网关通过内核接口修改设备通信的目的地址和端口,将流量消息转发到代理上,再调用内核接口修复目的地址和端口,以此劫持该通信会话。该中间人劫持子模块11能够维持IoT设备上行和下行的通信会话,还提供发送测试数据进行Fuzzing的接口。
考虑到上述通过中间人的方式,代理可以将通信会话劫持,这样,流量记录器12就可以被动的记录IoT设备与云端服务器或IoT设备与终端设备上APP的通信数据,以此作为Fuzzing的变异种子。为了提高种子数据的采集效率,可采用人工方法,遍历外围系统(如终端设备上的APP或Web)的控件,以此触发与IoT设备的交互通信,更加全面的获取变异种子数据。
对于模糊测试引擎20,还需要变异数据,并依照反馈的信息制定策略进行测试。为此,本申请实施例设计模糊测试引擎20具有两个主要功能:测试数据生成和任务调度。
作为一个示例,模糊测试引擎20可以包括测试数据生成器21和任务调度器22。
其中,测试数据生成器21,用于针对流量记录的数据进行变异处理。具体过程可以包括:首先,读取流量信息作为变异种子,进行流量协议识别,即,对协议相应字段的值进行预处理解析,尤其是对消息载荷(例如:代码1)进行预处理解析,可以设立黑名单机制,过滤部分字段,例如,对MQTT协议中如Topic字段等字段,该Topic字段用于标识消息队列转发的目标,一般不做处理。识别字段值类型如JSON对象、二进制和键值对等,依照预设的策略按照所识别的字段值类型有针对的进行变异。如代码1的JSON对象,该测试数据生成器21遍历JSON对象中的值识别类型。预设的策略,可以依照字符串、整数、浮点数等进行变异,生成待发送的测试数据。
其中,任务调度器22,可以借助中间人流量代理模块10提供的会话管理接口,向IoT设备的客户端程序发送Fuzzing所需的数据。任务调度器22中可以制定策略启动测试数据的发送任务,监听接收异常信息反馈,以确定是否触发异常。作为一个示例,对于命令注入漏洞类型,采用注入ping命令(例如:ping-c 1 192.168.1.1)的方法进行Fuzzing。该方法的优势在于通过互联网控制报文协议(Internet Control Message Protocol,ICMP)服务器监听,不会阻塞Fuzzing的进程。作为另一个示例,对于内存破坏漏洞类型,可以包括缓冲区溢出和空指针引用漏洞等,当触发漏洞时通常会导致应用程序崩溃,所以也称为崩溃漏洞类型。如果接收到崩溃漏洞消息通知,将记录异常信息并暂停Fuzzing执行,因为订阅方暂时处于脱机状态,如此,需等待守护进程重新启动后,再重启测试任务。
例如,针对parm的值变异命令注入漏洞检测的测试数据,可以如下:
对于异常信息捕获器30,可以用于负责收集Fuzzing中异常的反馈信息,传统的模糊测试系统多采用重启或关机的方式来测试命令执行漏洞,本文则提出了优化方案,通过注入PING命令的方式,避免设备停止运行,进而测试任务可以连续执行,提高了模糊测试的效率。因此,依照漏洞类型主要分为崩溃型的异常信息和命令注入类的异常信息,采用不同的检测方法。
作为一个示例,异常信息捕获器30可以包括会话状态监测器31和ICMP服务器32。
其中,会话状态监测器31可以用于获得崩溃型漏洞的异常信息。通过IoT设备特有的协议机制,可以基于心跳包或通信会话的状态来判断客户端程序是否发生崩溃。需要说明的是,本申请实施例提出监听会话状态判断漏洞的方法,即,当通信程序崩溃,客户端程序会发送RST或FIN的传输控制协议(Transmission Control Protocol,TCP)报文用以终止当前会话,以此判断是否异常的机制。其中,本申请实施例中通过中间人代理劫持上行和下行的会话,为监听会话状态提供了可能性。
其中,ICMP服务器32可以用于获得命令注入类的异常信息。传统的Fuzzing是通过注入系统关机或重启命令,监控服务的状态,但是该方法具有如下不足:一、因为无法检测到客户端程序的状态,所以不适用于反向Fuzzing方法,二、会阻碍Fuzzing的进行。基于此,本申请实施例采用的发送Ping包的方式,例如上述举例中的测试数据,通过ICMP服务器32监听是否有IoT设备发送的报文来判断是否存在命令注入漏洞。
需要说明的是,图2中各个模块的作用以及在本申请实施例中执行的步骤,可以参见下述图3所示实施例中的介绍。
图3为本申请实施例提供的一种漏洞挖掘的方法流程示意图。该方法可以应用于如图2所示的漏洞挖掘系统1中,所述漏洞挖掘系统1可以承载于至少一个服务器上,如果漏洞挖掘系统1承载于一个服务器上,那么,该服务器可以是图1中的网关400,也可以是与图1中的网络400连接的其他具有该漏洞挖掘系统1的功能的服务器;如果漏洞挖掘系统1承载于多个服务器上,那么,该多个服务器中可以有至少一个模块集成于图1中的网关400上,也可以是与图1中的网络400连接的、且独立于网关400的实体模块。
如图3所示,该方法可以包括下述S301~S303:
S301,获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息。
本申请实施例中,设计了通过中间人流量代理劫持IoT设备与云端服务器之间或IoT设备与安装有控制IoT设备的APP所在的终端设备之间的通信会话。作为一个示例,中间人流量代理劫持可以通过IoT设备与云端服务器之间的网关或IoT设备与安装有控制IoT设备的APP所在的终端设备之间的网关实现,例如在网关通过内核接口修改设备通信的目的地址和端口,将流量转发到代理上;那么,为了不影响终端设备的APP对IoT设备的控制,还可以再调用内核接口修复目的地址和端口,使得流量从网关转发到IoT设备上。
作为一个示例,所述云端服务器通过网关向所述IoT设备发送所述流量信息,那么,S301中所述获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息,可以包括:通过所述网关获取所述流量信息。
S302,基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试。
具体实现时,S302中所述基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试,可以包括:S3021,将所述流量信息作为测试集种子,对所述测试集种子进行变异,生成测试数据;S3022,按照预设策略,基于所述测试数据对所述IoT设备上的客户端程序进行模糊测试。
S303,监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
作为一个示例,S303中所述监听所述模糊测试中的异常,确定所述IoT设备的漏洞,可以包括:监听所述云端服务器和所述IoT设备之间的连接状态;根据所述连接状态确定所述IoT设备是否存在内存破坏类漏洞。
作为另一个示例,所述方法还可以包括:向所述IoT设备的客户端程序发送Ping命令。那么,S303中所述监听所述模糊测试中的异常,确定所述IoT设备的漏洞,可以包括:监听所述IoT设备对所述Ping命令是否有响应;根据所述响应确定所述IoT设备存在命令注入类漏洞。
可以理解的是,通过中间人流量代理劫持IoT设备与云端服务器或APP所在终端设备的通信会话,本申请实施例提供的漏洞挖掘的装置或漏洞挖掘系统可以提供3个能力:一、向客户端程序发送流量的能力;二、记录IoT设备与云端服务器以及IoT设备与控制该IoT设备的APP所在的终端设备所交互的数据的能力;三、监控客户端程序发起的通信会话状态的能力。利用这些能力,首先,可采集IoT设备和云端服务器通信的流量信息,作为测试集种子,并通过这些种子变异生成测试数据;其次,通过中间人代理制定策略发送测试数据;最后,监听客户端通信会话状态等信息,捕捉异常信息发现漏洞。
通过上述检测方法,可以发现内存破坏类和命令注入类这2类漏洞。对于内存破坏类漏洞,可以包括缓冲区溢出和空指针引用漏洞等,当触发漏洞时通常会导致应用程序崩溃。因此,异常信息捕获时会监视IoT设备和云端服务器的TCP连接状态,以推断该进程是否仍在运行,如果TCP连接中断,则确定存在内存破坏类漏洞。对于命令注入类漏洞,可以将Ping命令插入Fuzzing的数据载荷中,监听是否触发出ICMP Echo报文来判断是否存在该类型漏洞,如果监听到ICMP Echo报文,则认为存在命令注入类漏洞。
可见,通过本申请实施例提供的方法,提供了反向(即服务端到客户端)的模糊测试,采用黑盒的方式让测试目标的适用性更为广泛,并且利用透明代理的技术进行流量中间人劫持,通过劫持云端服务器和IoT设备的通信链路,能够在例如消息队列通信等模式下挖掘IoT设备侧客户端程序所接收消息中的漏洞,提高IoT设备和云端服务器通信场景中的安全性。
相应的,本申请实施例还提供了一种漏洞挖掘的装置400,参见图4所示。该装置400包括:
获取单元401,用于获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
测试单元402,用于基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
监听单元403,用于监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
作为一个示例,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述获取单元401,具体用于:
通过所述网关获取所述流量信息。
例如,所述网关通过内核接口修改所述终端设备向所述IoT设备发送流量信息的目的地址和端口,所述获取单元401,具体用于:
基于修改后的目的地址和端口,从所述网关接收所述终端设备发送的所述流量信息;
所述装置400还包括:
第一发送单元,用于在所述通过所述网关获取所述流量信息之后,基于修复后的目的地址和端口,通过所述网关向所述IoT设备发送所述流量信息,其中,所述修复后的目的地址和端口分别为所述网关通过内核接口修复所述终端设备向所述IoT设备发送流量信息的目的地址和端口后的结果。
作为一个示例,所述测试单元402,包括:
变异子单元,用于将所述流量信息作为测试集种子,对所述测试集种子进行变异,生成测试数据;
测试子单元,用于按照预设策略,基于所述测试数据对所述IoT设备上的客户端程序进行模糊测试。
作为一个示例,所述监听单元403,包括:
第一监听子单元,用于监听所述云端服务器和所述IoT设备之间的连接状态;
第一确定子单元,用于根据所述连接状态确定所述IoT设备是否存在内存破坏类漏洞。
作为另一个示例,所述装置400还包括:
第二发送单元,用于向所述IoT设备的客户端程序发送Ping命令;
所述监听单元403,包括:
第二监听子单元,用于监听所述IoT设备对所述Ping命令是否有响应;
第二确定子单元,用于根据所述响应确定所述IoT设备存在命令注入类漏洞。
此外,本申请实施例还提供了一种漏洞挖掘系统500,如图5所示,所述系统500包括:中间人流量代理模块501、模糊测试引擎502和异常信息捕获器503,其中:
所述中间人流量代理模块501,用于获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
所述模糊测试引擎502,用于基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
所述异常信息捕获器503,用于监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
需要说明的是,该实施例中的中间人流量代理模块501、模糊测试引擎502和异常信息捕获器503,具体可以参见上述图2中的中间人流量代理模块10、模糊测试引擎20和异常信息捕获器30的相关说明,这里不再赘述。
作为一个示例,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述漏洞挖掘系统500集成于所述网关。
作为另一个示例,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述漏洞挖掘系统500和所述网关通信。
此外,本申请实施例还提供了一种电子设备600,如图6所示,所述电子设备600包括处理器601以及存储器602:
所述存储器602用于存储计算机程序;
所述处理器601用于根据所述计算机程序执行本申请实施例提供的方法。
此外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行本申请实施例提供的方法。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。