区块链系统中RPC接口的风险检测方法及装置与流程

文档序号:18135369发布日期:2019-07-10 10:34阅读:407来源:国知局
区块链系统中RPC接口的风险检测方法及装置与流程

本发明涉及区块链技术领域,特别涉及一种区块链系统中rpc接口的风险检测方法及装置。



背景技术:

随着区块链技术的发展,区块链技术在各个领域均得到了广泛应用,例如,在金融领域、信息安全、计算资源共享、娱乐游戏、社交、供应链管理或医疗等领域。然而在区块链系统中有些节点设备的远程过程调用(remoteprocedurecall,rpc)接口可能存在安全风险,这些rpc接口一旦被恶意主体所利用,就会对区块链系统的安全造成损害,影响正常运行。因而,需要检测到这些存在安全风险的rpc接口,从而可以进一步采取措施提高这些rpc接口的安全性。

每个设备均可以设置有一个默认的、用于绑定远程调用接口的rpc端口,在此称之为默认端口。其中,该设备可以为接入区块链网络的设备,也可以为区块链系统外的设备。该设备可以开启该默认端口,从而其他设备可以调用该默认端口所绑定的rpc接口。目前,区块链系统中rpc接口的风险检测方法通常是在全网范围内扫描开启了默认端口的设备,将开启了默认端口的设备作为待测设备,从而对待测设备的默认端口进行检测,确定该待测设备的默认端口所绑定的rpc接口是否存在安全风险。

上述方法中确定的待测设备中可能会混入一些不是区块链系统中的节点设备但开启了默认端口的设备,从而获取到的待测设备的数量很大,包括很多无需检测的设备,因而,上述区块链系统中rpc接口的风险检测方法得到的检测结果的准确性差。



技术实现要素:

本发明实施例提供了一种区块链系统中rpc接口的风险检测方法及装置,可以解决相关技术中检测结果的准确性差的问题。所述技术方案如下:

一方面,提供了一种区块链系统中rpc接口的风险检测方法,所述方法包括:

获取区块链系统中的待测节点设备集合,其中,所述待测节点设备集合包括多个待测节点设备;

与所述待测节点设备集合中的第一节点设备建立通信连接,获取所述第一节点设备的邻居节点列表,所述邻居节点列表包括所述第一节点设备的至少一个邻居节点设备;

从所述第一节点设备的邻居节点列表中,获取至少一个第二节点设备,为所述第一节点设备添加已处理标记,所述已处理标记用于指示节点设备的邻居节点列表已经处理;

当所述待测节点设备集合中不包括所述至少一个第二节点设备时,将所述至少一个第二节点设备作为待测节点设备存储至所述待测节点设备集合;

基于所述待测节点设备集合中不具有所述已处理标记的节点设备,继续执行获取邻居节点列表以及获取邻居节点列表中的节点设备的过程,以扩充所述待测节点设备集合,得到目标待测节点设备集合;

对所述目标待测节点设备集合中每个待测节点设备的rpc端口进行检测,得到所述rpc端口所绑定的存在安全风险的目标rpc接口。

一方面,提供了一种区块链系统中rpc接口的风险检测系统,所述装置包括:

获取模块,用于获取区块链系统中的待测节点设备集合,其中,所述待测节点设备集合包括多个待测节点设备;

所述获取模块,还用于与所述待测节点设备集合中的第一节点设备建立通信连接,获取所述第一节点设备的邻居节点列表,所述邻居节点列表包括所述第一节点设备的至少一个邻居节点设备;

所述获取模块,还用于从所述第一节点设备的邻居节点列表中,获取至少一个第二节点设备,为所述第一节点设备添加已处理标记,所述已处理标记用于指示节点设备的邻居节点列表已经处理;

存储模块,用于当所述待测节点设备集合中不包括所述至少一个第二节点设备时,将所述至少一个第二节点设备作为待测节点设备存储至所述待测节点设备集合;

所述获取模块,还用于基于所述待测节点设备集合中不具有所述已处理标记的节点设备,继续执行获取邻居节点列表以及获取邻居节点列表中的节点设备的过程,以扩充所述待测节点设备集合,得到目标待测节点设备集合;

检测模块,用于对所述目标待测节点设备集合中每个待测节点设备的rpc端口进行检测,得到所述rpc端口所绑定的存在安全风险的目标rpc接口。

一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现所述区块链系统中rpc接口的风险检测方法所执行的操作。

一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述区块链系统中rpc接口的风险检测方法所执行的操作。

本发明实施例中获取待测节点设备集合,对于待测节点设备集合中的节点设备,可以获取该节点设备的邻居节点设备并将其添加到待测节点设备集合中,来扩充该待测节点设备集合,对于新添加进待测节点设备集合中的节点设备,也可以再获取其邻居节点设备继续对待测节点设备集合进行扩充,从而得到全面的目标待测节点设备集合,进而对待测节点设备的rpc端口进行检测,相较于通过全网范围内扫描开启了默认端口的设备来获取待测设备的方式,不会出现混入一些不是区块链系统中的节点设备但开启了默认端口的设备的情况,且不会产生遗漏,获取到的目标待测节点设备集合比较全面,因而,得到的检测结果的准确性好。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例提供的一种区块链系统中rpc接口的风险检测rpc接口的风险检测方法的实施环境;

图2是本发明实施例提供的一种区块链系统中rpc接口的风险检测rpc接口的风险检测方法的流程图;

图3是本发明实施例提供的一种目标待测节点设备集合的获取过程示意图;

图4是本发明实施例提供的一种目标待测节点设备集合的获取过程示意图;

图5是本发明实施例提供的一种区块链系统中rpc接口的风险检测rpc接口的风险检测过程的示意图;

图6是本发明实施例提供的一种区块链系统中rpc接口的风险检测rpc接口的风险检测方法的示意图;

图7是本发明实施例提供的一种区块链系统中rpc接口的风险检测rpc接口的风险检测方法的示意图

图8是本发明实施例提供的一种区块链系统中rpc接口的风险检测rpc接口的风险检测方法的示意图;

图9是本发明实施例提供的一种恶意rpc行为数据的示意图;

图10是本发明实施例提供的一种区块链系统中rpc接口的风险检测rpc接口的风险检测装置的结构示意图;

图11是本发明实施例提供的一种终端的结构示意图;

图12是本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种区块链系统中rpc接口的风险检测方法的实施环境。该实施环境可以包括多个计算机设备,每个计算机设备可以为服务器,也可以为终端。

其中,该多个计算机设备可以为区块链系统中的多个节点设备,区块链系统中的一个或多个节点设备可以执行本发明实施例提供的区块链系统中rpc接口的风险检测方法中的一个或多个步骤。例如,该区块链系统内可以包括联盟内各个机构的服务器,一个或多个服务器可以执行本发明实施例提供的区块链系统中rpc接口的风险检测方法。该多个计算机设备可以为同一个机构的多个节点设备,也可以为不同的机构的节点设备,本发明实施例对此不作限定。

下面针对本发明实施例涉及到的名词进行简单介绍:

