一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种以太坊智能合约漏洞实时检测方法、终端及存储介质

2022-10-13 07:29:23 来源:中国专利 TAG:


1.本发明涉及区块链技术领域,尤其涉及的是一种以太坊智能合约漏洞实时检测方法、终端及存储介质。


背景技术:

2.自从2008年中本聪提出一种新型的点对点(p2p)加密货币系统以来,其底层区块链技术在近几年备受关注。并随着区块链驱动、图灵完备的应用平台的出现,智能合约技术为区块链广泛应用于去中心化金融市场中提供了基础。然而,作为一种新兴技术,智能合约在其可编程语言和执行系统方面存在一些缺陷。首先,开发人员使用高级语言编写智能合约以实现各种复杂的业务逻辑。然而,这些高级语言(例如solidity等)极易出错,并且智能合约在部署到区块链平台后无法修改,因此这些部署到区块链上之前无法检测到的编程错误极有可能被攻击者利用。其次,区块链的智能合约通常存储和管理大量金融资产,并在公开的p2p网络上运行,任何用户都可以在没有受信任的第三方的情况下加入和查看合约,这增加了合约被攻击的风险从而导致重大的资产损失。
3.为了解决智能合约带来的安全问题,研究人员相继提出了一系列应对方案,包括基于符号分析的方法、基于形式验证的方法、基于模糊测试的方法、基于机器学习的方法等,这些研究给智能合约的漏洞检测提供了一定的思路,但是这些工具很难同时实现合约漏洞检测的完整性和准确性如基于符号分析的方法通常面临路径爆炸等问题,基于形式化验证的方法需要相对较低程度的自动化,基于模糊测试的方法检测正确率较低,基于机器学习的方法只能检测少数特定的漏洞类型,不能扩展到其他漏洞类型。
4.因此,现有技术还有待改进。


技术实现要素:

