CN111654494B - 一种用于智能合约的代理防火墙防护方法及系统 - Google Patents
一种用于智能合约的代理防火墙防护方法及系统 Download PDFInfo
- Publication number
- CN111654494B CN111654494B CN202010492143.4A CN202010492143A CN111654494B CN 111654494 B CN111654494 B CN 111654494B CN 202010492143 A CN202010492143 A CN 202010492143A CN 111654494 B CN111654494 B CN 111654494B
- Authority
- CN
- China
- Prior art keywords
- contract
- transaction
- agent
- proxy
- firewall
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于智能合约的代理防火墙防护方法及系统,所述方法包括:在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据安全策略对该交易的参数内容进行安全检查;在通过安全检查后,代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布交易,以使代理防火墙调用目标智能合约;在完成目标智能合约的调用后,代理防火墙将交易执行结果更新至交易内容后返回至代理合约;通过代理合约将更新后的交易发布至用户地址,以使代理防火墙将交易执行结果传输至用户,完成代理合约的调用。本发明通过代理防火墙为用户和目标合约之间提供调用接口,实现智能合约的安全调用,提高合约发布者和调用者的交易安全性。
Description
技术领域
本发明涉及电子与计算机信息技术领域,尤其是涉及一种用于智能合约的代理防火墙防护方法及系统。
背景技术
区块链是分布式账本技术的一种形式,自从数字币被引入以来,区块链得到了广泛的关注和应用。最初引入区块链是为了点对点支付,但最近已经扩展到允许以智能合约的形式进行可编程交易。智能合约是可以由相互不信任的节点组成的网络共同执行的程序,这些节点实现了一种协商一致的协议(如工作证明或股权证明),并以数字方式强制执行。
由于智能合约是由用户委托处理和转移有相当价值的资产,因此会受到密集的黑客活动的影响。这种黑客行为比传统的网络系统更危险,因为一旦部署到区块链上,智能合约就不可更改,这本质上就创建了一个高风险的情况:已经部署的代码几乎不可能打补丁,而智能合约总共控制着价值数十亿美元的数字资产。而各种针对智能合约进行攻击的事例产生的严重后果,也突出了在部署智能合约之前进行验证的重要性。
目前的智能合约安全技术主要包括两种,一种是在智能合约部署上链之前对代码的形式验证以及测试,主要集中于检测漏洞,这些漏洞是之前已经报告过的已知代码模式,例如,重入漏洞、未选中的发送、算术溢出和危险的委托调用;通过漏洞检测工具可以有效地检测出己知的危险代码模式。另一种则是在智能合约部署上链之后的智能合约防火墙,例如慢雾安全团队研发的FireWall.X,FireWall.X是一个为智能合约所构建的强大、简洁且实用的防火墙,也是全球首个智能合约防火墙。如传统的操作系统防火墙可以实现对网络流量的管控一样,FireWall.X可以实现对合约调用的管控,并防止未经授权的智能合约访问,同时结合预言机技术还可以实现风险控制,防止智能合约的账号资产被攻击者窃取。这样对于开发者来说,只需要专注于业务本身,在智能合约安全方面,只需要在编写智能合约时引入我们提供的一个库文件,就可以实现对合约的安全管理。
但是,在对现有技术的研究与实践过程中,本发明的发明人发现,现有智能合约安全技术存在如下缺陷:智能合约的彼此调用导致代码执行空间未知,在上链之前无法保证充分的测试性;首先,在智能合约中可以调用未知的外部函数。例如,智能合约如果使用call函数进行转账操作,该转账操作会默认调用被转账地址的fallback函数,而在智能合约上链前无法得知对方的fallback函数中是否存在类似循环调用的不安全代码;其次,智能合约防火墙需要在上链之前在被保护的智能合约中插入代码,智能合约开发者在编写智能合约时需要引入现有智能合约防火墙提供的一个库文件,用以实现对合约的安全管理;并且智能合约在上链之后的保护方案不能更改,而已经上链未经保护的智能合约也无法被保护。
发明内容
本发明实施例所要解决的技术问题在于,提供一种用于智能合约的代理防火墙防护方法及系统,能够实现智能合约的安全调用。
为解决上述问题,本发明的一个实施例提供了一种用于智能合约的代理防火墙防护方法,至少包括如下步骤:
在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;
在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;
在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;
通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用。
进一步地,所述用于智能合约的代理防火墙防护方法,还包括:
根据智能合约发布者的需求,在通过保护策略库预先设置对应的安全策略后,所述代理防火墙将代理合约发布上链,以使用户能够正常调用所述代理合约;
其中,所述安全策略包括访问控制策略、交易过滤策略、恶意行为检测策略和主动防御策略。
进一步地,所述用于智能合约的代理防火墙防护方法,还包括:
根据智能合约发布者发出的更换代理策略指令,通过所述代理防火墙更改所述代理合约的状态信息。
进一步地,所述用于智能合约的代理防火墙防护方法,还包括:
根据智能合约发布者发出的销毁代理合约指令,所述代理防火墙采用selfdestruct函数销毁所述代理合约。
本发明的一个实施例还提供了一种用于智能合约的代理防火墙防护系统,包括:
交易发布模块,用于在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;
智能合约调用模块,用于在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;
交易更新模块,用于在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;
交易返回模块,用于通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用。
进一步地,所述用于智能合约的代理防火墙防护系统,还包括:
安全策略模块,用于根据智能合约发布者的需求,通过保护策略库预先设置对应的安全策略;其中,所述安全策略包括访问控制策略、交易过滤策略、恶意行为检测策略和主动防御策略;
代理合约上链模块,用于在通过保护策略库预先设置对应的安全策略后,所述代理防火墙将代理合约发布上链,以使用户能够正常调用所述代理合约。
进一步地,所述用于智能合约的代理防火墙防护系统,还包括:
代理策略更换模块,用于根据智能合约发布者发出的更换代理策略指令,通过所述代理防火墙更改所述代理合约的状态信息。
进一步地,所述用于智能合约的代理防火墙防护系统,还包括:
代理合约销毁模块,用于根据智能合约发布者发出的销毁代理合约指令,所述代理防火墙采用selfdestruct函数销毁所述代理合约。
本发明的一个实施例还提供了一种用于智能合约的代理防火墙防护的终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的用于智能合约的代理防火墙防护方法。
本发明的一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的用于智能合约的代理防火墙防护方法。
实施本发明实施例,具有如下有益效果:
本发明实施例提供的一种用于智能合约的代理防火墙防护方法及系统,所述方法包括:在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用。
与现有技术相比,本发明实施例通过提供一种用于智能合约的代理防火墙及其防护方法,为用户和目标合约之间提供调用接口,实现智能合约的安全调用,代理合约实时和高效的分析智能合约运行状态,实现精准、高效且及时的对智能合约进行访问控制、交易过滤、恶意行为检测和主动防御。以此保证用户的交易安全。
附图说明
图1为本发明第一实施例提供的一种用于智能合约的代理防火墙防护方法的流程示意图;
图2为本发明第一实施例提供的另一种用于智能合约的代理防火墙防护方法的流程示意图;
图3为本发明第一实施例提供的智能合约防火墙防御重入漏洞的流程示意图;
图4为本发明第二实施例提供的一种用于智能合约的代理防火墙防护系统的结构示意图;
图5为本发明第二实施例提供的另一种用于智能合约的代理防火墙防护系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
首先介绍本发明可以提供的应用场景,如通过代理防火墙进行智能合约的调用。
本发明第一实施例:
请参阅图1-3。
如图1所示,本实施例提供了一种用于智能合约的代理防火墙防护方法,至少包括如下步骤:
S101、在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;
具体的,对于步骤S101,用户发布一个交易来调用代理防火墙合约,代理防火墙根据安全策略对交易的参数内容进行检查,例如发送方地址是否在保护策略库的黑名单中等。
需要说明的是,交易是区块链的一种数据结构主要易包含以下主要字段:Type:交易的类型,ContractCreation(创建合约)还是MessageCall(调用合约或转账);Nonce:发送地址的交易计数;Value:向目标账户发送的金额;ReceiveAddress:接受方地址;GasPrice:为交易付出的Gas价格;Gas:为交易付出的Gas;Data:交易的附加数据;VRS:交易签名结构体。
S102、在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;
具体的,对于步骤S102,检查之后将源地址改为代理合约的地址之后将一个新的交易发给外部的目标合约,这样外部的合约接到的调用是来自于代理防火墙而不是用户。
S103、在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;
S104、通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用。
具体的,对于步骤S103和S104,目标合约应答的交易将发送到代理防火墙,经过代理防火墙检查允许通过后,代理防火墙向用户地址发布一个的交易,传输执行返回的结果。
具体的,如图2所示,本实施例还提供了一种用于智能合约的代理防火墙防护方法的实施方式,具体包括:当用户希望使用安全的代理合约来向目标智能合约发布交易时,首先用户向代理合约发布交易(②),代理合约根据安全策略进行检查,并将源地址改为代理合约的地址,向目标合约发布一个交易,以此调用目标智能合约(③),目标智能合约将执行结果放在交易内容中返回代理合约(④),代理合约向用户地址发布一个的交易,传输执行返回的结果(⑤),完成了用户使用代理合约调用目标合约的过程。
在优选的实施例中,所述用于智能合约的代理防火墙防护方法,还包括:
根据智能合约发布者的需求,在通过保护策略库预先设置对应的安全策略后,所述代理防火墙将代理合约发布上链,以使用户能够正常调用所述代理合约;
其中,所述安全策略包括访问控制策略、交易过滤策略、恶意行为检测策略和主动防御策略。
具体的,本实施例还提供了代理防火墙中的代理合约的撰写与部署,代理合约提供商的保护策略库中可以设置访问控制、交易过滤、恶意行为检测和主动防御等策略。根据智能合约发布者的要求,代理合约依赖于保护策略库合约并添加针对智能合约的个性化保护需求,并将代理合约发布上链(图2中的①),使得代理合约可以被用户正常调用。
在优选的实施例中,所述用于智能合约的代理防火墙防护方法,还包括:
根据智能合约发布者发出的更换代理策略指令,通过所述代理防火墙更改所述代理合约的状态信息。
具体的,本实施例还提供了代理防火墙中的代理策略的更换方法,如图2所示,当用户需要更换安全策略时,代理合约提供商将会根据发布者的新需求,向代理合约发布一笔交易,更改代理合约的状态例如代理合约中的调用次数、操作类型等参数,使得代理合约满足发布者的新需求。而后,用户代理合约发布交易(②),代理合约根据新的安全策略进行检查,并将源地址改为代理合约的地址,向目标合约发布一个交易,以此调用目标智能合约(③),目标智能合约执行后将结果放在交易内容中返回代理合约(④),代理合约向用户地址发布一个的交易,传输执行返回的结果(⑤),这样就完成了代理策略的更换全部流程。
在优选的实施例中,所述用于智能合约的代理防火墙防护方法,还包括:
根据智能合约发布者发出的销毁代理合约指令,所述代理防火墙采用selfdestruct函数销毁所述代理合约。
具体的,本实施例还提供了代理防火墙中的代理合约的销毁方法,当需要销毁代理合约时,向代理合约发布一个交易,在交易中调用代理合约的selfdestruct函数即可以销毁代理合约。
其中,selfdestruct(address recipient)函数用来摧毁当前的合约,并将该合约的以太币转移到给定的地址。selfdestruct实际上是一种操作码(opcode),因此其实已经内置在EVM(以太坊虚拟机)中。以参数形式传递给selfdestruct的那个地址会在合约代码被删除前接收存储在合约中的所有以太币。
在具体的实施例中,以智能合约重入漏洞为例,在该漏洞的情景下,SendBalance智能合约中的withdraw函数可以将合约中的以太币转给调用的地址(类似银行取钱操作)。攻击者编写Attack智能合约(①),使用Attack智能合约来调用SendBalance智能合约中的withdraw函数,withdraw函数将调用Attack合约中的fallback函数,而攻击者在fallback函数中再次调用了withdraw函数,这样循环调用下去,直到燃料值用完或是TheDAO余额用完,攻击者将借此漏洞获取到大量以太币。
而实施本发明实施例的用于智能合约的代理防火墙,能够有效防御重入漏洞流程,具体防御流程如下:
如图3所示,首先代理防火墙提供商编写一个代理合约Proxy,Proxy合约需要实时分析SendBalance合约的运行状态和结果。接着,代理防火墙提供商将代理合约发布上链,TheDAO向用户提供Proxy合约来进行取钱操作,恶意用户若想利用SendBalance合约中的重入漏洞,需要向Proxy合约发布交易(②),使用Proxy合约调用SendBalance合约,Proxy合约使用用户发布的交易中的参数调用SendBalance合约中的withdraw函数,withdraw函数将调用Proxy合约中的fallback函数,而Proxy合约中的fallback函数中没有恶意的循环调用代码。取钱操作执行一次后就停止了,Proxy合约将SendBalance合约返回的以太币转给Attack合约(③)。该恶意用户并没有拿到不属于自己的以太币。最后,即使SendBalance合约中由于代码编写不够规范存在可能被恶意利用的重入漏洞,恶意用户依然不能通过该漏洞获得TheDAO的账户。
本实施例提供的一种用于智能合约的代理防火墙防护方法,包括:在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用。
与现有技术相比,本实施例提出一种针对以太坊智能合约安全问题的新型代理防火墙技术,不仅能够保护智能合约的发布者和调用者免受恶意攻击和网络威胁;同时,该方法的“可插拔”特点可以根据需要调整保护方案,易于开展商业化服务。通过新型代理防火墙在用户和目标合约之间提供调用接口,安全策略库内集成了代理合约共有的安全保护策略,进而实现智能合约的安全调用,保证合约发布者和调用者的安全;用户通过调用代理合约来间接调用目标合约;而对于开发者而言,开发者能够根据智能合约功能自定义代理策略,还可以通过更新代理合约状态实现代理策略的变更。
本发明第二实施例:
请参阅图4-5。
如图4所示,本实施例提供了一种用于智能合约的代理防火墙防护系统,包括:
交易发布模块100,用于在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;
具体的,对于交易发布模块100,用户发布一个交易来调用代理防火墙合约,代理防火墙根据安全策略对交易的参数内容进行检查,例如发送方地址是否在保护策略库的黑名单中等。
智能合约调用模块200,用于在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;
具体的,对于智能合约调用模块200,安全检查之后将源地址改为代理合约的地址之后将一个新的交易发给外部的目标合约,这样外部的合约接到的调用是来自于代理防火墙而不是用户。
交易更新模块300,用于在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;
交易返回模块400,用于通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用。
具体的,对于交易更新模块300和交易返回模块400,目标合约应答的交易将发送到代理防火墙,经过代理防火墙检查允许通过后,代理防火墙向用户地址发布一个的交易,传输执行返回的结果。
在优选的实施例中,如图5所示,所述用于智能合约的代理防火墙防护系统,还包括:
安全策略模块,用于根据智能合约发布者的需求,通过保护策略库预先设置对应的安全策略;其中,所述安全策略包括访问控制策略、交易过滤策略、恶意行为检测策略和主动防御策略;
具体的,对于安全策略模块,代理合约提供商的保护策略库中可以设置访问控制、交易过滤、恶意行为检测和主动防御等策略,保护策略库内集成了代理合约共有的安全保护策略。
代理合约上链模块,用于在通过保护策略库预先设置对应的安全策略后,所述代理防火墙将代理合约发布上链,以使用户能够正常调用所述代理合约。
具体的,对于代理合约上链模块,根据智能合约发布者的要求,代理合约依赖于保护策略库合约并添加针对智能合约的个性化保护需求,并将代理合约发布上链,使得代理合约可以被用户正常调用。
在优选的实施例中,如图5所示,所述用于智能合约的代理防火墙防护系统,还包括:
代理策略更换模块,用于根据智能合约发布者发出的更换代理策略指令,通过所述代理防火墙更改所述代理合约的状态信息。
具体的,对于代理策略更换模块,当用户需要更换安全策略时,代理合约提供商将会根据发布者的新需求,向代理合约发布一笔交易,更改代理合约的状态,例如代理合约中的调用次数、操作类型等参数,使得代理合约满足发布者的新需求。而后,用户代理合约发布交易,代理合约根据新的安全策略进行检查,并将源地址改为代理合约的地址,向目标合约发布一个交易,以此调用目标智能合约,目标智能合约执行后将结果放在交易内容中返回代理合约,代理合约向用户地址发布一个的交易,传输执行返回的结果,这样就完成了代理策略的更换全部流程。
在优选的实施例中,如图5所示,所述用于智能合约的代理防火墙防护系统,还包括:
代理合约销毁模块,用于根据智能合约发布者发出的销毁代理合约指令,所述代理防火墙采用selfdestruct函数销毁所述代理合约。
具体的,对于代理合约销毁模块,当需要销毁代理合约时,向代理合约发布一个交易,在交易中调用代理合约的selfdestruct函数即可以销毁代理合约。
其中,selfdestruct(address recipient)函数用来摧毁当前的合约,并将该合约的以太币转移到给定的地址。selfdestruct实际上是一种操作码(opcode),因此其实已经内置在EVM(以太坊虚拟机)中。以参数形式传递给selfdestruct的那个地址会在合约代码被删除前接收存储在合约中的所有以太币。
本实施例提供的一种用于智能合约的代理防火墙防护系统,包括:交易发布模块,用于在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;智能合约调用模块,用于在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;交易更新模块,用于在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;交易返回模块,用于通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用。
本实施例通过提供一种用于智能合约的代理防火墙防护系统,为用户和目标合约之间提供调用接口,实现智能合约的安全调用,代理合约实时和高效的分析智能合约运行状态,实现精准、高效且及时的对智能合约进行访问控制、交易过滤、恶意行为检测和主动防御。以此保证用户的交易安全。
本发明的一个实施例还提供了一种用于智能合约的代理防火墙防护的终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述的用于智能合约的代理防火墙防护方法。
本发明的一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述的用于智能合约的代理防火墙防护方法。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的系统实施例仅仅是示意性的,例如所述模块的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和变形,这些改进和变形也视为本发明的保护范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (6)
1.一种用于智能合约的代理防火墙防护方法,其特征在于,至少包括如下步骤:
在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;
在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;
在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;
通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用;
所述方法,还包括:
根据智能合约发布者的需求,在通过保护策略库预先设置对应的安全策略后,所述代理防火墙将代理合约发布上链,以使用户能够正常调用所述代理合约;其中,所述安全策略包括访问控制策略、交易过滤策略、恶意行为检测策略和主动防御策略;
根据智能合约发布者发出的更换代理策略指令,通过所述代理防火墙更改所述代理合约的状态信息,具体包括:
代理合约提供商根据智能合约发布者的新需求,向代理防火墙中的代理合约发布一笔交易,更改代理合约的状态;
用户调用代理防火墙中的代理合约发布交易,代理合约根据新的安全策略进行检查,并将源地址改为代理合约的地址,向目标智能合约发布一个交易,以使所述代理防火墙进行目标智能合约的调用;
在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;
通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理策略的更换。
2.根据权利要求1所述的用于智能合约的代理防火墙防护方法,其特征在于,还包括:
根据智能合约发布者发出的销毁代理合约指令,所述代理防火墙采用selfdestruct函数销毁所述代理合约。
3.一种用于智能合约的代理防火墙防护系统,其特征在于,能够执行权利要求1所述的用于智能合约的代理防火墙防护方法,包括:
交易发布模块,用于在用户通过发布交易后调用代理防火墙中的代理合约,代理防火墙根据预设的安全策略对该交易的参数内容进行安全检查;
智能合约调用模块,用于在通过所述安全检查后,所述代理防火墙将该交易的源地址改为代理合约的地址,并向目标智能合约发布该交易,以使所述代理防火墙进行目标智能合约的调用;
交易更新模块,用于在完成所述目标智能合约的调用后,所述代理防火墙将交易执行结果更新至交易内容后返回至所述代理合约;
交易返回模块,用于通过所述代理合约将更新后的交易发布至用户地址,以使所述代理防火墙将所述交易执行结果传输至用户,完成所述代理合约的调用;
安全策略模块,用于根据智能合约发布者的需求,通过保护策略库预先设置对应的安全策略;其中,所述安全策略包括访问控制策略、交易过滤策略、恶意行为检测策略和主动防御策略;
代理合约上链模块,用于在通过保护策略库预先设置对应的安全策略后,所述代理防火墙将代理合约发布上链,以使用户能够正常调用所述代理合约;
代理策略更换模块,用于根据智能合约发布者发出的更换代理策略指令,通过所述代理防火墙更改所述代理合约的状态信息。
4.根据权利要求3所述的用于智能合约的代理防火墙防护系统,其特征在于,还包括:
代理合约销毁模块,用于根据智能合约发布者发出的销毁代理合约指令,所述代理防火墙采用selfdestruct函数销毁所述代理合约。
5.一种用于智能合约的代理防火墙防护的终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至2中任意一项所述的用于智能合约的代理防火墙防护方法。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至2中任意一项所述的用于智能合约的代理防火墙防护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492143.4A CN111654494B (zh) | 2020-06-02 | 2020-06-02 | 一种用于智能合约的代理防火墙防护方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010492143.4A CN111654494B (zh) | 2020-06-02 | 2020-06-02 | 一种用于智能合约的代理防火墙防护方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111654494A CN111654494A (zh) | 2020-09-11 |
CN111654494B true CN111654494B (zh) | 2022-06-07 |
Family
ID=72344083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010492143.4A Active CN111654494B (zh) | 2020-06-02 | 2020-06-02 | 一种用于智能合约的代理防火墙防护方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111654494B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113595986B (zh) * | 2021-06-30 | 2023-02-21 | 广州大学 | 一种基于智能合约防火墙框架的智能合约拦截方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474599A (zh) * | 2018-11-19 | 2019-03-15 | 杭州安恒信息技术股份有限公司 | 基于区块链的网络防护方法及装置 |
CN110619523A (zh) * | 2019-09-26 | 2019-12-27 | 成都链安科技有限公司 | 一种区块链智能合约防火墙防护方法及系统 |
CN111199489A (zh) * | 2018-11-16 | 2020-05-26 | 上海派链信息科技有限公司 | 用于跨区块链资产管理的方法、设备、计算机可读存储介质和计算机程序产品 |
-
2020
- 2020-06-02 CN CN202010492143.4A patent/CN111654494B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111199489A (zh) * | 2018-11-16 | 2020-05-26 | 上海派链信息科技有限公司 | 用于跨区块链资产管理的方法、设备、计算机可读存储介质和计算机程序产品 |
CN109474599A (zh) * | 2018-11-19 | 2019-03-15 | 杭州安恒信息技术股份有限公司 | 基于区块链的网络防护方法及装置 |
CN110619523A (zh) * | 2019-09-26 | 2019-12-27 | 成都链安科技有限公司 | 一种区块链智能合约防火墙防护方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111654494A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8769305B2 (en) | Secure execution of unsecured apps on a device | |
CN111770198B (zh) | 一种信息共享方法、装置及设备 | |
KR20200094618A (ko) | 스마트 컨트랙트 유사도 분석을 이용한 소스 코드 감사 방법 및 그 장치 | |
CN111770112B (zh) | 一种信息共享方法、装置及设备 | |
CN109697670B (zh) | 一种不影响可信度的公链信息屏蔽方法 | |
CN113506110A (zh) | 一种数据处理方法及设备 | |
CN105550584A (zh) | 一种Android平台下基于RBAC的恶意程序拦截及处置方法 | |
CN111639125A (zh) | 基于区块链的资源流通方法及装置 | |
CN112202704A (zh) | 一种区块链智能合约安全防护系统 | |
WO2023035751A1 (zh) | 移动端应用的智能混淆 | |
CN111950035A (zh) | 对apk文件完整性保护的方法、系统、设备及存储介质 | |
CN111654494B (zh) | 一种用于智能合约的代理防火墙防护方法及系统 | |
CN110008693A (zh) | 安全应用程序加密保证方法及装置与系统和存储介质 | |
CN113672901A (zh) | 访问请求处理方法、容器云平台、电子设备及存储介质 | |
US8516447B2 (en) | Computer-implemented method and system for binding digital rights management executable code to a software application | |
KR101962285B1 (ko) | 블록체인 기반의 사용자 식별 관리를 위한 분산 원장 장치 및 분산 원장 방법 | |
EP3696698A1 (en) | Method of protecting a software program against tampering | |
KR102247233B1 (ko) | 다중 레이어 기반 스마트 컨트랙트 감사 방법 및 그 장치 | |
Sharma et al. | A survey of Mythril, a smart contract security analysis tool for EVM bytecode | |
Li et al. | Research on blockchain smart contracts vulnerability and a code audit tool based on matching rules | |
US11343279B2 (en) | System and methods for developing secure platform to deliver end-to-end protection and safety for transactions using multi-dimensional, multi-layered security control | |
Wang et al. | Account abstraction, analysed | |
CN113469811A (zh) | 区块链交易处理方法及装置 | |
CN108427559B (zh) | 一种脚本文件生成和调用方法以及装置 | |
CN112906045A (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 |