CN114328216A - 一种漏洞挖掘的方法和装置 - Google Patents

一种漏洞挖掘的方法和装置 Download PDF

Info

Publication number
CN114328216A
CN114328216A CN202111620045.5A CN202111620045A CN114328216A CN 114328216 A CN114328216 A CN 114328216A CN 202111620045 A CN202111620045 A CN 202111620045A CN 114328216 A CN114328216 A CN 114328216A
Authority
CN
China
Prior art keywords
iot
iot device
vulnerability
gateway
cloud server
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.)
Pending
Application number
CN202111620045.5A
Other languages
English (en)
Inventor
于淼
徐绘凯
刘跃
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qax Technology Group Inc, Secworld Information Technology Beijing Co Ltd filed Critical Qax Technology Group Inc
Priority to CN202111620045.5A priority Critical patent/CN114328216A/zh
Publication of CN114328216A publication Critical patent/CN114328216A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种漏洞挖掘的方法和装置,漏洞挖掘装置先获取终端设备上的应用程序通过云端服务器向IoT设备发送的流量信息;然后基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;最后监听所述模糊测试中的异常,确定所述IoT设备的漏洞。可见,通过本申请实施例提供的方法,提供了反向(即服务端到客户端)的模糊测试,采用黑盒的方式让测试目标的适用性更为广泛,并且利用透明代理的技术进行流量中间人劫持,通过劫持云端服务器和IoT设备的通信链路,能够在例如消息队列通信等模式下挖掘IoT设备侧客户端程序所接收消息中的漏洞,提高IoT设备和云端服务器通信场景中的安全性。

Description

一种漏洞挖掘的方法和装置
技术领域
本申请涉及安全技术领域,特别是涉及一种漏洞挖掘的方法和装置。
背景技术
物联网(Internet of Things,IoT)已经成为当下最为流行和实用的网络平台之一,各式各样的传感器和控制器接入到互联网中,实现人与物的无缝通信,成为全球网络未来发展的重要方向。
目前,用户可以借助终端设备(如手机)上安装的应用程序(Application,APP),通过云端服务器对IoT设备进行管控。云端服务器和IoT设备之间通常使用长连接协议(如消息队列遥测传输协议(Message Queuing Telemetry Transport,MQTT))进行交互,这样,云端服务器会主动将APP发来的消息推送给IoT设备,IoT设备直接解析云端服务器发来的消息,那么,攻击者很可能将云端服务器作为跳板发送恶意消息给IoT设备,进而触发IoT设备解析恶意消息中的漏洞,这样可以针对多个在线IoT设备造成远程拒绝服务攻击或远程命令执行,突破原有的无线网络通信技术(Wi-Fi)或蓝牙等近场攻击的局限性,不需要抵近攻击,从而攻击成本降低,危害性更大,影响面更广。
基于此,亟待提供一种IoT设备侧的漏洞挖掘的技术方案,能够解决上述IoT设备和云端服务器通信场景中的安全问题。
发明内容
本申请实施例提供了一种漏洞挖掘的方法和装置,通过劫持云端服务器和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设备和云端服务器通信场景中的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种IoT设备的通信架构的示意图;
图2为本申请实施例适用的一场景中漏洞挖掘系统的结构示意图;
图3为本申请实施例提供的一种漏洞挖掘的方法的流程示意图;
图4为本申请实施例提供的一种漏洞挖掘的装置的结构示意图;
图5为本申请实施例提供的一种漏洞挖掘系统的结构示意图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,并非对本申请的限定。另外,还需要说明的是,为便于描述,附图中仅示出了与本申请相关的部分,并非全部结构。
对于智能家居场景,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的值变异命令注入漏洞检测的测试数据,可以如下:
Figure BDA0003437246030000101
对于异常信息捕获器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、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (12)

