CN112711760B - 检测智能合约恶意消除重入影响漏洞的检测方法和装置 - Google Patents

检测智能合约恶意消除重入影响漏洞的检测方法和装置 Download PDF

Info

Publication number
CN112711760B
CN112711760B CN202011603631.4A CN202011603631A CN112711760B CN 112711760 B CN112711760 B CN 112711760B CN 202011603631 A CN202011603631 A CN 202011603631A CN 112711760 B CN112711760 B CN 112711760B
Authority
CN
China
Prior art keywords
vulnerability
malicious
instruction
elimination
detection result
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
Application number
CN202011603631.4A
Other languages
English (en)
Other versions
CN112711760A (zh
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.)
South China Normal University
Original Assignee
South China Normal University
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 South China Normal University filed Critical South China Normal University
Priority to CN202011603631.4A priority Critical patent/CN112711760B/zh
Publication of CN112711760A publication Critical patent/CN112711760A/zh
Application granted granted Critical
Publication of CN112711760B publication Critical patent/CN112711760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了检测智能合约恶意消除重入影响漏洞的检测方法和装置,方法包括:通过以太坊智能合约反编译技术,构建智能合约字节码的控制流图;根据控制流图,获取智能合约的执行路径;根据执行路径确定智能合约字节码中所有变量的数据传递关系;根据执行路径和数据传递关系,检测目标指令;目标指令用于更新index位置的存储值;根据目标指令的动作状态,确定漏洞检测结果;漏洞检测结果包括存在恶意消除重入影响漏洞和不存在恶意消除重入影响漏洞。本发明可以检测潜在的恶意消除重入影响漏洞,从而给予智能合约开发者在部署合约之前发现漏洞的机会,提高智能合约在部署之后的安全性,可广泛应用于区块链技术领域。

Description

