CN111787017B - 一种区块链攻击溯源系统及方法 - Google Patents
一种区块链攻击溯源系统及方法 Download PDFInfo
- Publication number
- CN111787017B CN111787017B CN202010638042.3A CN202010638042A CN111787017B CN 111787017 B CN111787017 B CN 111787017B CN 202010638042 A CN202010638042 A CN 202010638042A CN 111787017 B CN111787017 B CN 111787017B
- Authority
- CN
- China
- Prior art keywords
- data
- transaction
- tree
- relation tree
- attacker
- 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/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/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/146—Tracing the source of attacks
-
- 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
Abstract
本发明涉及信息安全技术领域,提供了一种区块链攻击溯源系统及方法,其主旨在于解决区块链中检测到攻击威胁也无法追溯到攻击者的技术问题。其主要方案包括数据采集模块:在full同步过程中,抓取交易数据,得到交易及其交易信息;交易数据库构建模块:根据得到的交易及其交易信息建立外部交易信息表、内部交易信息表以及合约创建信息表,并且提供数据查询的API,其中的数据主要包括交易双方,以及交易的区块高度、交易金额、消耗的gas;数据关系树构建模块:通过数据库的API来获取交易数据,来构建数据关系树;溯源攻击者模块:根据已经建好的数据关系树,在此基础上进行污点标记,最后根据污点标记的深度来定位攻击者。
Description
技术领域
本发明是属于区块链安全领域,当智能合约遭受攻击后,根据该方法溯源找到攻击该合约的源头。该方法通过建立数据关系树,直观表现了合约、用户之间的联系,加深了区块链网络的影响结构。溯源到攻击源头后调用安全机制处理可大大增强区块链安全性。
背景技术
利用智能合约对这些区块链应用的攻击层出不穷。目前许多人都投身于研究如何去防治这些攻击,保护链上的资产。但难点在于智能合约的代码在链上是字节码状态,人工无法有效解读,一旦部署就无法更改,且智能合约的所有者也都是非实名状态。目前,国内外针对于区块链上实时威胁感知与溯源的方面的研究主要包括基于静态分析的威胁感知技术和基于动态分析的威胁感知技术。
静态分析是对软件的原始数据进行分析,比如代码、API调用等静态特征,这种检测手段相比于动态检测,对于硬件资源的需求更少,分析速度较快,同时也更擅长分析大型软件,并且相应的静态特征越多,结果就越精确。
Osiris一种结合符号执行和污点分析的工具,自动准确的找到智能合约字节码中的整数溢出错误,包括算术错误、截断错误和符号转换错误。Osiris基于符号执行发掘漏洞,并利用污点分析来减少误报,如识别整数错误时的预期检查。该工具检测性能良好,在超过了120万个智能合约上检测到了42108个合约有整数错误,此外,更是发现了一些未知错误。但是Osiris只能针对单个智能合约进行污点分析,无法分析多个智能合约之间存在的漏洞,并且Etherscan列出了超过90,000个基于Ethereum区块链的ERC-20令牌智能合约。但Osiris分析了其中的495个样本,只是冰山一角。
SmartCheck一种可以检测智能合约中代码问题的可扩展的静态分析工具。该方案使用ANTLR自定义Solidity语法将Solidity源代码转换为XML生成树作为中间表示(IR),在用XPath查询来检测漏洞。此方案可以反映Solidity漏洞的当前状态,并显示出对替代方案的重大改进。但该方案也有其局限性,一些错误的检测需要更复杂的技术,仅仅用当前的方法不可行。SmartCheck也有它的局限性,比如检测一些bug需要更复杂的技术,比如污染分析是手工审计的。
相比于基于静态分析的检测技术,基于动态分析的检测技术能够发现运行时
环境中引入的漏洞,并且能够识别静态分析中可能是误报的漏洞,因此基于动态
分析的威胁感知技术的准确性更高。该方法主要是在程序运行时来观察其动态系统特征,结合先前设计好的工具来进行检测。虽然攻击者可以对合约代码进行处理,改变攻击方式。但对于他的攻击行为是无法进行模糊处理的,即攻击者的攻击行为无法被隐藏。
ECFChecker一种全新的分析工具,该工具通过定义一个新的属性,即有效回调(ECF)来检测重入漏洞。当存在没有可以实现相同状态转换的回调的等效执行时,执行是ECF。如果合同的所有可能执行都符合ECF,则整个合同被视为ECF特征。因此,非ECF合同被认为易受重入攻击的影响,因为回调会影响合同执行时的州过渡。一般来说,静态证明ECF财产是不可判定的。但是,格罗斯曼等人还开发了一个动态检查器,可以显示交易是否违反了合同的ECF属性。但是这种方法并未涵盖所有的重入式攻击。
尽管基于动态分析的检测技术能够检测出更多的威胁与漏洞,但往往所需要的资源也是很多的,链上的资源也是有限的。同时,随着智能合约代码功能的复杂化,动态分析的执行路径也越来越多,所花费的时间也在增多。
发明内容
本发明公开了一种基于污点标记技术的攻击溯源方案。在传统的区块链架构中,当检测到“重入”、“双花”等攻击威胁后,由于区块链上账户的非实名性和攻击者可能通过控制或利用其他“中间智能合约或中间用户”来进行攻击。所以,就算在区块链中检测到攻击威胁也无法追溯到攻击者。因此,需要研究合理的威胁溯源技术,有效地、快速地、准确地溯源到攻击者,并实现对区块链上的资产损失的统计与回溯。本发明的威胁溯源技术,解决了当前方案中资源消耗高、反应时间久的缺点,能够有效地、快速地、准确地溯源到攻击者,并实现对区块链上的资产损失的统计与回溯。
本发明为解决上述技术问题,采用以下技术方案:
区块链攻击溯源系统的实现,包括:
数据采集模块: 特殊处理过的ethereum客户端,也就是可以在full同步过程中,根据执行的相应指令,抓取交易数据,最终将所有的交易及其交易信息获取。
交易数据库构建: 主要功能为接收客服端数据,并且建立外部交易信息表、内部交易信息表以及合约创建信息表,其中的数据主要包括交易双方、以及交易的区块高度、交易金额、消耗的gas等等。并且提供数据查询API。
数据关系树构建: 通过数据库的API来获取交易数据,来构建数据关系树。包括money flow tree(MFT)、 smart contract creation tree(CCT)、 smart contractinvocation tree(CIT)三种数据关系树。
溯源攻击者:根据已经建好的数据关系树,在此基础上进行污点标记,最后根据污点标记的深度来定位攻击者。
本法对上述四种模块的主要流程包括:
A、因为在智能合约交易过程中,会产生很多的内部交易,现有的方法是不能采集所有的内交易的,因此采用特殊的etheruem,使用全同步方式,执行所有交易,从中获取所有的内部交易,然后将数据进行暂存。
B、在采集模块拿到初试数据之后,需要对数据排列进行筛选,提取所需要的关键信息,比如:交易双方地址,创建合约的交易等等。然后使用设置规则存储数据,并且提供查询的API。
C、 通过上一层的API获取,攻击合约的所有交易信息,然后构建money flow tree(MFT)、 smart contract creation tree(CCT)、 smart contract invocation tree(CIT)三种数据关系树。
D、在上一层的基础,本系统使用基于污点分析的方式对数据关系树进行污点标注,并对找出背后的攻击者。
进一步的,在步骤C的建立数据关系树的过程中,通过对交易信息中攻击者合约创建链进行回溯查询,收集创建者信息,并由此建立一棵创建者关系树。然后对攻击者合约的调用链进行回溯查询,收集所有的调用者信息,并建立一棵调用者关系树。最后对交易信息的金钱流向关系链进行回溯查询,得到一棵金钱的流向关系树。
具体的,在我们的系统中,我们采取以下步骤来检测可疑帐户。基本思想是,如果攻击者将资产数据从恶意帐户转移到任何其他帐户,则目标帐户很有可能与攻击者建立了连接。攻击者没有理由将资产数据转移到与之没有关系的帐户。请注意,攻击者可以将资产数据转移到加密货币市场,在那里他可以将其与其他类型的加密货币或真实货币交换。在我们的系统中,将这些市场从可疑帐户中删除。
进一步的,在此基础上,我们使用了类似的污点分析的数据标注方法来查找可疑帐户。在步骤D中所采用的基于污点分析的算法为:
1)在 CIT 中搜索与该智能合约有相互调用关系的智能合约节点,记录下这 些可疑智能合约节点。
2)在 CCT 中搜索可疑智能合约节点的后继节点,直至溯源到根节点,即该 恶意智能合约的创建用户,也就是攻击者。
3)在 MFT 中搜索与发生攻击威胁的智能合约相连的节点,通过计算权值(转账金额)来计算出此次攻击的损失
具体来说,我们将系统捕获的恶意帐户视为污点源,并通过交易流传播污点标签,直到到达污点汇为止,即加密货币市场。如果遍历的帐户数达到一定阈值,我们也会停止此过程。在我们的系统中,我们使用一个定值作为阈值。只要端点是加密货币市场,从污点源到污点汇的路径中的所有帐户都被视为污点和可疑的。如果在标记过程中有点用户地址的受标记程度的超过阈值即被标记为攻击者。
本发明因为采用上述技术方案,因此具备以下有益效果:
现目前的很多数据平台,其的数据完整性与准确性存在或多或少的问题,上述的技术方案能够很好的规避这两个问题,并且可以提高数据的查询速率。
在建立好数据关系树之后,采取类似污点标记的可疑度加深的方式,可以大大提高威胁感知的准确性。
排除交易市场等噪声数据,能提高最后结果的可信性,以及算法的运行效率。
附图说明
图1 污点追踪器流程;
图2 攻击者溯源流程图;
图3为框架示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
一、数据库的构建
本发明为了解决在攻击威胁被检测到后的溯源问题,在区块链运行的过程中收集全部的交易数据,提取其中最主要的三种活动的数据,即转账、智能合约创建、智能合约调用,分别构建 money flow tree(MFT)、 smart contract creation tree(CCT)、 smartcontract invocation tree(CIT),存入图数据库中,该数据库具有可编程性,即提供常规的查询、写入等数据库功能。
构建树:如图 1所示,收集交易信息后,将所有的信息提出,按照更新流程加入相关的存入数据库中,然后构建数据关系树,数据库支持查询、写入等操作。具体流程如下:
发起交易:链上用户通过客户端发起交易。
信息收集:主要就是收集交易中的数据,因为账户要发生交易都需要利用客户端发起交易,所以本发明在客户端嵌入代码来获取所有的交易信息。本发明发现创建交易时的 5 种操作指令,分别是 CREATE、CALL、CALLCODE、 DELEGATE -CALL、SELFDESTRUCT。前两个是用于创建和调用智能合约,后两个也是用于创建和调用智能合约,但被调用的智能合约要在嵌入到调用者的代码中运行,最后一个用于移除智能合约。故而,本发明在这 5 个指令的 handler, 在指令成功执行后插入代码,获取信息。例如,CREATE 指令成功执行后,本课 题的代码就会记录所创建智能合约的创建者地址、智能合约地址等重要信息。
二、种树的定义、性质及更新:
MFT:父节点向子节点发送交易,权值为转账金额。MFT 是加权树。
更新MFT的流程:本发明解析每一笔交易中的value域的值来判断此交易 的信息是否写入MFT中,如果 value 不为 0,则 value 的值即为转账金额;如果 用户与用户之间没有连线,则将他们连上线,且权值value;若有连线, 则在原权值的基础上加上 value 为新的权值。
CCT:由父节点创建子节点合约。
更新 CCT 的流程:本发明同样也是通过信息获取得到创建合约的信息,在 图中加入新的点与边。同时本发明可以根据 CCT 的定义得出,该树的所有叶子节点都是合约,且每棵树的根节点为一个用户节点。
CIT:父节点调用子节点合约,并且包含权值,实质是合约调用的次数。
更新CIT的流程:本发明在每笔交易中提取sender和recipient的地址来创建节点,并且,如果两个节点之间没有连线,则连上线并权值赋为1,如果有连 线则权值+1。
三、 基于树的区块链安全威胁溯源
在攻击检测器检测到攻击威胁后,会调用本发明建立的数据库 API ,并绘制关系树来溯源到攻击者。在这里,本发明利用在图数据库中建立的 MFT、CCT、CIT三种图来进行威胁溯源。如图 2 所示,具体的溯源流程如下:
1)、在CIT中搜索与该智能合约有相互调用关系的智能合约节点,记录下这些可疑智能合约节点。
2)、在CCT中搜索可疑智能合约节点的后继节点,直至溯源到根节点,即该 恶意智能合约的创建用户,也就是攻击者。
3)、在MFT中搜索与发生攻击威胁的智能合约相连的节点,通过计算权值(转账金额)来计算出此次攻击的损失。
4)、在溯源到全部信息后,将溯源信息返回。
Claims (4)
1.一种区块链攻击溯源系统,其特征在于,包括:
数据采集模块:在full同步过程中,抓取交易数据,最终将所有的交易及其交易信息获取,得到已经执行交易数据;
交易数据库构建模块: 根据得到的交易数据建立外部交易信息表、内部交易信息表以及合约创建信息表,并且提供数据查询的API,其中的数据包括交易双方、以及交易的区块高度、交易金额、消耗的gas、交易双方地址、创建合约的交易;
数据关系树构建模块:通过数据库的API来获取交易数据,来构建数据关系树;构建数据关系树包括金钱的流向关系树、创建者关系树、调用者关系树这三种数据关系树;
溯源攻击者模块:根据已经建好的数据关系树,在此基础上进行污点标记,最后根据污点标记的深度来定位攻击者;
溯源攻击者模块采用污点分析的数据标注技术的分析算法来查找攻击者,从三种数据关系树中对地址进行标记,最后根据污点标记的深度来定位攻击者,具体包括:
1)在调用者关系树中搜索与智能合约有相互调用关系的智能合约节点,记录下这些可疑智能合约节点;
2)在创建者关系树中搜索可疑智能合约节点的后继节点,直至溯源到根节点,即恶意智能合约的创建用户,也就是攻击者;
3)在金钱的流向关系树中搜索与发生攻击威胁的智能合约相连的节点,通过计算权值来计算出此次攻击的损失。
2.根据权利要求1所述的区块链攻击溯源系统,其特征在于,数据关系树构建模块中:
通过对交易信息中攻击者合约创建链进行回溯查询,收集创建者信息,并由此建立一棵创建者关系树;
对攻击者合约的调用链进行回溯查询,收集所有的调用者信息,并建立一棵调用者关系树;
对交易信息的金钱流向关系链进行回溯查询,得到一棵金钱的流向关系树。
3.一种区块链攻击溯源方法,其特征在于,包括以下步骤:
A、使用全同步方式,执行所有交易,从中获取所有的内部交易,然后将交易数据进行暂存;
B、对交易及其交易信息数据排列进行筛选,提取所需要的关键信息,然后使用设置规则存储数据,并且提供查询的API;
C、通过上一层的API获取,攻击合约的所有交易信息,来构建数据关系树,数据关系树包括金钱的流向关系树、创建者关系树、调用者关系树这三种数据关系树;
D、使用基于污点分析的方式对数据关系树进行污点标注,并找出背后的攻击者;
在步骤D中所采用的基于污点分析的算法为:
1)在 调用者关系树 中搜索与智能合约有相互调用关系的智能合约节点,记录下这些可疑智能合约节点;
2)在创建者关系树中搜索可疑智能合约节点的后继节点,直至溯源到根节点,即该恶意智能合约的创建用户,也就是攻击者;
3)在金钱的流向关系树中搜索与发生攻击威胁的智能合约相连的节点,通过计算权值来计算出此次攻击的损失。
4.根据权利要求3所述的一种区块链攻击溯源方法,其特征在于:
在步骤C的建立数据关系树的过程中,通过对交易信息中攻击者合约创建链进行回溯查询,收集创建者信息,并由此建立一棵创建者关系树;
对攻击者合约的调用链进行回溯查询,收集所有的调用者信息,并建立一棵调用者关系树;
对交易信息的金钱流向关系链进行回溯查询,得到一棵金钱的流向关系树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010638042.3A CN111787017B (zh) | 2020-07-02 | 2020-07-02 | 一种区块链攻击溯源系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010638042.3A CN111787017B (zh) | 2020-07-02 | 2020-07-02 | 一种区块链攻击溯源系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111787017A CN111787017A (zh) | 2020-10-16 |
CN111787017B true CN111787017B (zh) | 2021-09-21 |
Family
ID=72759403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010638042.3A Active CN111787017B (zh) | 2020-07-02 | 2020-07-02 | 一种区块链攻击溯源系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111787017B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112131571B (zh) * | 2020-11-20 | 2021-03-19 | 腾讯科技(深圳)有限公司 | 威胁溯源方法及相关设备 |
CN112492588B (zh) * | 2020-12-03 | 2022-07-12 | 桂林电子科技大学 | 一种基于动态令牌的多路径源节点位置隐私保护路由方法 |
CN113190330B (zh) * | 2021-05-26 | 2022-06-24 | 电子科技大学 | 一种区块链威胁感知系统及方法 |
CN113553617B (zh) * | 2021-07-21 | 2022-04-26 | 东北大学秦皇岛分校 | 一种基于区块链的跨域协同溯源系统及方法 |
CN116074092B (zh) * | 2023-02-07 | 2024-02-20 | 电子科技大学 | 一种基于异构图注意力网络的攻击场景重构系统 |
CN116663012B (zh) * | 2023-05-31 | 2023-11-03 | 烟台大学 | 一种跨合约漏洞的检测方法、系统和设备 |
CN116506231B (zh) * | 2023-06-28 | 2023-10-03 | 广东长盈科技股份有限公司 | 基于区块链的网络安全事件溯源追踪方法、系统 |
CN117522583B (zh) * | 2024-01-08 | 2024-04-26 | 江苏通付盾科技有限公司 | 一种基于余额分析的链上合约攻击交易检测方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3125489B1 (en) * | 2015-07-31 | 2017-08-09 | BRITISH TELECOMMUNICATIONS public limited company | Mitigating blockchain attack |
CN110113328B (zh) * | 2019-04-28 | 2021-01-15 | 武汉理工大学 | 一种基于区块链的软件定义机会网络DDoS防御方法 |
CN111079136B (zh) * | 2019-11-07 | 2022-02-11 | 北京科技大学 | 一种基于区块链技术的雾计算入侵检测特征共享系统 |
CN111090837A (zh) * | 2019-12-06 | 2020-05-01 | 上海科乐宜信息科技有限公司 | 基于区块链技术的智能追踪方法 |
-
2020
- 2020-07-02 CN CN202010638042.3A patent/CN111787017B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111787017A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111787017B (zh) | 一种区块链攻击溯源系统及方法 | |
CN106790186B (zh) | 基于多源异常事件关联分析的多步攻击检测方法 | |
US10313382B2 (en) | System and method for visualizing and analyzing cyber-attacks using a graph model | |
Wang et al. | Blockeye: Hunting for defi attacks on blockchain | |
WO2016132992A1 (ja) | ブラックリスト生成装置、ブラックリスト生成システム、ブラックリスト生成方法及びブラックリスト生成プログラム | |
CN112269316B (zh) | 一种基于图神经网络的高鲁棒性威胁狩猎系统与方法 | |
CN113190330B (zh) | 一种区块链威胁感知系统及方法 | |
Xu et al. | Depcomm: Graph summarization on system audit logs for attack investigation | |
CN113139192B (zh) | 基于知识图谱的第三方库安全风险分析方法及系统 | |
Zhou et al. | CTI view: APT threat intelligence analysis system | |
Liao et al. | Smartdagger: a bytecode-based static analysis approach for detecting cross-contract vulnerability | |
Meng et al. | Androvault: Constructing knowledge graph from millions of android apps for automated analysis | |
Alhanahnah et al. | Detecting vulnerable android inter-app communication in dynamically loaded code | |
Ben Jaballah et al. | A grey-box approach for detecting malicious user interactions in web applications | |
Dawabsheh et al. | An enhanced phishing detection tool using deep learning from URL | |
Kumar et al. | Detection of malware using deep learning techniques | |
WO2022031184A1 (ru) | Система интеллектуаьного управления рисками и уязвимостями элементов инфраструктуры | |
Ianni et al. | Scout: Security by computing outliers on activity logs | |
CN116938587A (zh) | 基于溯源图行为语义提取的威胁检测方法及系统 | |
US9876809B2 (en) | Standard metadata model for analyzing events with fraud, attack, or any other malicious background | |
Pardhi et al. | Implementation of a malware scanner using signature-based approach for android applications | |
Mei et al. | CTScopy: hunting cyber threats within enterprise via provenance graph-based analysis | |
Mei et al. | Ransomlens: Understanding ransomware via causality analysis on system provenance graph | |
Gadgikar | Preventing SQL injection attacks using negative tainting approach | |
Xiu-yu | A model of online attack detection for computer forensics |
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 |