rpc端口和rpc接口,rpc端口是指绑定有rpc接口的端口。该rpc端口是一种网络端口,它可以用于提供rpc服务。该rpc接口用于提供rpc服务,在一种可能实现方式中,该rpc端口可以绑定有一种或多种rpc接口,不同的rpc接口可以提供不同的rpc服务。该rpc服务可以包括实时触发节点设备功能或数据查询功能等,例如,可以查询账户信息,比如账户余额或钱包信息等,或可以查询交易信息,或可以对账户进行解锁,或可以导出账户,或可以更改挖矿奖励接收账户等,上述仅为几种rpc服务的示例,本发明实施例对该rpc接口提供的rpc服务不作限定。

rpc接口存在安全风险:待测节点设备的rpc端口所绑定的rpc接口对外错误暴露了关键功能,无法对调用者的身份进行有效鉴权,可能会导致该待测节点设备的数字资产和正常功能受到严重的安全威胁,称之为该rpc接口存在安全风险,具有安全脆弱性。

邻居节点设备:是指在任一节点设备的通信半径内的其他节点设备,也即是,该任一节点设备可以与其邻居节点设备直接通信。

邻居节点列表:是指包括任一节点设备的所有邻居节点设备的列表。

图2是本发明实施例提供的一种区块链系统中rpc接口的风险检测方法的流程图,该方法可以应用于计算机设备,该计算机设备可以为区块链系统中的节点设备,该计算机设备可以为终端,也可以为服务器,本发明实施例对此不作限定。参见图2,该方法可以包括以下步骤:

201、计算机设备获取区块链系统中的待测节点设备集合。

在本发明实施例中,计算机设备可以获取区块链系统中的待测节点设备,从而对待测节点设备的rpc端口进行检测,以确定待测节点设备的rpc端口绑定的rpc接口是否存在安全风险。

计算机设备可以获取待测节点设备集合,该待测节点设备集合包括多个待测节点设备。计算机设备可以通过后续步骤,对其进行扩充,从而确定出更全面的待测节点设备。该待测节点设备集合可以为一个初始集合,该待测节点设备集合中的待测节点设备的数量小、不全面,因而,计算机设备可以对待测节点设备集合进行扩充,以获取到更多的待测节点设备,也即是,获取到包含更多的待测节点设备的目标待测节点设备。

具体地,计算机设备可以根据该获取到的待测节点设备集合中的第一节点设备,获取至少一个第二节点设备,该第一节点设备为该待测节点设备集合中的任一节点设备,该至少一个第二节点设备为该第一节点设备的邻居节点设备中的全部或部分,该至少一个第二节点设备即为通过该第一节点设备对待测节点设备集合进行扩充的节点设备。

具体地,该待测节点设备集合中可以包括区块链系统中的部分节点设备,该待测节点设备集合可以存储于该计算机设备中,也可以存储于其他计算机设备中,该计算机设备可以从本地存储信息中获取该待测节点设备集合,也可以从其他计算机设备处获取该待测节点设备集合,本发明实施例对该待测节点设备集合的具体获取方式不作限定。

例如,在一个具体示例中,在该示例中,计算机设备可以从其他计算机设备处获取该待测节点设备集合。该待测节点设备集合可以为区块链平台官方维护的节点设备列表。计算机设备可以访问该区块链平台的官方网站下载该待测节点设备集合,比如,计算机设备可以向该区块链平台所在服务器发送集合获取请求,接收该服务器发送的待测节点设备集合,以完成待测节点设备集合的获取过程。

在一种可能实现方式中,该待测节点设备集合可以采用列表的形式,例如,该待测节点设备集合可以为一个初始待测节点设备列表。该待测节点设备集合还可以采用其他形式,比如,可以采用图、向量或其他的形式,该图中的各个元素可以代表一个待测节点设备,该向量中每一位值可以代表一个待测节点设备。本发明实施例对该待测节点设备集合的形式不作限定。

202、计算机设备与该待测节点设备集合中的第一节点设备建立通信连接,获取该第一节点设备的邻居节点列表。

计算机设备获取到待测节点设备集合后,可以根据节点设备之间的邻居关系,对该待测节点设备集合进行扩充。该邻居关系可以存储于每个节点设备的邻居节点列表中。也即是,每个节点设备中可以存储有邻居节点列表,该邻居节点列表包括该每个节点设备的至少一个邻居节点设备。具体地,该步骤202中,第一节点设备的邻居节点列表包括该第一节点设备的至少一个邻居节点设备。

该至少一个邻居节点设备中可能存在是区块链系统中的节点设备但并不在待测节点设备集合中的邻居节点设备,这种邻居节点设备即可用于对待测节点设备集合进行扩充。

具体地,对于待测节点设备集合中第一节点设备,计算机设备可以与该第一节点设备建立通信连接。该第一节点设备可以为该待测节点设备中任一待测节点设备。计算机设备通过该通信连接,可以获取该第一节点设备的邻居节点列表。通过上述节点设备之间的邻居关系,计算机设备可以获取到该待测节点设备集合中的每个待测节点设备的邻居节点列表。

在一种可能实现方式中,该邻居节点列表的获取过程可以基于点对点(peertopeer,p2p)网络协议实现。计算机设备可以基于p2p网络协议向已建立通信连接的第一节点设备查询该第一节点设备的邻居节点设备的信息(邻居节点列表)。

203、计算机设备从该第一节点设备的邻居节点列表中,获取至少一个第二节点设备,为该第一节点设备添加已处理标记。

计算机设备在获取到第一节点设备的邻居节点列表后,可以判断该邻居节点列表中的邻居节点设备是否为区块链系统中的节点设备,如果是,则将该邻居节点设备作为第二节点设备,从而再执行下述步骤204,判断该第二节点设备是否需要被存储至待测节点设备集合中。该第二节点设备为该邻居节点列表中位于区块链系统中的节点设备。

在一种可能实现方式中,该邻居节点列表中的邻居节点设备可以包括属性信息,该属性信息可以用于指示该邻居节点设备是否为区块链系统中的节点设备。则该步骤203中计算机获取至少一个第二节点设备的过程可以为:计算机设备可以根据该第一节点设备的邻居节点列表中的邻居节点设备的属性信息,将位于区块链系统中的至少一个邻居节点设备获取为至少一个第二节点设备。

具体地,计算机设备可以读取该第一节点设备的邻居节点列表中的邻居节点设备的属性信息。当任一邻居节点设备的该属性信息表示该任一邻居节点设备位于区块链系统中时,将该任一邻居节点设备获取为第二节点设备。这样如果有一个邻居节点设备的属性信息表示其位于区块链系统中,则该步骤203中可以获取到一个第二节点设备,如果有多个邻居节点设备的属性信息表示其位于区块链系统中,则该步骤203中可以获取到多个第二节点设备。

计算机设备还可以为该第一节点设备添加已处理标记,其中,该已处理标记用于指示节点设备的邻居节点列表已经处理。这样计算机设备在对待测节点设备集合中的第一节点设备进行处理时,可以根据该已处理标记,区分已经针对哪个第一节点设备执行过上述步骤202和步骤203,而针对哪些第一节点设备还未执行过上述步骤202和步骤203。

在一种可能实现方式中,计算机设备还可以在步骤201之后,为待测节点设备集合中的节点设备添加未处理标记,该未处理标记用于指示节点设备的邻居节点列表未被处理过。在该实现方式中,该步骤203中,计算机设备可以将第一节点设备的未处理标记更改为已处理标记,也可以直接为该第一节点设备添加已处理标记,并将该第一节点设备的未处理标记删除。当然,计算机设备也可以在添加已处理标记后不将未处理标记删除。上述均可以由相关技术人员根据需求进行设置,本发明实施例对此不作限定。