5.本发明要解决的技术问题在于,针对现有技术缺陷,本发明提供一种以太坊智能合约漏洞实时检测方法、终端及存储介质,以解决传统的智能合约检测方式无法实现完整视角的安全检测的技术问题。
6.本发明解决技术问题所采用的技术方案如下:第一方面,本发明提供一种以太坊智能合约漏洞实时检测方法,包括:通过多个节点组成的多视角观测点在当前区块链的状态下监听p2p网络的交易消息;其中,每个节点为运行经过优化的以太坊客户端的节点;处理多节点发送的交易消息,并输出攻击检测所需要的元数据,将所述元数据作为攻击检测的输入;根据输入的元数据对对应的智能合约的交易数据进行攻击检测,并输出对应的攻击检测结果;对以太坊交易数据进行查询分析,并根据所述智能合约的攻击检测结果进行取证以及对事件响应告警。
7.在一种实现方式中,所述通过多个节点组成的多视角观测点在当前区块链的状态下监听p2p网络的交易消息,包括:在每个节点运行一定时间后,监听所述p2p网络的交易消息。
8.在一种实现方式中,所述在每个节点运行一定时间后,监听所述p2p网络的交易消息,包括:监听所述p2p网络中最新的交易消息,并记录本地节点收到对等节点的消息时的最早交易时间;处理geth节点中的交易池中的相关函数,并将所述geth节点通道中的交易消息发送至消息处理程序。
9.在一种实现方式中,所述在每个节点运行一定时间后,监听所述p2p网络的交易消息,还包括:通过所述消息处理程序实时监听新交易消息上的通道,并通过协程通道获取传递过来的交易消息,对获取的交易消息进行消息去重、同步操作。
10.在一种实现方式中,所述处理多节点发送的交易消息,并输出攻击检测所需要的元数据,将所述元数据作为攻击检测的输入,包括:选取若干个不同区域的geth节点;在若干个geth节点之间通过维持一个共同的通信通道检测各geth节点接收的最新交易消息是否已经被同步到综合的视角中;若为是,则忽略接收的最新交易消息;若为否,则通过本地节点将最新交易消息的数据生成交易的检测元数据,并将生成的检测元数据转发到消息处理程序。
11.在一种实现方式中,所述根据输入的元数据对对应的智能合约的交易数据进行攻击检测,并输出对应的攻击检测结果,包括:对于一笔新的智能合约交易,基于节点记录的交易traces数据生成交易的执行逻辑数据;根据所述执行逻辑数据涵盖的交易具体操作,将生成的检测元数据输入到攻击检测模型中,输出对应的攻击检测结果。
12.在一种实现方式中,所述对以太坊交易数据进行查询分析,并根据所述智能合约的攻击检测结果进行取证以及对事件响应告警,包括:对于存在攻击事件的智能合约交易,若经济损失达到设定指标,在攻击事件发生后对对应的攻击行为进行复盘并生成对应的取证分析结果;将所述取证分析结果反馈到对应的交易平台。
13.在一种实现方式中,所述方法还包括:通过图计算和机器学习进行智能合约交易的关联分析,并将分析结果进行展示,以提升风险识别的准确率。
14.第二方面,本发明还提供一种终端,包括:处理器以及存储器,所述存储器存储有以太坊智能合约漏洞实时检测程序,所述以太坊智能合约漏洞实时检测程序被所述处理器执行时用于实现如第一方面所述的以太坊智能合约漏洞实时检测方法的操作。
15.第三方面,本发明还提供一种存储介质,所述存储介质为计算机可读存储介质,所
述存储介质存储有以太坊智能合约漏洞实时检测程序,所述以太坊智能合约漏洞实时检测程序被处理器执行时用于实现如第一方面所述的以太坊智能合约漏洞实时检测方法的操作。
16.本发明采用上述技术方案具有以下效果:本发明针对区块链上链交易不可篡改所导致的攻击不可回溯的特性,通过多个节点组成的多视角观测点在当前区块链的状态下监听p2p网络的交易消息,以多节点的交易消息同步的综合视角弥补单节点视角可能存在的“消息盲区”;并且,通过输出攻击检测所需要的元数据,利用元数据对对应的智能合约的交易数据进行攻击检,可在交易消息上链之前或短时间内检测其可能的攻击行为;以及对以太坊交易数据进行查询分析、取证以及对事件响应告警,可以从根本上阻断攻击的发生,从而实现区块链安全威胁的实时感知和及时响应。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。图1是本发明的一种实现方式中以太坊智能合约漏洞实时检测方法的流程图。
18.图2是本发明的一种实现方式中基于分布式节点的以太坊智能合约漏洞实时监测系统的架构示意图。
19.图3是本发明的一种实现方式中分布式节点的监听消息过程示意图。
20.图4是本发明的一种实现方式中分布式节点的消息同步示意图。
21.图5是本发明的一种实现方式中攻击检测流程示意图。
22.图6是本发明的一种实现方式中终端的功能原理图。
23.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
24.为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
25.示例性方法智能合约(smart contract)是一种对纸质合约进行编码并执行条款的计算机化交易协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。以太坊中将智能合约与区块链技术结合被认为是区块链一次里程碑式的升级,随着智能合约数量的增多,去中心化应用的推广,智能合约涉及的数字资产呈指数级别增长。同时,智能合约存在的技术缺陷和安全漏洞导致了巨大的金钱损失,破坏了区块链合约层的生态稳定性。因此,有效和高效地检测合约中的漏洞是一个新兴但至关重要的问题。
26.根据目前的智能合约安全检测的相关研究来看,已经证明了能够通过智能合约的代码分析技术如形式化验证、静态分析等手段发现区块链智能合约存在的安全漏洞并提供
相应的防御建议;然而之前的研究存在着以下几个的不足:(1)基于符号执行、形式化验证、模糊测试等方法各自存在一定的缺点,如符号执行面临路径爆炸问题,形式化验证的方法可能会检测不存在的漏洞,模糊测试的方法检测的准确率较低,此外这些方法检测的漏洞类型不完整,不能够提供较为完全的分析;(2)现有方法检测基于已上链的历史数据,无法支持对攻击威胁实时感知和快速响应以及智能合约安全实时检测和取证分析。
27.此外这些检测方法都是基于区块链的历史数据,无法基于实时产生的大规模交易数据检测区块链智能合约存在的安全隐患。而且基于单节点的交易数据可能会由于网络延迟等造成一定的交易视角盲区,导致检测的数据不完整,因此需要寻求一种方法实现完整视角的以太坊交易的实时监控和安全检测。
28.针对上述技术问题,本发明实施例提供一种以太坊智能合约漏洞实时检测方法,可以在交易消息上链之前或短时间内检测其可能的攻击行为,从而高效地检测合约中的漏洞。
29.如图1所示,本发明实施例提供一种以太坊智能合约漏洞实时检测方法,包括以下步骤:步骤s100,通过多个节点组成的多视角观测点在当前区块链的状态下监听p2p网络的交易消息。
30.在本实施例中,所述以太坊智能合约漏洞实时检测方法应用于终端中,所述终端包括但不限于:计算机以及移动终端等设备。
31.在本实施例中,以太坊底层网络使用p2p(点对点网络)协议,每个以太坊客户端在p2p网络中作为节点共同构成区块链网络,用户发起的交易通过p2p网络进行传播和验证,一笔交易平均在6秒内传播到整个以太坊公链网络中的每个节点,而目前以太坊平均出块时间为15秒,且根据etherscan网站最新的数据统计,最近一年内(2021.6~2022.5)平均每天产生的以太坊交易数量超过了120万笔,因此分析以太坊的交易数据对于检测方法的效率和实时性要求较高。
32.一个常用的方法是基于本地部署的以太坊节点的内存池(mempool)获取实时接收的以太坊交易然后直接输入到对应的漏洞检测模型中进行分析。然而这样的设计存在着一个缺陷,那就是由于网络的延迟等因素,单节点接收到的交易信息可能不是完整的视角,因此存在漏掉一部分p2p网络中传播的以太坊交易信息,为解决这一问题,本实施例中提出了基于分布式节点的以太坊智能合约漏洞实时检测的方法,旨在提供一个高兼容性、高扩展性、支持对攻击威胁实时感知和快速响应以及智能合约安全实时检测和取证分析平台,主要的设计思想包括:(1) 针对区块链上链交易不可篡改所导致的攻击不可回溯的特性,通过在区块链底层网络中插入多个分布式交易监测节点的方式,在对区块链网络自身性能不产生额外开销的前提下,对区块链底层网络中的交易消息进行实时分析,以多节点的交易消息同步的综合视角弥补单节点视角可能存在的“消息盲区”。
33.(2)通过分布式节点的实时监控和分析区块链底层网络中的交易消息,在交易消息上链之前或短时间内检测其可能的攻击行为。
34.(3)系统能够将检测出来含有攻击行为的交易及时反馈给利益相关的节点如区块
链节点、“white hat”交易节点等进行及时响应,阻止恶意交易上链,从根本上阻断攻击的发生,从而实现区块链安全威胁的实时感知和及时响应。
35.具体地,在本实施例的一种实现方式中,步骤s100包括以下步骤:步骤s101,在每个节点运行一定时间后,监听所述p2p网络的交易消息。
36.如图2所示,图2为基于分布式节点的以太坊智能合约漏洞实时监测系统的架构,在本实施例中,通过该架构实现所述的以太坊智能合约漏洞实时检测方法;该架构图展现了检测系统的架构,包括多节点的观测模块(multi-nodes view)、交易消息处理模块(message handler)、攻击检测模块(detection)、数据存储模块(storage)以及应用模块(application)。
37.多节点的观测模块(multi-nodes view):由多个节点组成的多视角观测联盟,每一个节点运行着经过优化了的以太坊geth客户端,它们都是在最新区块链的状态下监听public mempool的交易信息。一旦接收到到来自p2p网络的交易消息,每个节点会将收到的最新状态的消息发送给消息处理模块。
38.交易消息处理模块(message handler):消息处理模块主要负责维持一个过滤了冗余交易信息的最终状态,使用bitmap的原理在短时间内处理从多节点发送来的交易消息,消息处理模块在处理完毕交易信息后输出攻击检测所需要的元数据作为攻击检测模块的输入。
39.攻击检测模块(detection):攻击检测模块检测智能合约相关交易的数据,输出检测的结果。
40.数据存储模块(storage):数据存储模块负责存储智能合约交易的攻击检测结果,使用缓存技术(如redis)存储大规模的交易数据,最后将数据存储到非关系型数据库(postgresql)中。
41.应用模块(application):应用模块支持以太坊交易数据的查询分析,智能合约交易攻击检测结果的取证以及对事件的响应告警等。
42.在本实施例,目标是要以太坊节点尽早地获取p2p网络中最新的交易消息,并将收到的消息及时输入到检测的模块中进行处理,而由于网络延迟等因素,单节点接收到以太坊交易信息的视角通常有限即该节点可能比其他节点较晚接收到某些以太坊网络中最新交易,智能合约交易攻击检测的实时性能就会大大降低。从单个以太坊节点来说,观测到的交易的及时性和节点所处的地理位置,所连接的peer等因素有一定的关联性,因此为了应对单节点视角存在的不足,本实施例中设计的系统提出了多节点观测交易的方法。
43.如图3所示,系统架构主要描述三节点从接收信息到检测,产生结果的过程,具体为:首先,系统中运行的属于以太坊的全节点 (go实现版本:go-ethereum),同步数据的方式为full mode,该模式的同步能够在mempool(内存池)中维持一个最新的以太坊交易视角。在本实施例中,要求每个节点持续运行一段时间后再开始同步消息,这样有助于节点达到稳定的状态。因为首次进入网络的新节点由引导节点(bootnode节点)引入一组对等节点,其唯一目的是将新节点连接到对等节点。geth不断尝试连接到网络上的其他节点,直到它有足够的对等点。而现实情况是由于时间不同步,版本不兼容等问题,通常会存在所连接peer状态为error的情况,因此需要持续运行一段时间如两周以上以达到稳定的状态。
44.具体地,在本实施例的一种实现方式中,步骤s101包括以下步骤:步骤s101a,监听所述p2p网络中最新的交易消息,并记录本地节点收到对等节点的消息时的最早交易时间;步骤s101b,处理geth节点中的交易池中的相关函数,并将所述geth节点通道中的交易消息发送至消息处理程序;步骤s101c,通过所述消息处理程序实时监听新交易消息上的通道,并通过协程通道获取传递过来的交易消息,对获取的交易消息进行消息去重、同步操作。
45.在本实施例中,对于每一个节点,它从接受新交易消息到发送消息到处理模块主要包括以下流程:首先,将本地节点加入到以太坊的p2p网络中,以太坊的p2p通信网络依赖于基于kademlia的节点(对等点)发现协议,每个节点通常50个与之对等的节点。一旦节点达到限制,它就不再接受新的连接请求。因此,在本实施例中,将节点最大的peer连接数量增加至1000,这将大大增加节点添加peer节点的容量。连接到高性能低延迟节点的源节点能够更快地将数据发送到网络的其余部分,此外直接与优质的peer节点相连,例如,发送大量交易的大型交易所对等节点,那么所有这些交易将在第一时间从peer节点发送到本地节点。因此在启动本地节点的时候,除了对节点本身的peer连接限制扩容之外,还一开始给节点添加了一些比较知名的静态节点,如矿池节点等。
46.其次,在和peer节点建立稳定连接后,本地节点能监听到来自p2p网络当中最新的交易消息,当一个节点从相邻节点接收到这个交易时,在进入节点的交易池(mempool)之前之前也需要进行检查和处理,所以这是一个非常关键的时间点,本实施例中会在本地节点收到对等节点的消息时,记录一笔交易的最早时间,该最早时间包括:txhash(交易哈希)、timestamp(接收的时间戳)、peer ip(交易来源节点的ip信息) 。
47.再次,在获取了本地节点的最新消息过程中,主要处理geth节点中的transactionmsg,pooled的transactionmsg相关的函数,将交易发送至下一步的消息处理模块,发送消息通过geth中的channle通道来实现。
48.最后,消息处理程序实时监听新交易消息上的channel,并通过协程通道获取传递过来的消息进行消息去重、同步等操作。为了获取对应于需要的检测数据,本实施例中的节点记录了智能合约交易相关的底层evm执行的traces(字节码层面)数据。
49.如图1所示,在本发明实施例的一种实现方式中,以太坊智能合约漏洞实时检测方法还包括以下步骤:步骤s200,处理多节点发送的交易消息,并输出攻击检测所需要的元数据,将所述元数据作为攻击检测的输入。
50.在本实施例中,在每个节点运行监听所述p2p网络的交易消息后,需要处理多节点发送的交易消息,即对多节点交易消息同步;之后,输出攻击检测所需要的元数据,将所述元数据作为攻击检测的输入。
51.具体地,在本实施例的一种实现方式中,步骤s200包括以下步骤:步骤s201,选取若干个不同区域的geth节点;步骤s202,在若干个geth节点之间通过维持一个共同的通信通道检测各geth节点接收的最新交易消息是否已经被同步到综合的视角中;
步骤s203,若为是,则忽略接收的最新交易消息;步骤s204,若为否,则通过本地节点将最新交易消息的数据生成交易的检测元数据,并将生成的检测元数据转发到消息处理程序。
52.如图4所示,在本实施例中,系统选取三个不同区域的geth节点(每个节点的储存空间为8t,cpu:64 cores),系统中节点数量可以根据实际条件进行动态调整,通常情况下需要大于等于两个位于不同大陆的国家或地区的以太坊节点,且多个节点之间的时间需要同步为一致。
53.进一步地,三个节点之间通过维持一个共同的通信通道(channel)来检测自己接收的最新交易是否已经被同步到综合的view中。如图4所示,node接收到新交易会通过通道获取交易消息total view的记录(通过bloom过滤器实现),维持数亿空间的一个基于位图的message filter(消息过滤器)只消耗数十m的内存,因此,对于系统内节点通过协程读取这一消息记录消耗时间可以忽略。message filter检测节点发送过来的消息,如果已经被其他节点发送即存在多节点的总消息视角总则忽略此消息,否则本地节点将新消息的数据生成交易的检测元数据转发到下一步的处理模块。
54.如图1所示,在本发明实施例的一种实现方式中,以太坊智能合约漏洞实时检测方法还包括以下步骤:步骤s300,根据输入的元数据对对应的智能合约的交易数据进行攻击检测,并输出对应的攻击检测结果。
55.智能合约本质上是存储在区块链上的程序,在满足预定条件时运行。它们通常用于自动执行协议,以便所有参与者都可以立即确定结果,而无需任何中间人的参与或时间损失,因此它和正常的程序一样也存在着一些主要的缺陷,在以太坊的智能合约中常见的漏洞类型包括:(1)逻辑错误重入攻击:调用外部的合约或发送以太币到地址时需要进行外部调用,这些外部调用一旦被攻击者劫持会使得合约执行攻击者逻辑的代码从而产生危害如可能耗尽调用者合约的以太币。
56.delegatecall注入:被调用方合约可以更新调用方合约的状态变量从而触发这一漏洞。
57.(2)整数上溢和下溢:这一漏洞智能合约代码中没有验证数字输入导致,且以太坊中evm没提供对整数溢出的检测。
58.(3)dos攻击:循环语句、递归函数、外部合约调用等处理不当,可能导致无限循环、递归栈耗尽等拒绝服务风险。如具有意外revert的dos:发生这种情况的原因是,由于主叫方合约遇到外部呼叫失败而导致事务被还原,或者被叫方合约故意执行还原操作以中断主叫方合约的执行。此漏洞是由执行被调用方合约还原的调用方合约引起的。通过使接收者调用交易来“提取”发件人为接收者预留的资金,可以防止此漏洞,从而有效地防止了发件人的交易被还原。
59.(4)访问控制设计缺陷:智能合约中对访问控制处理不当,如函数的可见性没有限制,从而允许未经授权的访问。这会引起一系列的危害如销毁合约时不加保护会删除存储和字节码。
60.(5)函数误用:主要来源于伪随机函数调用和接口函数如错误的构造函数名称等实现存在的问题,可能导致可预测随机数、接口函数返回异常等风险。
61.(6)以太坊设计机制:这一类主要是以太坊合约本身的设计存在的缺陷问题,如短地址攻击针对以太坊上 erc20 智能合约的一种攻击形式,利用的原理是 evm 中的对于输入字节码的自动补全机制进行攻击。
62.本实施例中,根据输入的元数据对对应的智能合约的交易数据进行攻击检测,并输出对应的攻击检测结果,即检测智能合约的交易数据的攻击情况及漏洞类型。
63.具体地,在本实施例的一种实现方式中,步骤s300包括以下步骤:步骤s301,对于一笔新的智能合约交易,基于节点记录的交易traces数据生成交易的执行逻辑数据;步骤s302,根据所述执行逻辑数据涵盖的交易具体操作,将生成的检测元数据输入到攻击检测模型中,输出对应的攻击检测结果。
64.在本实施例中,可以基于多节点同步的最新交易,对智能合约相关的交易数据进行攻击检测。如图5所示,对于一笔新的智能合约交易,系统基于节点记录的该交易traces数据生成交易的执行逻辑数据,这部分数据通常涵盖了交易的具体操作,如智能合约交易程序中的函数逻辑等等,通过生成的检测元数据输入到攻击检测模块的攻击检测模型中(适配了各种攻击模式和规则)获取检测的结果。
65.在本实施例中,因攻击检测的实时性,系统要短时间处理大规模的交易数据,因此这设计了大规模交易数据的存取和读取。使用redis等缓存技术可以存储存在风险的智能合约交易,这部分能够在存入数据库之前达到一个缓冲,而这一过程在毫秒级别,同时可以将含有漏洞的交易及时传递出去。此外通过非关系型数据库如postgresql或elasticsearch等将攻击检测的结果储存成结构化的数据,从而为进一步分析提供支撑。
66.如图1所示,在本发明实施例的一种实现方式中,以太坊智能合约漏洞实时检测方法还包括以下步骤:步骤s400,对以太坊交易数据进行查询分析,并根据所述智能合约的攻击检测结果进行取证以及对事件响应告警。
67.在本实施例中,在存储所述攻击检测结果后,可以通过系统进行分析和响应,即对监听到的交易数据进行查询分析,同时根据分析结果进行取证以及向相关交易平台进行交易过程中的攻击事件的响应及告警。
68.具体地,在本实施例的一种实现方式中,步骤s500包括以下步骤:步骤s401,对于存在攻击事件的智能合约交易,若造成一定的经济损失,在攻击事件发生后对对应的攻击行为进行复盘并生成对应的取证分析结果;步骤s402,将所述取证分析结果反馈到对应的交易平台;步骤s403,通过图计算和机器学习进行智能合约交易的关联分析,并将分析结果进行展示,以提升风险识别的准确率。
69.在本实施例中,在进行攻击事件响应的过程中,在检测完最新接收的交易之后,及时反馈给利益的相关方,如交易平台等等,这需要和相关的交易平台或服务市场进行合作,此外也需要获得矿池的支持,如通过隐私交易快速上链接进行相应的“whitehat rescue”操作。
70.在本实施例中,在进行攻击取证分析的过程中,对于存在攻击事件的智能合约交易,如果造成了一定的经济损失,在攻击事件发生后能够对其攻击行为进行复盘并生成相应的取证分析结果。这对于事后的交易溯源和追回损失有一定的帮助。
71.另外,在本实施例中,交易查询关联分析能够支持图分析方法,生成交易网络图,攻击网络图,智能合约的调用图等等,并已可视化的方式展示相关图的分析。这一部分系统采取了spark图计算和机器学习的方法做进一步的关联分析,能够支持路径搜索、语义分析等,分析结果展示在系统中,以提升风险识别等方面的准确率。此外数据库中包含以太坊地址的海量标签信息,这些信息也会实时更新,以支持对交易数据的深入分析。
72.本实施例中设置了基于分布式节点的以太坊智能合约漏洞实时检测的系统,该系统主要基于以太坊底层p2p网络消息并对整个区块链网络不产生额外开销;并且,本实施例中提出了海量区块链交易消息数据的高效储存、查询、关联、以及安全分析的方法,支持数亿级交易数量的区块链上开展快速安全威胁取证。
73.本实施例通过上述技术方案达到以下技术效果:本实施例针对区块链上链交易不可篡改所导致的攻击不可回溯的特性,通过在区块链底层网络中插入多个分布式交易监测节点的方式,在对区块链网络自身性能不产生额外开销的前提下,对区块链底层网络中的交易消息进行实时分析,以多节点的交易消息同步的综合视角弥补单节点视角可能存在的“消息盲区”;并且,通过分布式节点的实时监控和分析区块链底层网络中的交易消息,在交易消息上链之前或短时间内检测其可能的攻击行为,使系统能够将检测出来含有攻击行为的交易及时反馈给利益相关的节点如区块链节点、“white hat”交易节点等进行及时响应,阻止恶意交易上链,从根本上阻断攻击的发生,从而实现区块链安全威胁的实时感知和及时响应。
74.示例性设备基于上述实施例,本发明还提供一种终端,包括:通过系统总线连接的处理器、存储器、接口、显示屏以及通讯模块;其中,所述处理器用于提供计算和控制能力;所述存储器包括存储介质以及内存储器;所述存储介质存储有操作系统和计算机程序;所述内存储器为所述存储介质中的操作系统和计算机程序的运行提供环境;所述接口用于连接外部设备,例如,移动终端以及计算机等设备;所述显示屏用于显示相应的信息;所述通讯模块用于与云端服务器或移动终端进行通讯。
75.所述计算机程序被所述处理器执行时用以实现一种以太坊智能合约漏洞实时检测方法的操作。
76.本领域技术人员可以理解的是,图6中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
77.在一个实施例中,提供了一种终端,其中,包括:处理器和存储器,所述存储器存储有以太坊智能合约漏洞实时检测程序,所述以太坊智能合约漏洞实时检测程序被所述处理器执行时用于实现如上所述的以太坊智能合约漏洞实时检测方法的操作。
78.在一个实施例中,提供了一种存储介质,其中,所述存储介质存储有以太坊智能合约漏洞实时检测程序,所述以太坊智能合约漏洞实时检测程序被所述处理器执行时用于实现如上所述的以太坊智能合约漏洞实时检测方法的操作。
79.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。
80.综上,本发明提供了一种以太坊智能合约漏洞实时检测方法、终端及存储介质,方法包括:通过多个节点组成的多视角观测点在当前区块链的状态下监听p2p网络的交易消息;其中,每个节点为运行经过优化的以太坊客户端的节点;处理多节点发送的交易消息,并输出攻击检测所需要的元数据,将所述元数据作为攻击检测的输入;根据输入的元数据对对应的智能合约的交易数据进行攻击检测,并输出对应的攻击检测结果;对以太坊交易数据进行查询分析,并根据所述智能合约的攻击检测结果进行取证以及对事件响应告警;本发明可以在交易消息上链之前或短时间内检测其可能的攻击行为,从而高效地检测合约中的漏洞。
81.应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献