检测智能合约恶意消除重入影响漏洞的检测方法和装置
技术领域
本发明涉及区块链技术领域,尤其是检测智能合约恶意消除重入影响漏洞的检测方法和装置。
背景技术
随着区块链技术的日益成熟,目前,区块链平台以太坊首先引入了智能合约作为一个图灵完备的程序,可以自动化区块链的交易去实现复杂的功能。因此,开发者可以发布基于ERC代币标准下的以太坊区块链虚拟代币。在过去的几年里,人们的注意力已经从几个智能合约组成的金融去中心化应用(DApp)上转移。在去中心化金融(DeFi)中,金融活动(例如虚拟代币的交换,存储和借贷)是由不可信网络中的共识算法来保证的。由于去中心化金融应用帮助用户处理并且转移宝贵的财产,所以攻击去中心化金融应用是有利可图的。因此,去中心化金融应用的安全性受到广泛关注。
然而,现有技术不能检测到对于Lendme的漏洞的攻击,主要在于缺乏对此漏洞持久化存储的数据(例如:存储代币的账本变量)依赖关系以及执行路径的分析和提取。
1.首先,现有分析技术通过监控账号和账户间的以太币流动来检测安全性漏洞,此特征无法识别出针对Lendme的漏洞的攻击。现有技术无法追踪合约代币的数据传递流动关系,因此漏判此漏洞。
2.其次,因为针对Lendme的漏洞的攻击并没有出现对控制流干预的行为特征,而现有技术是通过是否干预控制流的行为特征进行判别,容易漏判此漏洞。Lendme攻击事件是通过写入过期数据的方式对已经生效的状态变换进行覆盖,从而消除在重入过程中已经生效的转账行为(例如:攻击者在重入状态下进行转账操作,该操作将不记录到智能合约的账本变量中),达到攻击目的。
发明内容
有鉴于此,本发明实施例提供一种安全性高的,检测智能合约恶意消除重入影响漏洞的检测方法和装置。
本发明的一方面提供了检测智能合约恶意消除重入影响漏洞的检测方法,包括:
通过以太坊智能合约反编译技术,构建智能合约字节码的控制流图;
根据所述控制流图,获取智能合约的执行路径;
根据所述执行路径确定所述智能合约字节码中所有变量的数据传递关系;
根据所述执行路径和所述数据传递关系,检测目标指令;所述目标指令用于更新index位置的存储值;
根据所述目标指令的动作状态,确定漏洞检测结果;所述漏洞检测结果包括存在恶意消除重入影响漏洞和不存在恶意消除重入影响漏洞。
优选地,所述方法还包括:
根据所述执行路径和所述数据传递关系,判断是否存在所述目标指令,当不存在所述目标指令时,确定漏洞检测结果为不存在恶意消除重入影响漏洞。
优选地,所述根据所述目标指令的动作状态,确定漏洞检测结果,包括:
检测公有函数上是否存在目标指令,若是,则执行下一步骤;反之,则确定漏洞检测结果为不存在恶意消除重入影响漏洞;其中,所述目标指令用于更新index位置的存储值;
根据所述index位置的存储值的更新结果,确定漏洞检测结果。
优选地,所述根据所述index位置的存储值的更新结果,确定漏洞检测结果,包括:
根据所述执行路径和所述数据传递关系,判断是否有公有函数存在目标行为,若是,则根据预设条件对所述公有函数进行检测,确定漏洞检测结果;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞。
优选地,所述根据预设条件对所述公有函数进行检测,确定漏洞检测结果,包括:
判断所述公有函数中是否存在第一执行路径,若是,则执行下一步骤;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;其中,所述第一执行路径包括第一指令、第二指令和第三指令;所述第一指令用于读取所述index位置的存储值;所述第二指令用于进行外部调用;所述第三指令用于更新所述index位置的存储值;
判断所述公有函数中是否存在第一数据流,以使得所述第一指令读取的存储值更新所述第三指令中指定的存储值,若是,则执行下一步骤;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;
判断所述公有函数中是否存在第二执行路径,若是,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;反之,则执行下一步骤;其中,所述第二执行路径包括第三指令和第四指令;所述第四指令用于读取index位置的存储值;
判断所述公有函数中是否存在第二数据流,以使得所述第四指令读取的存储值更新所述第三指令中指定的存储值,若是,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;反之,则确定所述漏洞检测结果为存在恶意消除重入影响漏洞。
本发明实施例还提供了一种检测智能合约恶意消除重入影响漏洞的检测装置,包括:
构建模块,用于通过以太坊智能合约反编译技术,构建智能合约字节码的控制流图;
获取模块,用于根据所述控制流图,获取智能合约的执行路径;
第一确定模块,用于根据所述执行路径确定所述智能合约字节码中所有变量的数据传递关系;
检测模块,用于根据所述执行路径和所述数据传递关系,检测目标指令;所述目标指令用于更新index位置的存储值;
第二确定模块,用于根据所述目标指令的动作状态,确定漏洞检测结果;所述漏洞检测结果包括存在恶意消除重入影响漏洞和不存在恶意消除重入影响漏洞。
本发明实施例还提供了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
本发明的实施例通过以太坊智能合约反编译技术,构建智能合约字节码的控制流图;根据所述控制流图,获取智能合约的执行路径;根据所述执行路径确定所述智能合约字节码中所有变量的数据传递关系;根据所述执行路径和所述数据传递关系,检测目标指令;所述目标指令用于更新index位置的存储值;根据所述目标指令的动作状态,确定漏洞检测结果;所述漏洞检测结果包括存在恶意消除重入影响漏洞和不存在恶意消除重入影响漏洞。本发明可以检测潜在的恶意消除重入影响漏洞,从而给予智能合约开发者在部署合约之前发现漏洞的机会,提高智能合约在部署之后的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的整体步骤流程图;
图2为本发明实施例提供的具体实施环境下的漏洞检测流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
针对现有技术存在的问题,本发明根据对此次新型漏洞的分析,针对恶意消除重入影响漏洞的行为特征建立详细模型,并基于该模型提出一种可以检测此漏洞的方法。针对智能合约编译后所生成的字节码,通过静态分析技术,检测智能合约是否存在触发恶意消除重入影响的执行路径,检测工具发现此类路径则进行告警。
具体地,本发明实施例提供了一种检测智能合约恶意消除重入影响漏洞的检测方法,如图1所示,该方法包括以下步骤:
通过以太坊智能合约反编译技术,构建智能合约字节码的控制流图;
根据所述控制流图,获取智能合约的执行路径;
根据所述执行路径确定所述智能合约字节码中所有变量的数据传递关系;
根据所述执行路径和所述数据传递关系,检测目标指令;所述目标指令用于更新index位置的存储值;
根据所述目标指令的动作状态,确定漏洞检测结果;所述漏洞检测结果包括存在恶意消除重入影响漏洞和不存在恶意消除重入影响漏洞。
优选地,所述方法还包括:
根据所述执行路径和所述数据传递关系,判断是否存在所述目标指令,当不存在所述目标指令时,确定漏洞检测结果为不存在恶意消除重入影响漏洞。
优选地,所述根据所述目标指令的动作状态,确定漏洞检测结果,包括:
检测公有函数上是否存在目标指令,若是,则执行下一步骤;反之,则确定漏洞检测结果为不存在恶意消除重入影响漏洞;其中,所述目标指令用于更新index位置的存储值;
根据所述index位置的存储值的更新结果,确定漏洞检测结果。
优选地,所述根据所述index位置的存储值的更新结果,确定漏洞检测结果,包括:
根据所述执行路径和所述数据传递关系,判断是否有公有函数存在目标行为,若是,则根据预设条件对所述公有函数进行检测,确定漏洞检测结果;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞。
优选地,所述根据预设条件对所述公有函数进行检测,确定漏洞检测结果,包括:
判断所述公有函数中是否存在第一执行路径,若是,则执行下一步骤;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;其中,所述第一执行路径包括第一指令、第二指令和第三指令;所述第一指令用于读取所述index位置的存储值;所述第二指令用于进行外部调用;所述第三指令用于更新所述index位置的存储值;
判断所述公有函数中是否存在第一数据流,以使得所述第一指令读取的存储值更新所述第三指令中指定的存储值,若是,则执行下一步骤;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;
判断所述公有函数中是否存在第二执行路径,若是,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;反之,则执行下一步骤;其中,所述第二执行路径包括第三指令和第四指令;所述第四指令用于读取index位置的存储值;
判断所述公有函数中是否存在第二数据流,以使得所述第四指令读取的存储值更新所述第三指令中指定的存储值,若是,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;反之,则确定所述漏洞检测结果为存在恶意消除重入影响漏洞。
下面以具体的实施环境下的漏洞检测过程为例,详细说明本发明的检测方法的实现过程,参考图2,实现过程包括以下步骤:
1.利用以太坊智能合约反编译技术,从以太坊智能合约字节码(由16进制数字组成的字符串序列)出发,构建控制流图,从控制流图分析出智能合约的执行路径。反编译技术是通过他人软件的可执行程序进行逆向分析,推导出其执行过程。控制流图是以基本块(单入口、单出口的最长指令序列)为节点,以基本块之间的跳转关系为边所组成的有向图。通过遍历控制流图,可以分析出智能合约的所有执行路径。
2.从智能合约字节码中分析出所有变量(包括存放在storage中,可以持久化,通过SSTORE等指令进行读取的全局变量、存放在栈和内存中,不可持久化通过MLOAD等指令进行读取局部变量)之间的数据传递关系。
3.根据数据传递关系和执行路径,判断是否在公有函数1(在源代码以public关键字进行申明,可以通过ABI的方式被外部用户进行调用的函数)中存在更新位置index存储值(全局变量)的行为。若否,则进入步骤4,若存在进入步骤5。
4.报告该合约不存在“恶意消除重入影响”漏洞。
5.根据数据传递关系和执行路径,判断是否有公有函数2(需要说明的是,本发明实施例的公有函数2可以和公有函数1是同一个函数,这里用于表示一个合约中存在有这两种行为的公有函数)中存在“过期数据传递关系行为”,若同时满足以下所有条件(a-d),则进入到步骤6,否则进入步骤4。
a)公有函数2中存在一条stmt1-stmt2-stmt3的执行路径,stmt1是读取index位置的存储值,stmt2是进行外部调用(例如CALL、DELEGATECALL、CALLCODE等),stmt3是更新index位置的存储值。
b)公有函数2中存在数据流,stmt1中所读取的值流至stmt3所更新的存储值中;
c)公有函数2中不存在一条路径stmt4-stmt3的执行路径,stmt4是读取index位置的存储值。
d)公有函数2中不在数据流,stmt4中所读取的值流至stmt3。
综上所述,本发明基于对恶意消除重入影响行为特征进行详细建模,并以漏洞特征的方式进行表达描述,从而可以基于该特征利用智能合约的执行路径和相关数据的传递依赖关系,可以在字节码层次上识别出恶意消除重入影响智能合约漏洞。
本发明以数据依赖传递关系,执行路径为特征分析智能合约消除重入影响的漏洞。
本发明针对智能合约恶意消除重入影响漏洞的检测步骤。
与现有的技术相比,本发明所提出的检测方法,通过静态分析智能合约中的执行路径和数据传递依赖关系,结合恶意消除重入影响漏洞的行为特征,可以检测潜在的恶意消除重入影响漏洞,从而给予智能合约开发者在部署合约之前发现漏洞的机会,提高智能合约在部署之后的安全性。
本发明实施例还提供了一种检测智能合约恶意消除重入影响漏洞的检测装置,包括:
构建模块,用于通过以太坊智能合约反编译技术,构建智能合约字节码的控制流图;
获取模块,用于根据所述控制流图,获取智能合约的执行路径;
第一确定模块,用于根据所述执行路径确定所述智能合约字节码中所有变量的数据传递关系;
检测模块,用于根据所述执行路径和所述数据传递关系,检测目标指令;所述目标指令用于更新index位置的存储值;
第二确定模块,用于根据所述目标指令的动作状态,确定漏洞检测结果;所述漏洞检测结果包括存在恶意消除重入影响漏洞和不存在恶意消除重入影响漏洞。
本发明实施例还提供了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (4)