204、当该待测节点设备集合中不包括该至少一个第二节点设备时,计算机设备将该至少一个第二节点设备作为待测节点设备存储至该待测节点设备集合。

计算机设备在获取到至少一个第二节点设备后,可以进一步判断该待测节点设备集合中是否已经包括该至少一个第二节点设备,如果否,则计算机设备可以将该至少一个第二节点设备存储至该待测节点设备集合,这样该待测节点设备集合中补充了该至少一个第二节点设备(第一节点设备的邻居节点设备),该待测节点设备集合中包括的节点设备的数量增多,相比于步骤201中获取到的待测节点设备集合包括的节点设备更全面,达到了扩充效果。这样也提高了后续进行端口检测的效率和深度。

上述判断步骤后,如果是,则该至少一个第二节点设备并不能对待测节点设备集合进行扩充,计算机设备可以不执行该步骤204。也即是,当该待测节点设备集合中包括该至少一个第二节点设备时,计算机设备无需将该至少一个第二节点设备存储至待测节点设备集合。在一种可能实现方式中,计算机设备可以将获取到的邻居节点列表丢弃。

在一种可能实现方式中,该步骤204中,对于该至少一个第二节点设备中任一第二节点设备,计算机设备可以判断该待测节点设备集合中是否包括该任一第二节点设备,当该待测节点设备集合中不包括该任一第二节点设备时,计算机设备可以将该任一第二节点设备作为待测节点设备存储至该待测节点设备集合。当该待测节点设备集合中包括该任一第二节点设备时,计算机设备可以不对该任一第二节点设备执行上述存储过程。

在一种可能实现方式中,计算机设备在判断该待测节点设备集合中是否包括该任一第二节点设备时,可以对该至少一个第二节点设备与待测节点设备集合进行匹配,当根据匹配结果确定该待测节点设备集合中不包括该至少一个第二节点设备时,计算机设备可以将该至少一个第二节点设备作为待测节点设备存储至该待测节点设备集合。具体地,计算机设备还可以记录该至少一个第二节点设备的节点信息。

需要说明的是,上述步骤202至步骤204仅说明了计算机设备与第一节点设备成功建立通信连接时的情况,如果步骤202中,计算机设备与第一节点设备建立通信连接失败,则计算机设备可以执行下述步骤205,继续对其他节点设备进行与该步骤202至步骤204同理的步骤,以对待测节点设备集合进行扩充。

205、计算机设备基于该待测节点设备集合中不具有该已处理标记的节点设备,继续执行获取邻居节点列表以及获取邻居节点列表中的节点设备的过程,以扩充该待测节点设备集合,得到目标待测节点设备集合。

上述步骤202至步骤204为对待测节点设备集合中的第一节点设备获取邻居节点列表以及获取邻居节点列表中的第二节点设备的过程,该第一节点设备为该待测节点设备集合中的任一节点设备。

需要说明的是,上述以一个节点设备的角度对获取邻居节点列表以及获取邻居节点列表中的节点设备,以及对待测节点设备集合进行扩充的过程进行了说明,该待测节点设备集合中的其他节点设备均可以进行上述过程,该其他节点设备可以包括步骤201中获取到的待测节点设备集合中原本存在的待测节点设备,也可以包括上述步骤204中后续存储至该待测节点设备集合中的待测节点设备,因而,计算机设备还可以基于该待测节点设备集合中不具有已处理标记的节点设备,继续执行上述步骤202和步骤203,且可以继续执行上述步骤204,以扩充该待测节点设备集合。

在本发明实施例中,将根据节点设备之间的邻居关系对步骤201中获取到的待测节点设备集合进行扩充后的待测节点设备集合称为目标待测节点设备集合。

在一种可能实现方式中,在上述步骤203所示的可能实现方式中,如果计算机设备在步骤201之后,为待测节点设备集合中的节点设备添加了未处理标记,并在步骤203中将第一节点设备的未处理标记更改为已处理标记,或直接为其添加已处理标记,并将该未处理标记删除,则该步骤205中,计算机设备还可以基于该待测节点设备集合中具有该未处理标记的节点设备,继续执行获取邻居节点列表以及获取邻居节点列表中的节点设备的过程,以扩充该待测节点设备集合,得到目标待测节点设备集合。当然,如果计算机设备在添加已处理标记后不将未处理标记删除,则计算机设备可以执行步骤205。本发明实施例对具体采用哪种实现方式不作限定。

上述步骤202至步骤205可以为根据节点设备之间的邻居关系,对待测节点设备集合进行扩充,获取得到目标待测节点设备集合的过程,该过程可以为循环过程,在一种可能实现方式中,如图3所示,在该循环过程可以通过如下步骤一至步骤七实现:

步骤一、对于待测节点设备集合中的第一节点设备,计算机设备可以与该第一节点设备建立通信连接,获取该第一节点设备的邻居节点列表。

步骤二、计算机设备从该第一节点设备的邻居节点列表中,获取至少一个第二节点设备,为该第一节点设备添加已处理标记。

步骤三、当该待测节点设备集合中不包括该至少一个第二节点设备时,计算机设备将该至少一个第二节点设备作为待测节点设备存储至该待测节点设备集合。

步骤四、对于待测节点设备集合中的第二节点设备,计算机设备可以通过与该第二节点设备之间的通信连接,获取该第二节点设备的邻居节点列表。

步骤五、计算机设备从该第二节点设备的邻居节点列表中,获取至少一个第三节点设备,为该第二节点设备添加已处理标记。

步骤六、当该待测节点设备集合中不包括该至少一个第三节点设备时,计算机设备将该至少一个第三节点设备作为待测节点设备存储至该待测节点设备集合。

以此类推,计算机设备也可以继续对第三节点设备、后续得到的第四节点设备、…、第n节点设备进行上述步骤一至步骤三或步骤四至步骤六同理的步骤,其中,n为大于0的正整数。

步骤七、当该待测节点设备集合中的节点设备均具有该已处理标记时,停止循环过程,得到目标待测节点设备集合。

在一种可能实现方式中,上述步骤202至步骤205所示的循环过程中,计算机设备可以按照该待测节点设备集合中的节点设备的排列顺序,依次对每个节点列表执行该获取邻居节点列表以及获取邻居节点列表中的节点设备的过程,在上述步骤203中,该计算机设备将该至少一个第二节点设备存储至待测节点设备集合时,可以将该至少一个第二节点设备排列在已存在该待测节点设备集合中的节点设备之后。

例如,如图4所示,在一个具体示例中,该待测节点设备集合可以为一个待测列表,计算机设备可以获取初始节点列表,将该初始节点列表中的初始节点设备添加至待测列表,计算机设备可以遍历该待测列表,确定该待测列表中是否存在还未获取过邻居节点列表的待测节点设备,如果是,则计算机设备则按照列表顺序,获取下一个待测节点设备,并尝试与该待测节点设备建立p2p通信连接,如果建立成功,则计算机设备通过该通信连接,查询该待测节点设备的邻居节点列表,并对该邻居节点列表和待测列表进行匹配,以确定该邻居节点列表中是否存在不在待测列表中的节点设备,如果有,则将不在待测列表中的节点设备添加至待测列表,还可以记录了该新添加的节点设备的节点信息。记录后或上述建立p2p通信连接失败时,计算机设备继续进行上述遍历和确定是否存在还未获取过邻居节点列表的待测节点设备的过程,直至确定不存在还未获取过邻居节点列表的待测节点设备时,停止循环。