1.一种漏洞挖掘的方法,其特征在于,包括:
获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
2.根据权利要求1所述的方法,其特征在于,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息,包括:
通过所述网关获取所述流量信息。
3.根据权利要求2所述的方法,其特征在于,所述网关通过内核接口修改所述终端设备向所述IoT设备发送流量信息的目的地址和端口,所述通过所述网关获取所述流量信息,包括:
基于修改后的目的地址和端口,从所述网关接收所述终端设备发送的所述流量信息;
在所述通过所述网关获取所述流量信息之后,所述方法还包括:
基于修复后的目的地址和端口,通过所述网关向所述IoT设备发送所述流量信息,其中,所述修复后的目的地址和端口分别为所述网关通过内核接口修复所述终端设备向所述IoT设备发送流量信息的目的地址和端口后的结果。
4.根据权利要求1所述的方法,其特征在于,所述基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试,包括:
将所述流量信息作为测试集种子,对所述测试集种子进行变异,生成测试数据;
按照预设策略,基于所述测试数据对所述IoT设备上的客户端程序进行模糊测试。
5.根据权利要求1所述的方法,其特征在于,所述监听所述模糊测试中的异常,确定所述IoT设备的漏洞,包括:
监听所述云端服务器和所述IoT设备之间的连接状态;
根据所述连接状态确定所述IoT设备是否存在内存破坏类漏洞。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
向所述IoT设备的客户端程序发送Ping命令;
所述监听所述模糊测试中的异常,确定所述IoT设备的漏洞,包括:
监听所述IoT设备对所述Ping命令是否有响应;
根据所述响应确定所述IoT设备存在命令注入类漏洞。
7.一种漏洞挖掘的装置,其特征在于,包括:
获取单元,用于获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
测试单元,用于基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
监听单元,用于监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
8.一种漏洞挖掘系统,其特征在于,包括:中间人流量代理模块、模糊测试引擎和异常信息捕获器,其中:
所述中间人流量代理模块,用于获取终端设备上的应用程序通过云端服务器向物联网IoT设备发送的流量信息;
所述模糊测试引擎,用于基于所述流量信息,对所述IoT设备上的客户端程序进行模糊测试;
所述异常信息捕获器,用于监听所述模糊测试中的异常,确定所述IoT设备的漏洞。
9.根据权利要求8所述的系统,其特征在于,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述漏洞挖掘系统集成于所述网关。
10.根据权利要求8所述的系统,其特征在于,所述云端服务器通过网关向所述IoT设备发送所述流量信息,所述漏洞挖掘系统和所述网关通信。
11.一种电子设备,其特征在于,所述电子设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-6任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-6任一项所述的方法。
CN202111620045.5A 2021-12-27 2021-12-27 一种漏洞挖掘的方法和装置 Pending CN114328216A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111620045.5A CN114328216A (zh) 2021-12-27 2021-12-27 一种漏洞挖掘的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111620045.5A CN114328216A (zh) 2021-12-27 2021-12-27 一种漏洞挖掘的方法和装置

Publications (1)

Publication Number Publication Date
CN114328216A true CN114328216A (zh) 2022-04-12

Family

ID=81014738

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111620045.5A Pending CN114328216A (zh) 2021-12-27 2021-12-27 一种漏洞挖掘的方法和装置

Country Status (1)

Country Link
CN (1) CN114328216A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396347A (zh) * 2022-08-15 2022-11-25 中国人民解放军国防科技大学 一种基于中间人的路由协议模糊测试方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115396347A (zh) * 2022-08-15 2022-11-25 中国人民解放军国防科技大学 一种基于中间人的路由协议模糊测试方法及系统
CN115396347B (zh) * 2022-08-15 2024-02-06 中国人民解放军国防科技大学 一种基于中间人的路由协议模糊测试方法及系统

Similar Documents

Publication Publication Date Title
US11082436B1 (en) System and method for offloading packet processing and static analysis operations
US8095983B2 (en) Platform for analyzing the security of communication protocols and channels
US10404742B2 (en) Coordinated detection and differentiation of denial of service attacks
US11381629B2 (en) Passive detection of forged web browsers
US9432389B1 (en) System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US8904532B2 (en) Method, apparatus and system for detecting botnet
Lee et al. A comprehensive security assessment framework for software-defined networks
Jero et al. Beads: Automated attack discovery in openflow-based sdn systems
Tushir et al. The impact of dos attacks onresource-constrained iot devices: A study on the mirai attack
JPWO2005109797A1 (ja) ネットワーク攻撃対策方法、ネットワーク攻撃対策装置及びネットワーク攻撃対策プログラム
CN104113559A (zh) 一种防御tcp全链接攻击的方法
CN111049781A (zh) 一种反弹式网络攻击的检测方法、装置、设备及存储介质
JP4751379B2 (ja) 自動セキュリティ・プラットフォーム
US8972543B1 (en) Managing clients utilizing reverse transactions
CN114328216A (zh) 一种漏洞挖掘的方法和装置
US9053311B2 (en) Secure network system request support via a ping request
US10931713B1 (en) Passive detection of genuine web browsers based on security parameters
CN113162922B (zh) 客户端数据的获取方法及装置、存储介质、电子设备
EP3432544B1 (en) System and method of determining ddos attacks
US10581916B2 (en) System and method for identifying cyber-attacks
KR102082889B1 (ko) 프로토콜 분석 장치 및 방법
Ananda et al. Robustness Evaluation of Cyber Physical Systems through Network Protocol Fuzzing
CN112307479B (zh) 一种反弹shell的管理方法及系统
KR102571147B1 (ko) 스마트워크 환경을 위한 보안 장치 및 그를 수행하도록 컴퓨터 판독 가능한 기록 매체에 저장된 프로그램
Fei Raspberry House: An Intrusion Detection And Prevention System For Internet Of Things (IOT)

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
CB02 Change of applicant information

Country or region after: China

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: QAX Technology Group Inc.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: QAX Technology Group Inc.

Country or region before: China

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.