1.检测智能合约恶意消除重入影响漏洞的检测方法,其特征在于,包括:
通过以太坊智能合约反编译技术,构建智能合约字节码的控制流图;
根据所述控制流图,获取智能合约的执行路径;
根据所述执行路径确定所述智能合约字节码中所有变量的数据传递关系;
根据所述执行路径和所述数据传递关系,检测目标指令;所述目标指令用于更新index位置的存储值;
根据所述目标指令的动作状态,确定漏洞检测结果;所述漏洞检测结果包括存在恶意消除重入影响漏洞和不存在恶意消除重入影响漏洞;
所述根据所述目标指令的动作状态,确定漏洞检测结果,包括:
检测公有函数上是否存在目标指令,若是,则执行下一步骤;反之,则确定漏洞检测结果为不存在恶意消除重入影响漏洞;其中,所述目标指令用于更新index位置的存储值;
根据所述index位置的存储值的更新结果,确定漏洞检测结果;
所述根据所述index位置的存储值的更新结果,确定漏洞检测结果,包括:
根据所述执行路径和所述数据传递关系,判断是否有公有函数存在目标行为,若是,则根据预设条件对所述公有函数进行检测,确定漏洞检测结果;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;
所述根据预设条件对所述公有函数进行检测,确定漏洞检测结果,包括:
判断所述公有函数中是否存在第一执行路径,若是,则执行下一步骤;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;其中,所述第一执行路径包括第一指令、第二指令和第三指令;所述第一指令用于读取所述index位置的存储值;所述第二指令用于进行外部调用;所述第三指令用于更新所述index位置的存储值;
判断所述公有函数中是否存在第一数据流,以使得所述第一指令读取的存储值更新所述第三指令中指定的存储值,若是,则执行下一步骤;反之,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;
判断所述公有函数中是否存在第二执行路径,若是,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;反之,则执行下一步骤;其中,所述第二执行路径包括第三指令和第四指令;所述第四指令用于读取index位置的存储值;
判断所述公有函数中是否存在第二数据流,以使得所述第四指令读取的存储值更新所述第三指令中指定的存储值,若是,则确定所述漏洞检测结果为不存在恶意消除重入影响漏洞;反之,则确定所述漏洞检测结果为存在恶意消除重入影响漏洞。
2.根据权利要求1所述的检测智能合约恶意消除重入影响漏洞的检测方法,其特征在于,所述方法还包括:
根据所述执行路径和所述数据传递关系,判断是否存在所述目标指令,当不存在所述目标指令时,确定漏洞检测结果为不存在恶意消除重入影响漏洞。
3.一种电子设备,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如权利要求1-2中任一项所述的方法。
4.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1-2中任一项所述的方法。
CN202011603631.4A 2020-12-29 2020-12-29 检测智能合约恶意消除重入影响漏洞的检测方法和装置 Active CN112711760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011603631.4A CN112711760B (zh) 2020-12-29 2020-12-29 检测智能合约恶意消除重入影响漏洞的检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011603631.4A CN112711760B (zh) 2020-12-29 2020-12-29 检测智能合约恶意消除重入影响漏洞的检测方法和装置