通过上述步骤201至步骤205,由于计算机设备采用根据节点设备之间的邻居关系对待测节点设备集合进行扩充的方式,可以保证得到的目标待测节点设备集合中的待测节点设备均为区块链系统中的节点设备,相较于相关技术中,通过全网范围内扫描开启了默认端口的设备的方式,可以获取到全面、准确性更高的待测节点设备,从而可以执行下述步骤206和步骤207,对这些待测节点设备的rpc端口进行检测,以获取到准确性好的安全风险检测结果。

在一种可能实现方式中,可能存在一些区块链系统,例如,除了以太坊或neo区块链系统之外的其它区块链系统,可能通过某个网站对该区块链系统中的节点设备的节点信息进行了统计,从而该网站维护有该区块链系统中的所有节点设备的节点信息。

例如,在此以瑞波(ripple)区块链系统为例进行说明,该ripple区块链系统发行的基础货币为瑞波币,该ripple区块链系统中的所有节点设备的节点信息均由某个网站进行了统计,例如,该ripple区块链系统的官方平台网站。在一种可能实现方式中,该节点信息可以存储于目标地址,从而上述步骤201至步骤205的目标待测节点设备集合的获取过程还可以为:计算机设备从目标地址,获取该目标地址所存储的目标待测节点设备集合。该目标待测节点设备集合包括为该目标地址维护的区块链系统中的节点设备。

在一个具体的可能实施例中,该步骤201至步骤205可以由部署于该计算机设备上的全网节点探测模块执行。

206、计算机设备获取目标待测节点设备集合中每个待测节点设备的rpc端口。其中,该rpc端口是指绑定有rpc接口的端口。

计算机设备获取到目标待测节点设备集合后,可以获取该目标待测节点设备集合中的每个待测节点设备的rpc端口,从而在后续对该rpc端口进行检测,来确定该rpc端口绑定的rpc接口是否存在安全风险。

不同的待测节点设备开启的rpc端口可能不同。计算机设备可以先获取每个待测节点设备的rpc端口。具体地,该计算机设备可以通过下述方式一和方式二中任一种方式来获取每个待测节点设备的rpc端口:

在方式一中,计算机设备可以根据每个待测节点设备的目标标识信息对应的端口的状态,确定后续的端口获取过程。具体地,该方式一可以包括以下步骤一至步骤三:

步骤一、计算机设备获取该每个待测节点设备的目标标识信息对应的端口。

该目标标识信息对应的端口为每个节点设备上预设的、用于绑定rpc接口的rpc端口,也即是,背景技术所示的默认端口。例如,对于以太坊区块链系统中的节点设备,该默认端口可以为传输控制协议(transmissioncontrolprotocol,tcp)8545端口。节点设备如果开启目标标识信息对应的端口,则其他设备可以向该节点设备的该目标标识信息对应的端口发送rpc请求,以获取rpc服务。但有些节点设备并未开启该目标标识信息对应的端口,而可能设置了其他端口作为rpc端口,计算机设备可以先获取该目标标识信息对应的端口,判断该目标标识信息对应的端口的状态,根据该目标标识信息对应的端口的状态,确定rpc端口。

步骤二、当该目标标识信息对应的端口处于开启状态时,计算机设备将该目标标识信息对应的端口获取为该rpc端口。

该目标标识信息对应的端口的状态可以包括开启状态和关闭状态,当该端口处于开启状态时,则说明该端口开启了rpc功能,因而,该待测节点设备开启的rpc端口即为该端口。

步骤三、当该目标标识信息对应的端口处于关闭状态时,计算机设备扫描该每个待测节点设备的所有端口,得到该每个待测节点设备的至少一个网络端口;当任一个网络端口绑定有rpc接口时,将该任一个网络端口获取为该rpc端口。

对该目标标识信息对应的端口的状态进行判断后,如果该端口处于关闭状态,则说明该待测节点设备并未使用该端口作为rpc端口,则计算机设备还需要进一步确定该待测节点设备绑定rpc接口的端口为哪个端口,因而,计算机设备可以进行全端口扫描,扫描该待测节点设备的端口中哪些端口接入到了网络,也即是至少一个网络端口,再确定至少一个网络端口中哪个网络端口绑定的功能为rpc功能,也即是,确定至少一个网络端口中哪个网络端口绑定有rpc接口,从而将该绑定有rpc接口的端口获取为rpc端口。

在方式二中,计算机设备可以直接对每个待测节点设备进行全端口扫描,以确定绑定有rpc接口的端口为哪个端口。该方式二可以通过下述步骤一和步骤二实现:

步骤一、计算机设备扫描该每个待测节点设备的所有端口,得到该每个待测节点设备的至少一个网络端口。

步骤二、当任一个网络端口绑定有rpc接口时,计算机设备将该任一个网络端口获取为该rpc端口。

该方式二中的步骤一和步骤二与上述方式一中的步骤三同理,本发明实施例在此不多做赘述。

207、计算机设备对该目标待测节点设备集合中每个待测节点设备的rpc端口进行检测,得到该rpc端口所绑定的存在安全风险的目标rpc接口。

计算机设备在获取到每个待测节点设备的rpc端口后,可以对其进行检测,以确定该rpc端口绑定的rpc接口是否存在安全风险,如果确定该rpc端口绑定的某个rpc接口存在安全风险时,可以将该rpc接口确定为目标rpc接口。

具体地,对该rpc端口的检测过程可以通过下述步骤一至步骤四实现:

步骤一、计算机设备与该每个待测节点设备建立通信连接,该通信连接的一端为该每个待测节点设备的rpc端口。

步骤二、计算机设备通过该通信连接,向该每个待测节点设备发送至少一个第一rpc请求。

该至少一个第一rpc请求可以预先设置于该计算机设备中,也可以由该计算机设备在需要对rpc端口进行检测时生成,本发明实施例对此不作限定。

步骤三、计算机设备接收该每个待测节点设备基于至少一个该第一rpc请求发送的至少一个第一网络数据。

对于任一第一rpc请求,该每个待测节点设备可以基于该每个待测节点设备的rpc端口,接收到该计算机设备发送的第一rpc请求后,可以基于该第一rpc请求,获取对应的第一网络数据,在获取到第一网络数据后,可以基于该每个待测节点设备的rpc端口将该第一网络数据发送至该计算机设备。

具体地,该每个待测节点设备接收到第一rpc请求后,可以提取第一rpc请求携带的调用接口,从而基于该调用接口,获取该第一网络数据。当然,该每个待测节点设备还可以从该第一rpc请求中提取调用参数或其他信息,也即是,可以对第一rpc请求进行解析,得到该调用接口、调用参数或其他信息,本发明实施例对该第一rpc请求携带的内容不作具体限定。

步骤四、当任一第一网络数据为该第一rpc请求所对应的正常网络数据时,计算机设备将该任一第一网络数据对应的接口获取为目标rpc接口。

该rpc端口可以绑定有一个或多个rpc接口,每个rpc接口用于提供不同的rpc服务,当该第一rpc请求中携带的rpc接口不同时,基于该第一rpc请求获取到的第一网络数据则不同。在一种可能实现方式中,上述提取过程可以提取到该rpc接口的标识信息,该标识信息不同时,第一网络数据则不同。例如,该rpc接口的标识信息可以采用接口号的形式,当然,该标识信息也可以采用其他方式,比如,接口类型,本发明实施例对此不作限定。

计算机设备接收到该第一网络数据后,可以判断该第一网络数据是否为该第一rpc请求所对应的正常网络数据,如果是,则说明该每个待测节点设备的rpc端口所绑定的rpc接口对外错误暴露了关键功能,无法对调用者的身份进行有效鉴权,可能会导致该每个待测节点设备的数字资产和正常功能受到严重的安全威胁,在此可以称之为该rpc接口存在安全风险,具有安全脆弱性。

在一种可能实现方式中,该步骤207中,计算机设备还可以记录该目标rpc接口的第一相关信息,该第一相关信息包括该任一第一rpc请求的内容、该任一第一网络数据和该目标rpc接口所在节点设备的节点信息中至少一项。该第一相关信息用于为目标rpc接口的检测结果或恶意rpc行为提供分析数据。

其中,该第一rpc请求的内容可以包括该目标rpc接口,或者该第一rpc请求的内容还可以包括调用参数。根据该目标rpc接口的功能,该第一网络数据可能有多种情况,例如,可能是节点账户信息,可能是交易信息,也可能是某项操作的操作结果。该目标rpc接口所在节点设备的节点信息可以为节点设备的标识信息或该节点设备的配置信息,例如,该节点设备的网络协议(internetprotocol,ip)地址。需要说明的是,上述仅为几种示例性说明,该第一相关信息可以由相关技术人员根据需求设置,本发明实施例对该第一相关信息不作限定。

例如,在一个具体的示例中,该第一相关信息可以包括:节点开放的rpc模块(rpc_modules)、节点的版本信息(web3_clientversion)、节点维护的数字账户列表(parity_allaccountsinfo/personal_listaccounts/eth_accounts)、节点所处区块链网络的网络版本(net_version)、节点的挖矿状态及其算力(eth_mining/eth_hashrate)和节点的挖矿状态及其算力(eth_mining/eth_hashrate)。

在一种可能实现方式中,计算机设备获取每个待测节点设备的rpc端口时,可以获取该每个待测节点设备的ip地址,根据每个待测节点设备的ip地址,获取每个待测节点设备的rpc端口。例如,如图5所示,计算机设备可以基于获取到的全网节点探测结果,也即是目标待测节点设备集合,在此以该目标待测节点设备集合中包括多个待测节点设备的ip地址为例,基于该目标待测节点设备集合可以获取到待测节点ip地址池,对于该待测节点ip地址池中的每个待测ip地址,计算机设备可以顺序对该待测ip地址的端口进行检测,计算机设备可以判断该待测节点ip地址池中是否存在还未检测过的待测ip地址,如果是,计算机设备可以按照待测节点ip地址池中待测ip地址的顺序,获取下一个待测ip地址,对于获取到的待测ip地址,计算机设备可以先判断目标标识信息对应的端口(也即是默认端口)是否开启,如果是,说明该目标标识信息对应的端口开启了rpc功能,则对其进行上述步骤一至步骤四所示的检测过程,如果其暴露了rpc功能,也即是,得到的第一网络数据为正常的网络数据,则可以将待测ip地址的测试的rpc接口作为目标rpc接口进行记录,还可以记录该目标rpc接口的相关信息。如果其未开启,则可以扫描该待测ip地址的所有端口,得到所有网络端口,例如,在以太坊区块链系统中可以扫描得到所有的tcp网络端口,可以判断是否还有没有判断过的网络端口,如果是,则可以按照顺序,对下一个网络端口进行上述步骤一至步骤四的检测过程。同理地,可以对目标rpc接口的相关信息进行记录,直至对所有网络端口判断完毕。另外,对于整个待测节点ip地址池,可以在不存在还未检测过的待测ip地址后,完成所有的端口检测过程。

在一种可能实现方式中,该步骤206和步骤207可以由部署于计算机设备中的脆弱节点嗅探模块执行。上述步骤201至步骤205可以由部署于计算机设备中的全网节点探测模块执行。需要说明的是,上述步骤201至步骤205所示的目标待测节点设备集合的获取过程和步骤206和步骤207所示的rpc端口的检测过程可以由同一计算机设备执行,也可以由不同的计算机设备执行。例如,脆弱节点嗅探模块和全网节点探测模块可以部署于区块链系统中的同一节点设备上,也可以部署于不同节点设备上。具体可以由相关技术人员根据需求以及设备的负载情况等进行设置,本发明实施例对采用哪种实现方式不作限定。例如,上述步骤201至步骤207可以由区块链系统中的同一个节点设备执行。又例如,上述步骤201至步骤205可以由区块链系统中的第一节点设备执行,该步骤206和步骤207可以由区块链系统中的第二节点设备执行。该第一节点设备可以将获取到的目标待测节点设备集合发送至第二节点设备,由该第二节点设备执行rpc端口的检测过程。

在一个具体的可能实施例中,该计算机设备还可以具有截获其他设备发送的rpc请求,从而对其相关数据进行分析的功能。该功能主要用于布置用一些设备信息、网络服务等作为诱饵,诱使攻击者对其开展攻击,从而对攻击行为进行捕获、分析,推测攻击目标,了解攻击者所使用的攻击方法。在一种可能实现方式中,该功能可以由部署于该计算机设备上的蜜罐模块执行。

具体地,当接收到任一设备发送的第二rpc请求时,计算机设备可以提取该第二rpc请求中携带的rpc接口;当该rpc接口为目标接口时,计算机设备可以根据该目标接口的接口类型,获取该接口类型对应的第一伪造数据,该第一伪造数据用于表示不是该rpc接口返回的真实数据;计算机设备可以向该任一设备发送该第一伪造数据;计算机设备可以记录该第二rpc请求的第二相关信息,该第二相关信息包括该任一设备的设备信息、该第二rpc请求的内容以及该第一伪造数据中至少一项。

其中,该目标接口可以为存在安全风险的rpc接口,在该计算机设备中可以预先设置有多个目标接口的接口信息,该接口信息中可以包括该目标接口的标识信息、接口类型以及对应的伪造数据格式。计算机设备可以对自身的rpc端口进行监听,以截获第二rpc请求,按照该第二rpc请求携带的目标接口的接口类型,确定其对应的伪造数据格式,从而按照伪造数据格式,生成第一伪造数据,向该任一设备发送第一伪造数据,以诱使该任一设备继续向该计算机设备发送第二远程调用请求,从而可以获取到更多恶意rpc行为的分析数据。该第二相关信息用于对恶意rpc行为提供分析数据。

该任一设备的设备信息可以包括该任一设备的标识信息,例如,任一设备的ip地址等,也可以包括该任一设备的配置信息或其他信息。该第二rpc请求的内容与上述第一rpc请求的内容同理,本发明实施例在此不多做赘述。

例如,在一个具体示例中,该目标接口的接口信息可以如表1所示,在表1中提供了目标接口的接口名、描述信息以及伪造数据格式:

表1