Publications (2)

Publication Number Publication Date
CN112711760A CN112711760A (zh) 2021-04-27
CN112711760B true CN112711760B (zh) 2022-11-29

Family

ID=75546898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011603631.4A Active CN112711760B (zh) 2020-12-29 2020-12-29 检测智能合约恶意消除重入影响漏洞的检测方法和装置

Country Status (1)

Country Link
CN (1) CN112711760B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435893B (zh) * 2021-07-01 2022-05-17 支付宝(杭州)信息技术有限公司 智能合约的安全检测方法及装置
CN116361810A (zh) * 2023-03-29 2023-06-30 中国石油大学(华东) 一种基于符号执行的智能合约漏洞检测方法
CN117834258A (zh) * 2023-12-29 2024-04-05 蚂蚁智安安全技术(上海)有限公司 一种针对区块链合约的重入攻击检测方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110162474A (zh) * 2019-05-10 2019-08-23 北京理工大学 一种基于抽象语法树的智能合约重入漏洞检测方法
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及系统
CN110597731A (zh) * 2019-09-20 2019-12-20 北京丁牛科技有限公司 一种漏洞检测方法、装置及电子设备
CN110809042A (zh) * 2019-10-31 2020-02-18 杭州云象网络技术有限公司 一种基于de bruijn序列生成技术的智能合约分片存储方法
CN111125716A (zh) * 2019-12-19 2020-05-08 中国人民大学 一种以太坊智能合约漏洞检测方法及装置
CN112035841A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于专家规则与序列化建模的智能合约漏洞检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144893B2 (en) * 2017-10-30 2021-10-12 Nec Corporation Method and system for securing smart contracts in blockchains

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及系统
CN110162474A (zh) * 2019-05-10 2019-08-23 北京理工大学 一种基于抽象语法树的智能合约重入漏洞检测方法
CN110597731A (zh) * 2019-09-20 2019-12-20 北京丁牛科技有限公司 一种漏洞检测方法、装置及电子设备
CN110809042A (zh) * 2019-10-31 2020-02-18 杭州云象网络技术有限公司 一种基于de bruijn序列生成技术的智能合约分片存储方法
CN111125716A (zh) * 2019-12-19 2020-05-08 中国人民大学 一种以太坊智能合约漏洞检测方法及装置
CN112035841A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于专家规则与序列化建模的智能合约漏洞检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Basis Path Coverage Criteria for Smart Contract Application Testing;Xinming Wang et;《2019 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery》;20191231;第34-41页 *
ContractGuard Defend Ethereum Smart Contracts with Embedded Intrusion Detection;Xinming Wang et;《IEEE TRANSACTIONS ON SERVICES COMPUTING》;20200531;第13卷(第2期);第314-328页 *
ContractGuard:面向以太坊区块链智能合约的入侵检测系统;赵淦森等;《网络与信息安全学报》;20200415;第6卷(第02期);第35-53页 *
基于符号执行的智能合约漏洞检测方案;赵伟等;《计算机应用》;20200410;第40卷(第04期);第947-953页 *