在一种可能实现方式中,记录调用目标接口的第二rpc请求的第二相关信息的步骤和该目标待测节点设备集合的获取步骤由区块链系统中的同一个节点设备执行。例如,在一个具体示例中,上述蜜罐模块和全网节点探测模块可以部署于区块链系统中的同一节点设备上。这样通过该节点设备基于全网节点探测模块与其他节点设备建立通信连接的方式,可以使得该计算机设备的蜜罐模块更容易被发现,也即是,使得其他节点设备更容易向该计算机设备发送第二rpc请求,以增加分析数据,从而可以得到更全面、更准确的分析结果。当然,该两个步骤也可以由不同节点设备执行,本发明实施例对此不作限定。

在一个具体的可能实施例中,该第二相关信息还可以作为该步骤207中检测目标rpc接口的数据依据,也即是,计算机设备可以根据该第二rpc请求的第二相关信息,对该目标待测节点设备集合中每个待测节点设备的rpc端口进行检测,得到该rpc端口所绑定的存在安全风险的目标rpc接口。

在一个具体的可能实施例中,当该rpc接口不为目标接口时,计算机设备可以执行下述情况一和情况二中任一种情况中的步骤:

情况一、当该rpc接口不为目标接口时,计算机设备向与该待测节点设备建立有通信连接的节点设备发送该第二rpc请求;计算机设备接收该与该待测节点设备建立有通信连接的节点设备发送的第二网络数据;计算机设备向该任一设备转发该第二网络数据。

在该情况一中,如果判断第二rpc请求携带的rpc接口为正常的接口,则计算机设备可以向正常的节点设备发送第二rpc请求,从而获取正常的第二网络数据发送至该任一设备。

情况二、当该rpc接口不为目标接口时,计算机设备根据该rpc接口的接口类型,获取该接口类型对应的第二伪造数据,该第二伪造数据用于表示不是该目标接口返回的真实数据;计算机设备向该任一设备发送该第二伪造数据。

在该情况二中,如果判断第二rpc请求携带的rpc接口为正常的接口,计算机设备也可以不向正常的节点设备发送第二rpc请求,从而获取正常的第二网络数据,而是直接伪造数据,将伪造数据发送至该任一设备。

上述两种情况为当该rpc接口不为目标接口时,计算机设备可以执行的步骤说明,本发明实施例对具体采用哪种情况所示的步骤不作限定。

在一个具体的可能实施例中,对于待测端口正常的情况,计算机设备也可以记录该第二rpc请求的第三相关信息,该第三相关信息包括该第二网络数据或该第二伪造数据,以及该任一设备的设备信息和该第二rpc请求的内容中至少一项。后续可以根据多个第二rpc请求的该第三相关信息,对目标接口和目标接口的接口类型进行更新。当第三相关信息的数量较多时,则可能会发现其中有些确定为正常的接口可能也存在被攻击行为,从而可以对目标接口和目标接口的接口类型进行更新,从而也可以使得上述目标端口的识别过程更准确。

如图6、图7和图8所示,在一个具体示例中,以该区块链系统中rpc接口的风险检测方法由区块链系统中rpc接口的风险检测系统实现,在一个具体示例中,该区块链系统中rpc接口的风险检测系统可以包括全网节点探测模块和脆弱节点嗅探模块。该全网节点探测模块可以对全网的节点设备进行探测,以获取到待测节点设备,以供脆弱节点嗅探模块对该待测节点设备的rpc端口进行检测,以确定该rpc端口是否绑定有存在安全风险的rcp接口。

区块链系统中可以包括有多个节点设备,有些节点设备中的rpc接口存在安全风险,在此称之为脆弱节点,有些节点设备中可以向其他节点设备发送恶意rpc请求,以攻击其他节点设备,在此称之为攻击节点,还有一些节点设备中的rpc接口不存在安全风险,在此称之为普通节点。

在一种可能实现方式中,该全网节点探测模块和该脆弱节点嗅探模块可以部署于区块链系统中的一个节点设备上。在另一种可能实现方式中,也可以部署于区块链系统中的不同节点设备上。本发明实施例对此不作限定。

在另一个具体示例中,该区块链系统中rpc接口的风险检测系统除了上述全网节点探测模块和脆弱节点嗅探模块之外,还可以包括蜜罐模块,该蜜罐模块可以诱使攻击者对其开展攻击,从而对攻击行为进行捕获、分析,推测攻击目标,了解攻击者所使用的攻击方法。

具体地,上述三个模块可以部署于同一个节点设备上,也可以分别部署于不同的节点设备上,当然,三个模块中的任两个模块也可以部署于同一节点设备,另一个模块部署于其他节点设备上。例如,在一个具体示例中,该蜜罐模块和该全网节点探测模块可以部署于同一个节点设备上,而脆弱节点嗅探模块可以部署于另一个节点设备上。本发明实施例对该三个模块的具体部署情况不作限定。

区块链系统中的某个节点设备中部署有蜜罐模块和全网节点探测模块,蜜罐模块可以实现上述步骤207中所示的记录第二相关信息的过程,在此可以称该第二相关信息为恶意rpc请求日志,全网节点探测模块可以实现上述步骤201至步骤205所示的目标待测节点设备集合的获取过程,在此可以称目标待测节点设备集合为全网节点ip列表。该节点设备或者该区块链系统中的另一个节点设备可以部署有脆弱节点探测模块。该脆弱节点探测模块可以基于蜜罐模块和全网节点探测模块的数据,实现步骤206和步骤207的过程,得到存在安全风险的目标rpc接口,当然,也可以记录该目标rpc接口的第一相关信息,在此仅以该第一相关信息包括安全脆弱节点网络地址列表和安全脆弱节点面临威胁列表为例进行说明,安全脆弱节点网络地址列表也即是该目标rpc接口所在节点设备的节点信息,安全脆弱节点面临威胁列表也即是,第一rpc请求的内容。

需要说明的是,上述蜜罐模块可以通过伪装为防御者检测攻击者的恶意rpc请求,脆弱节点嗅探模块可以通过伪装为攻击者,发现其他节点设备的rpc端口所绑定的rpc接口是否存在安全风险,脆弱节点嗅探模块可以对另外两个模块采集到的测试数据进行分析,得到测试结果,生成测试报告。这样可以通过攻击者和防御者两个角度来对区块链系统中的节点设备进行检测,得到的检测结果更准确,内容更丰富、全面。

在该示例中,rpc接口的风险检测过程可以为测试过程,在该过程中可以部署全网节点探测模块,将该部署有全网节点探测模块的节点设备在作为区块链系统中的节点设备加入区块链主网络,部署蜜罐模块,该蜜罐模块用于监听自身的rpc端口,以截获第二rpc请求。然后等待测试进行,在某个时刻可以开始测试,全网节点探测模块可以在全网范围内探测,蜜罐模块可以基于截获的恶意rpc请求,生成日志,在测试过程中,可以判断当前是否满足终止条件,例如,该终止条件可以为达到目标测试时长,也可以为获取到目标大小的测试数据,当然,也可以为其他条件,该终止条件可以由相关技术人员根据需求进行设置,本发明实施例对此不作限定。在满足终止条件时,全网节点探测模块得到目标待测节点设备集合,蜜罐模块得到第二相关信息,然后可以对二者进行初步分析,然后可以部署脆弱节点嗅探模块,基于第二相关信息对目标待测节点设备集合进行检测,得到第一相关信息,生成测试报告。

例如,通过测试可以发现,全网节点探测模块对以太坊区块链系统进行探测,可以发现8万余节点设备。可以捕获和研究攻击行为,利用蜜罐模块捕获千万次rpc攻击,独立发现窃取数字货币、账户暴力破解、盗窃挖矿奖励等多种攻击手段。可以发现有1800余的脆弱节点(目标rpc接口所在节点设备),并进一步分析发现54000余以太坊账户面临远程盗币风险和暴力破解风险,50余节点设备面临丢失挖矿奖励风险。

又例如,通过测试可以发现,全网节点探测模块对neo区块链系统进行探测,可以发现neo区块链主网中的500余节点设备,发现其中有13.6%的节点设备上的rpc接口存在安全风险。蜜罐模块成功捕获了远程盗币行为,如图9所示,该图9仅为一种获取到的远程盗币行为的数据示例,该图9中的具体内容对本发明实施例不造成任何影响和限定。可以通过针对此类攻击行为的分析,总结出针对neo区块链系统中的节点设备的典型攻击手段。例如,可以利用列表地址(listaddress)命令获取钱包地址,可以调用获取账户情况(getaccountstate)获取钱包的资产(asset)信息,可以利用asset信息获取账户余额,确认有攻击价值,可以调用盗取私钥(dumpprivakey)盗取账户私钥,当攻击者成功盗取用户的私钥之后,就可以攻击者名义签署交易,盗取货币等。

综合上述测试效果,本发明实施例可以对区块链系统中节点设备的rpc接口的安全问题开展全面、深入的分析和测试,从攻击、防御多角度分析攻击手段及受害者分布。上述过程可以以较低的测试成本,获取到全面、准确性好的测试结果。

本发明实施例中获取待测节点设备集合,对于待测节点设备集合中的节点设备,可以获取该节点设备的邻居节点设备并将其添加到待测节点设备集合中,来扩充该待测节点设备集合,对于新添加进待测节点设备集合中的节点设备,也可以再获取其邻居节点设备继续对待测节点设备集合进行扩充,从而得到全面的目标待测节点设备集合,进而对待测节点设备的rpc端口进行检测,相较于通过全网范围内扫描开启了默认端口的设备来获取待测设备的方式,不会出现混入一些不是区块链系统中的节点设备但开启了默认端口的设备的情况,且不会产生遗漏,获取到的目标待测节点设备集合比较全面,因而,得到的检测结果的准确性好。

进一步地,本发明实施例中根据节点设备之间的邻居关系,确定待测节点设备,而不是通过全网范围内扫描开启了默认端口的设备来获取待测设备的方式,对于更改了rpc端口的端口号的节点设备也可以获取到,因而,可以得到更全面的待测节点设备,得到的检测结果的准确性好。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

图10是本发明实施例提供的一种区块链系统中rpc接口的风险检测装置的结构示意图,参见图10,该装置包括:

获取模块1001,用于获取区块链系统中的待测节点设备集合,其中,该待测节点设备集合包括多个待测节点设备;

该获取模块1001,还用于与该待测节点设备集合中的第一节点设备建立通信连接,获取该第一节点设备的邻居节点列表,该邻居节点列表包括该第一节点设备的至少一个邻居节点设备;

该获取模块1001,还用于从该第一节点设备的邻居节点列表中,获取至少一个第二节点设备,为该第一节点设备添加已处理标记,该已处理标记用于指示节点设备的邻居节点列表已经处理;

存储模块1002,用于当该待测节点设备集合中不包括该至少一个第二节点设备时,将该至少一个第二节点设备作为待测节点设备存储至该待测节点设备集合;

该获取模块1001,还用于基于该待测节点设备集合中不具有该已处理标记的节点设备,继续执行获取邻居节点列表以及获取邻居节点列表中的节点设备的过程,以扩充该待测节点设备集合,得到目标待测节点设备集合;

检测模块1003,用于对该目标待测节点设备集合中每个待测节点设备的rpc端口进行检测,得到该rpc端口所绑定的存在安全风险的目标rpc接口。

在一种可能实现方式中,该获取模块1001用于:

读取该第一节点设备的邻居节点列表中的邻居节点设备的属性信息;

当任一邻居节点设备的该属性信息表示该任一邻居节点设备位于区块链系统中时,将该任一邻居节点设备获取为第二节点设备。

在一种可能实现方式中,该检测模块1003用于:

与该每个待测节点设备建立通信连接,该通信连接的一端为该每个待测节点设备的rpc端口;

通过该通信连接,向该每个待测节点设备发送至少一个第一rpc请求;

接收该每个待测节点设备基于该至少一个第一rpc请求发送的至少一个第一网络数据;

当任一第一网络数据为任一第一rpc请求所对应的正常网络数据时,将该任一第一网络数据对应的接口获取为目标rpc接口。

在一种可能实现方式中,该装置还包括:

第一记录模块,用于记录该目标rpc接口的第一相关信息,该第一相关信息包括该任一第一rpc请求的内容、该任一第一网络数据和该目标rpc接口所在节点设备的节点信息中至少一项。

在一种可能实现方式中,该获取模块1001用于:

获取该每个待测节点设备的目标标识信息对应的端口;

当该目标标识信息对应的端口处于开启状态时,将该目标标识信息对应的端口作为该rpc端口;

当该目标标识信息对应的端口处于关闭状态时,扫描该每个待测节点设备的所有端口,得到该每个待测节点设备的至少一个网络端口;当任一个网络端口绑定有rpc接口时,将该任一个网络端口获取为该rpc端口。

在一种可能实现方式中,该获取模块1001用于:

扫描该每个待测节点设备的所有端口,得到该每个待测节点设备的至少一个网络端口;

当任一个网络端口绑定有rpc接口时,将该任一个网络端口获取为该rpc端口。

在一种可能实现方式中,该装置还包括:

提取模块,用于当接收到任一设备发送的第二rpc请求时,提取该第二rpc请求中携带的rpc接口;

该获取模块1001,还用于当该rpc接口为目标接口时,根据该目标接口的接口类型,获取该接口类型对应的第一伪造数据,该第一伪造数据用于表示不是该目标接口返回的真实数据;

发送模块,用于向该任一设备发送该第一伪造数据;

第二记录模块,用于记录该第二rpc请求的第二相关信息,该第二相关信息包括该任一设备的设备信息、该第二rpc请求的内容以及该第一伪造数据中至少一项。

在一种可能实现方式中,记录调用目标接口的第二rpc请求的第二相关信息的步骤和该目标待测节点设备集合的获取步骤由区块链系统中的同一个节点设备执行。

在一种可能实现方式中,该检测模块1003用于根据该第二rpc请求的第二相关信息,对该目标待测节点设备集合中每个待测节点设备的rpc端口进行检测,得到该rpc端口所绑定的存在安全风险的目标rpc接口。

在一种可能实现方式中,该装置还包括处理模块,该处理模块用于执行下述任一项:

当该rpc接口不为目标接口时,向该与该待测节点设备建立有通信连接的节点设备发送该第二rpc请求;接收该与该待测节点设备建立有通信连接的节点设备发送的第二网络数据;向该任一设备转发该第二网络数据;

当该rpc接口不为目标接口时,根据该rpc接口的接口类型,获取该接口类型对应的第二伪造数据,该第二伪造数据用于表示不是该rpc接口返回的真实数据;向该任一设备发送该第二伪造数据。