Also Published As

Publication number Publication date
CN112711760A (zh) 2021-04-27

Similar Documents

Publication Publication Date Title
CN112711760B (zh) 检测智能合约恶意消除重入影响漏洞的检测方法和装置
CN112749389B (zh) 一种检测智能合约破坏敏感数据漏洞的检测方法及装置
RU2683152C1 (ru) Системы и способы отслеживания вредоносного поведения по множеству объектов программных средств
US11882134B2 (en) Stateful rule generation for behavior based threat detection
JP6774881B2 (ja) 業務処理システム監視装置および監視方法
US20160021174A1 (en) Computer implemented method for classifying mobile applications and computer programs thereof
US20040205411A1 (en) Method of detecting malicious scripts using code insertion technique
CN111695119B (zh) 一种基于细粒度静态污点分析与符号执行的web漏洞检测方法
Aldauiji et al. Utilizing cyber threat hunting techniques to find ransomware attacks: A survey of the state of the art
JP2006127497A (ja) ユーザ変更可能ファイルの効率的なホワイトリスティング
US10594705B2 (en) Systems and methods for instructions-based detection of sophisticated obfuscation and packing
US9038161B2 (en) Exploit nonspecific host intrusion prevention/detection methods and systems and smart filters therefor
US10198576B2 (en) Identification of mislabeled samples via phantom nodes in label propagation
Ebad et al. Measuring software obfuscation quality–a systematic literature review
CN111683084B (zh) 一种智能合约入侵检测方法、装置、终端设备及存储介质
CN117033164B (zh) 一种智能合约安全漏洞检测方法和系统
CN111475168B (zh) 一种代码编译方法及装置
Pandiaraja et al. A graph-based model for discovering host-based hook attacks
CN110717181B (zh) 基于新型程序依赖图的非控制数据攻击检测方法及装置
KR100745640B1 (ko) 커널 메모리를 보호하는 방법 및 그 장치
JP7019533B2 (ja) 攻撃検知装置、攻撃検知システム、攻撃検知方法および攻撃検知プログラム
CN117807602A (zh) 智能合约的漏洞检测及模型构建方法、设备及存储介质
Kelly et al. Automatically validating the effectiveness of software diversity schemes
Norouzi et al. The greed trap: Uncovering intrinsic ethereum honeypots through symbolic execution
CN116933266B (zh) 一种跨链智能合约的污点追踪方法

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