在一种可能实现方式中,该装置还包括:

第三记录模块,用于记录该第二rpc请求的第三相关信息,该第三相关信息包括该第二网络数据或该第二伪造数据,以及该任一设备的设备信息和该第二rpc请求的内容中至少一项;

更新模块,用于根据多个第二rpc请求的该第三相关信息,对目标接口和目标接口的接口类型进行更新。

在一种可能实现方式中,该获取模块1001还用于从目标地址,获取该目标地址所存储的目标待测节点设备集合。

本发明实施例提供的装置,获取待测节点设备集合,对于待测节点设备集合中的节点设备,可以获取该节点设备的邻居节点设备并将其添加到待测节点设备集合中,来扩充该待测节点设备集合,对于新添加进待测节点设备集合中的节点设备,也可以再获取其邻居节点设备继续对待测节点设备集合进行扩充,从而得到全面的目标待测节点设备集合,进而对待测节点设备的rpc端口进行检测,相较于通过全网范围内扫描开启了默认端口的设备来获取待测设备的方式,不会出现混入一些不是区块链系统中的节点设备但开启了默认端口的设备的情况,且不会产生遗漏,获取到的目标待测节点设备集合比较全面,因而,得到的检测结果的准确性好。

需要说明的是:上述实施例提供的区块链系统中rpc接口的风险检测装置在对区块链系统中rpc接口进行风险检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的区块链系统中rpc接口的风险检测装置与区块链系统中rpc接口的风险检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图11是本发明实施例提供的一种终端的结构示意图。该终端1100可以是:智能手机、平板电脑、mp3播放器(movingpictureexpertsgroupaudiolayeriii,动态影像专家压缩标准音频层面3)、mp4(movingpictureexpertsgroupaudiolayeriv,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端1100还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其它名称。

通常,终端1100包括有:处理器1101和存储器1102。

处理器1101可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1101可以采用dsp(digitalsignalprocessing,数字信号处理)、fpga(field-programmablegatearray,现场可编程门阵列)、pla(programmablelogicarray,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1101也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(centralprocessingunit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1101可以在集成有gpu(graphicsprocessingunit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1101还可以包括ai(artificialintelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。

存储器1102可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1102还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1102中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1101所执行以实现本发明中方法实施例提供的区块链系统中rpc接口的风险检测方法。

在一些实施例中,终端1100还可选包括有:外围设备接口1103和至少一个外围设备。处理器1101、存储器1102和外围设备接口1103之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1103相连。具体地,外围设备包括:射频电路1104、触摸显示屏1105、摄像头1106、音频电路1107、定位组件1108和电源1109中的至少一种。

外围设备接口1103可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器1101和存储器1102。在一些实施例中,处理器1101、存储器1102和外围设备接口1103被集成在同一芯片或电路板上;在一些其它实施例中,处理器1101、存储器1102和外围设备接口1103中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1104用于接收和发射rf(radiofrequency,射频)信号,也称电磁信号。射频电路1104通过电磁信号与通信网络以及其它通信设备进行通信。射频电路1104将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1104包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1104可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wirelessfidelity,无线保真)网络。在一些实施例中,射频电路1104还可以包括nfc(nearfieldcommunication,近距离无线通信)有关的电路,本发明对此不加以限定。

显示屏1105用于显示ui(userinterface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1105是触摸显示屏时,显示屏1105还具有采集在显示屏1105的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1101进行处理。此时,显示屏1105还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1105可以为一个,设置终端1100的前面板;在另一些实施例中,显示屏1105可以为至少两个,分别设置在终端1100的不同表面或呈折叠设计;在再一些实施例中,显示屏1105可以是柔性显示屏,设置在终端1100的弯曲表面上或折叠面上。甚至,显示屏1105还可以设置成非矩形的不规则图形,也即异形屏。显示屏1105可以采用lcd(liquidcrystaldisplay,液晶显示屏)、oled(organiclight-emittingdiode,有机发光二极管)等材质制备。

摄像头组件1106用于采集图像或视频。可选地,摄像头组件1106包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtualreality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1106还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1107可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1101进行处理,或者输入至射频电路1104以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1101或射频电路1104的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1107还可以包括耳机插孔。

定位组件1108用于定位终端1100的当前地理位置,以实现导航或lbs(locationbasedservice,基于位置的服务)。定位组件1108可以是基于美国的gps(globalpositioningsystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源1109用于为终端1100中的各个组件进行供电。电源1109可以是交流电、直流电、一次性电池或可充电电池。当电源1109包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端1100还包括有一个或多个传感器1110。该一个或多个传感器1110包括但不限于:加速度传感器1111、陀螺仪传感器1112、压力传感器1113、指纹传感器1114、光学传感器1115以及接近传感器1116。

加速度传感器1111可以检测以终端1100建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1111可以用于检测重力加速度在三个坐标轴上的分量。处理器1101可以根据加速度传感器1111采集的重力加速度信号,控制触摸显示屏1105以横向视图或纵向视图进行用户界面的显示。加速度传感器1111还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1112可以检测终端1100的机体方向及转动角度,陀螺仪传感器1112可以与加速度传感器1111协同采集用户对终端1100的3d动作。处理器1101根据陀螺仪传感器1112采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1113可以设置在终端1100的侧边框和/或触摸显示屏1105的下层。当压力传感器1113设置在终端1100的侧边框时,可以检测用户对终端1100的握持信号,由处理器1101根据压力传感器1113采集的握持信号进行左右手识别或快捷操作。当压力传感器1113设置在触摸显示屏1105的下层时,由处理器1101根据用户对触摸显示屏1105的压力操作,实现对ui界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1114用于采集用户的指纹,由处理器1101根据指纹传感器1114采集到的指纹识别用户的身份,或者,由指纹传感器1114根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1101授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1114可以被设置终端1100的正面、背面或侧面。当终端1100上设置有物理按键或厂商logo时,指纹传感器1114可以与物理按键或厂商logo集成在一起。

光学传感器1115用于采集环境光强度。在一个实施例中,处理器1101可以根据光学传感器1115采集的环境光强度,控制触摸显示屏1105的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏1105的显示亮度;当环境光强度较低时,调低触摸显示屏1105的显示亮度。在另一个实施例中,处理器1101还可以根据光学传感器1115采集的环境光强度,动态调整摄像头组件1106的拍摄参数。

接近传感器1116,也称距离传感器,通常设置在终端1100的前面板。接近传感器1116用于采集用户与终端1100的正面之间的距离。在一个实施例中,当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变小时,由处理器1101控制触摸显示屏1105从亮屏状态切换为息屏状态;当接近传感器1116检测到用户与终端1100的正面之间的距离逐渐变大时,由处理器1101控制触摸显示屏1105从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图11中示出的结构并不构成对终端1100的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

图12是本发明实施例提供的一种服务器的结构示意图,该服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)1201和一个或一个以上的存储器1202,其中,该存储器1202中存储有至少一条指令,该至少一条指令由该处理器1201加载并执行以实现上述各个方法实施例提供的区块链系统中rpc接口的风险检测方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其它用于实现设备功能的部件,在此不做赘述。

在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器执行以完成上述实施例中的区块链系统中rpc接口的风险检测方法。例如,该计算机可读存储介质可以是只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、只读光盘(compactdiscread-onlymemory,cd-rom)、磁带、软盘和光数据存储设备等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

上述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1