以太坊-联盟链异构跨链系统的攻击检测与防护方法
未命名
09-23
阅读:115
评论:0
1.本发明涉及网络攻击检测技术领域,尤其涉及一种以太坊-联盟链异构跨链系统的攻击检测与防护方法。
背景技术:
2.跨链:指将不同的区块链系统连接在一起,允许它们之间进行数据共享和资产转移的技术。
3.以太坊-联盟链:指将以太坊公有链和不同的联盟链系统连接在一起,以实现跨平台交互和协同工作。这种技术组合可以为企业和组织提供更多的选择和灵活性,提高整个区块链生态系统的效率和互操作性。
4.孪生网络:是一种基于神经网络的模型结构,两个完全相同的神经网络共享权重,并且输入分别通过这两个网络,输出被用来比较两个输入之间的相似性,通常应用于解决相似性度量问题。
5.不同区块链项目的共识机制、数据结构和网络协议是完全不一样的。所以不同区块链之间无法直接进行互操作,阻碍了链间资产转移和数据交换,造成了数据孤岛的现象。每个区块链可以定义各种代币,随着区块链项目的不断涌现,代币的种类和数量也不断增加,但是不同的区块链不能直接交换代币或传递信息。跨链技术的出现,解决了不同区块链之间无法互操作的问题,使不同的区块链网络之间实现互联互通,提高了跨不同类型区块链网络查看和访问数据的能力。然而对于跨链系统来说,任何漏洞都可能导致跨链交易各方的重大经济损失。2018年3月,一种基于比特币网络的扩展协议—闪电网络遭受了分布式拒绝服务(ddos)攻击,导致大约200个节点暂时失去功能并离线,结果节点数量从约1050个下降到870个;2019年10月,一个名为zipotm的闪电网络用户报告称,由于无效状态导致闪电通道被迫关闭,损失了4个btc;2021年3月,tsd dao账户被黑客利用,生成了118亿枚虚假的tsd代币并进行了出售,导致以太坊和币安智能链上的tsd跨链稳定货币遭受重大损失。因此,确保跨链系统的安全对于实现跨链交易的可持续性和可靠性至关重要。
6.跨链系统中的以太坊智能合约与单链智能合约区别主要有以下几点:
7.1)跨链交互,跨链上的以太坊合约需要实现与其他区块链的互操作性,并能够进行跨链交互。因此,在编写跨链合约时,需要考虑如何与其他区块链上的合约进行通信并传输数据和价值;
8.2)跨链认证:跨链交易需要经过认证和授权才能进行。跨链上的以太坊合约需要考虑如何对参与者进行身份验证并授予访问权限;
9.3)跨链通信协议:跨链交易需要涉及多个区块链之间的数据传输,因此跨链上的以太坊合约需要采用相应的跨链通信协议,以确保数据能够正确、安全地传输。由于跨链交易涉及多个区块链之间的数据和交易,因此跨链上的以太坊合约需要更高的安全性保障,以确保数据和价值在跨链过程中的安全传输。
10.目前,现有技术中的一种原生链智能合约漏洞检测方案包括:该方案提出eth2vec
静态分析工具,通过神经网络进行自然语言处理,以隐性知识自动学习易受攻击的evm(ethereum virtual machine,以太坊虚拟机)字节码的特征,通过比较目标evm字节码与它已经学习到的evm字节码之间的代码相似性来检测智能合约中的漏洞。该方案的缺点包括:该方案根据evm字节码获取相关的语法信息并采用无监督学习进行训练,但是有监督的设置比无监督的设置更适合于自然语言处理的分类。
11.现有技术中的另一种提供多链支持的攻击检测方案包括:该方案提出了defi攻击检测系统defiscanner,设计包含全局模型、局部模型和融合模型的新型神经网络。在对非结构化的发出事件进行规范化后,利用全局模型丰富规范化发出事件的事务相关特征并利用局部模型提取发出事件的语义特征,通过融合模型进行有效融合以检测defi攻击。该方案的缺点包括:该方案使用word2vec处理应用程序生成的非结构化事件并使用融合模型提取高级语义,但是它只处理事务层的defi攻击,无法发现导致逻辑漏洞的代码。
12.现有技术中的另一种跨分片系统的漏洞检测方案包括:该方案提出了一种基于拜占庭共识机制的跨分片共识协议byzcuit,合并了分片主导和客户端共识协议的功能以防护跨分片的重放攻击。该方案的缺点包括:该方案在设计协议时作出了一些限制性假设,且无法适用于其他类型的跨域攻击。
13.目前有关跨链的研究主要集中于原生链系统的安全威胁和跨链系统面临的应用风险,且大部分研究仍处于理论层面,部分协议的研究也只能针对某一种攻击进行防御,尚未进行全面的攻击分析,更不用说对整个跨链系统的安全性进行相应的分析。对于系统的风险防御措施也是建立在假设链上合约存在风险的情况下提出的,没有对跨链合约进行检测的流程。然而,随着区块链技术的发展进步,不同类型链之间的资产转移和数据交换需求日益增加,那么跨链安全也将成为跨链系统研究中不可或缺的组成部分,研究跨链中的攻击及其防护方法变得愈加重要。
技术实现要素:
14.本发明的实施例提供了一种以太坊-联盟链异构跨链系统的攻击检测与防护方法,以实现对智能合约进行漏洞检测和防护。
15.为了实现上述目的,本发明采取了如下技术方案。
16.一种以太坊-联盟链异构跨链系统的攻击检测与防护方法,包括:
17.对基于以太坊-联盟链的异构跨链系统中以太坊端的智能合约的源码及操作码进行特征提取,提取合约特征,利用提取的合约特征构建含标签的特征数据集和跨链合约漏洞库;
18.以带标签的特征数据集作为跨链智能合约检测模型的输入数据,训练跨链智能合约检测模型进行已知漏洞及未知漏洞的检测,将训练好的跨链智能合约检测模型进行封装作为跨链智能合约漏洞检测包;
19.待检测的智能合约通过智能合约漏洞检测包之后输出检测结果列表,根据检测结果列表在漏洞库中寻找出相应漏洞的修补措施并给出防护指令。
20.优选地,所述的对基于以太坊-联盟链异构跨链系统中以太坊端的智能合约的源码及操作码进行特征提取,利用提取的合约特征构建含标签的特征数据集和跨链合约漏洞库,包括:
21.对以太坊智能合约数据集中的智能合约源码执行以下两类操作:
22.(1)将源码通过solc编译器编译解析后得到操作码文件,对操作码文件进行自然语言处理,获取智能合约bigram分词特征;
23.(2)对源码进行去除注释和空白行等数据清洗操作后,对源代码切分并存储在数组中,加载由预训练模型codebert产生的tokenizer分词器,调用convert_tokens_to_方法根据tokenizer分词器构建好的词典将分词转换为数字序列token id,统计每个合约中每个id出现的次数作为源码token特征;
24.将所述智能合约的bigram分词特征和源码token特征进行融合,得到合约特征。
25.优选地,所述的利用提取的合约特征构建含标签的特征数据集和跨链合约漏洞库,包括:
26.在对所述以太坊智能合约数据集进行特征提取后,根据已知的合约标签进行特征分类,构建含标签的特征数据集,将漏洞类别存放在跨链合约漏洞库中,漏洞库中的信息以字典方式存储,即{“漏洞类型”:[特征组1,特征组2,...]:},所述漏洞类型包括:重入漏洞、时间戳依赖漏洞、交易顺序依赖漏洞、拒绝服务漏洞、未检查返回值漏洞、整数溢出漏洞、蜜罐威胁、假充值漏洞、回滚交易漏洞、空投漏洞、call注入漏洞和call-after-destruct漏洞。
[0027]
优选地,所述的以带标签的特征数据集作为跨链智能合约检测模型的输入数据,训练跨链智能合约检测模型进行已知漏洞及未知漏洞的检测,将训练好的跨链智能合约检测模型进行封装作为跨链智能合约漏洞检测包,包括:
[0028]
以带标签的特征数据集作为跨链智能合约检测模型的输入数据,使用随机森林算法训练跨链智能合约检测模型对所述跨链合约漏洞库中的已知漏洞进行检测;使用vae-gan生成模型训练所述跨链合约漏洞库中的已知漏洞合约特征信息,经过不断地生成对抗输出与原有数据最相似的特征数据,将该数据作为智能合约中可能存在的未知漏洞特征,训练跨链漏洞判别机制对所述未知漏洞特征进行检测,使用孪生网络通过计算待检测合约特征与所述未知漏洞特征之间的欧式距离来评估合约的相似性,对两数据的相似度设定一个阈值,作为是否含有未知漏洞的判断标准;
[0029]
将训练好的跨链智能合约检测模型进行封装,作为跨链智能合约漏洞检测包,该智能合约漏洞检测包中包括两部分:用于已知漏洞检测的随机森林模型和用于未知漏洞检测的漏洞判别机制。
[0030]
优选地,所述的待检测的智能合约通过智能合约漏洞检测包之后输出检测结果列表,根据检测结果列表在漏洞库中寻找出相应漏洞的修补措施并给出防护指令,包括:
[0031]
构建风险防护库,根据所述跨链合约漏洞库中的漏洞类型在风险防护库中依次增加一一对应的修补措施和防护指令,所述风险防护库中的信息以字典方式存储,即{“漏洞类型1”:“防护指令1”,“漏洞类型2”:“防护指令2”,...};
[0032]
将待检测的智能合约输入到所述智能合约漏洞检测包,该智能合约漏洞检测利用随机森林模型对所述待检测的智能合约进行已知漏洞检测,利用漏洞判别机制对所述待检测的智能合约进行未知漏洞检测,输出所述待检测的智能合约的检测结果列表,所述检测结果列表中包括漏洞类型名称,根据所述漏洞类型名称在所述风险防护库中进行查询,获取对应的修补措施和防护指令,当所述检测结果列表中显示合约含有未知漏洞时,给出警
报提醒,对所述待检测的智能合约提出重写要求,中止当前合约的一切行为。
[0033]
由上述本发明的实施例提供的技术方案可以看出,本发明基于eth-fabric异构中继链跨链系统提出了攻击检测与防护方案,构建包含包含特征信息的跨链合约漏洞库用于攻击检测;根据合约特征训练跨链漏洞检测模型,并将其封装为检测包;根据检测结果从防护库中寻找相应的修补措施并给出防护指令;根据漏洞判别机制检测未知漏洞,并为含未知漏洞合约设计链闸机制,阻断跨链系统的未知风险。
[0034]
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0035]
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]
图1为本发明实施例提供的一种基于eth-fabric异构中继链跨链系统的攻击检测与防护方法的实现原理图;
[0037]
图2为本发明实施例提供的一种基于eth-fabric异构中继链跨链系统的攻击检测与防护方法的处理流程图。
具体实施方式
[0038]
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0039]
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
[0040]
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0041]
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
[0042]
本发明实施例构建了eth-fabric的异构中继链跨链系统中的漏洞检测模型,通过随机森林模型和孪生网络对以太坊端未上链智能合约进行检测,进而实现异构链系统的漏洞检测。本发明实施例针对eth-fabric跨链系统中以太坊端可能出现的漏洞提出了检测防
护一体方案,对跨链系统中潜在漏洞风险进行检测并根据检测结果在防护库中查找相应的防护指令并输出。
[0043]
本发明实施例设计了漏洞判别机制,用于判断跨链智能合约中是否存在未知漏洞类型。对于漏洞库中的已知漏洞类型给出检测的标签并到防护库中寻找相应的修补措施,针对未知漏洞类型设计了链闸机制,从根源阻断未知漏洞给整个系统带来的风险。
[0044]
本发明基于eth-fabric异构中继链跨链系统的攻击检测与防护方法的实现原理图如图1所示,具体处理流程如图2所示,包括如下的处理步骤:
[0045]
步骤s1.提取跨链合约特征。
[0046]
对于跨链系统中以太坊端的智能合约的源码及操作码进行特征提取,提取合约特征,利用合约特征数据表达合约中语义信息,合约特征数据还可以用于模型训练。利用提取的合约特征构建含标签的特征数据集。
[0047]
步骤s2.生成智能合约漏洞检测包。
[0048]
以带标签的特征数据集作为跨链智能合约检测模型的输入数据,训练跨链智能合约检测模型进行已知漏洞及未知漏洞的检测,将训练好的跨链智能合约检测模型进行封装作为跨链智能合约漏洞检测包。其中,未知漏洞特征的检测由未知漏洞判别机制实现,将已有漏洞库中的合约特征输入vae-gan生成模型训练得到新的特征,新的特征作为可能存在的其他未知漏洞特征,待检测的合约特征如果符合该新的特征类型,那么将待检测的合约判定为含有未知漏洞的合约。
[0049]
训练结束后,得到训练好的跨链智能合约检测模型。将训练好的跨链智能合约检测模型进行封装作为跨链智能合约漏洞检测包。该智能合约漏洞检测包中包括两部分:用于已知漏洞检测的随机森林模型和用于未知漏洞检测的漏洞判别机制,漏洞判别机制由生成网络和孪生网络组成。
[0050]
步骤s3.执行防护措施。
[0051]
首先定义跨链系统防护库,根据漏洞库中的漏洞类型在防护库中依次增加一一对应的修补措施和防护指令。将待检测的智能合约输入到所述智能合约漏洞检测包,该智能合约漏洞检测利用随机森林模型对所述待检测的智能合约进行已知漏洞检测,利用漏洞判别机制对所述待检测的智能合约进行未知漏洞检测,输出检测结果列表。根据检测结果列表下标在漏洞库中寻找出相应漏洞的修补措施并给出防护指令。若合约被判定为含有未知漏洞,则启动链闸机制,禁止合约上链并且切断后续的跨链交易。
[0052]
进一步地,上述步骤s1具体包括:
[0053]
s11:首先是智能合约数据集的确定,eth-fabric跨链系统中以太坊端部署的智能合约与普通的以太坊智能合约都需要使用solidity等编程语言实现特定的业务逻辑,以便对数据和资产进行管理和操作。而跨链上的以太坊合约需要实现与其他区块链的互操作性,因此在编写跨链合约时需要考虑如何与其他区块链上的合约进行通信并传输数据和价值。但从合约程序特征上来说,其语法规则及函数定义仍然相同。且由于目前无公开的跨链智能合约数据集,因此在研究跨链系统安全时,仍选择公开的以太坊智能合约数据集作为研究对象。
[0054]
s12:提取源码及操作码特征,对以太坊智能合约数据集中的智能合约源码执行以下两类操作:
[0055]
(1)将源码通过solc编译器编译解析后得到操作码文件,接着对操作码文件进行自然语言处理,获取智能合约bigram分词特征;
[0056]
(2)对源码进行去除注释和空白行等数据清洗操作后,对源代码切分并存储在数组中,加载由预训练模型codebert产生的tokenizer分词器,调用convert_tokens_to_方法直接根据tokenizer构建好的词典将分词转换为数字序列token id,统计每个合约中每个id出现的次数作为源码token特征;
[0057]
将上述智能合约bigram分词特征和源码token特征两种特征融合,以表示智能合约的隐含信息。
[0058]
s13:漏洞库构建,在对上述以太坊智能合约数据集进行特征提取后,根据已知的合约标签进行特征分类,将漏洞类别存放在跨链合约漏洞库中,漏洞库中的信息以字典方式存储,即{“漏洞类型”:[特征组1,特征组2,...]:}。本发明对现有的十余种跨链安全威胁漏洞进行分析,包括:重入漏洞、时间戳依赖漏洞、交易顺序依赖漏洞、拒绝服务漏洞、未检查返回值漏洞、整数溢出漏洞、蜜罐威胁、假充值漏洞、回滚交易漏洞、空投漏洞、call注入漏洞、call-after-destruct漏洞。
[0059]
进一步地,上述步骤s2具体包括:
[0060]
s21:已知漏洞的检测,这里是指包含在漏洞库中的检测类型,根据提取到的合约特征进行模型训练,这里在训练时不仅要使用漏洞合约也会使用正常合约,且正常合约的数量往往更多,在有足够多的已有漏洞合约特征后,可以训练出很好的跨链智能合约检测模型,并且能够准确判别智能合约中的漏洞类型。该发明使用了随机森林算法进行训练,智能合约漏洞检测可以高效准确进行。
[0061]
s22:建立未知漏洞判别机制,跨链系统中智能合约面临的风险是多样的,在多种链上合约漏洞类型的基础上,该发明设计用vae-gan生成模型训练目前已知的漏洞合约特征信息,经过不断地生成对抗输出与原有数据最相似的特征数据,将该数据作为智能合约中可能存在的未知漏洞特征。使用孪生网络通过计算待检测合约特征与生成的未知漏洞特征的欧式距离来评估合约的相似性,对两数据的相似度设定一个阈值k,作为是否含有未知漏洞的判断标准。
[0062]
s23:漏洞检测包的封装,检测包中包括了上述s21及s22的检测方案,在封装之后,可以达到输入待检测合约的源码进行已知及未知漏洞的检测的目标。输出漏洞列表表示该合约中含有哪种漏洞信息,例如[1,0,0,1,...,1]代表的检测结果是该合约中含有重入漏洞、拒绝服务漏洞漏洞且含有未知漏洞风险。
[0063]
进一步地,上述步骤s3具体包括:
[0064]
s31:构建风险防护库,根据漏洞库中的漏洞类型在防护库中依次增加一一对应的修补措施和防护指令。防护库中的信息以字典方式存储,即{“漏洞类型1”:“防护指令1”,“漏洞类型2”:“防护指令2”,...}。
[0065]
s32:建立链闸机制,该机制规定当检测结果中显示含有未知漏洞类型时,直接给出警报提醒,对合约提出重写要求,中止当前合约的一切行为以阻断交易风险。
[0066]
s33:输出防护指令,整个系统流程进行到这里时检测包已经给出了待检测合约中的潜在风险类型,此时根据s23中的检测结果列表进行判断。列表的下标对应漏洞类型名称,根据其漏洞类型在字典中查找key值并将其value值输出显示,即给出合约的防护方案。
当检测结果中显示合约含有未知漏洞时启动链闸机制,合约重写。总之,根据检测结果给出可行的防护措施,并在合约修改漏洞语句后成功部署上链才是检测的最终目的。
[0067]
综上所述,本发明方法首次在eth-fabric异构跨链系统中提出了攻击检测和防护一体方案,构建了跨链合约漏洞库,存储已知漏洞类型及其合约特征信息;封装了漏洞检测包,一方面将智能合约漏洞检测的方法移植到跨链系统中的eth端合约的检测,另一方面建立了未知漏洞判别机制,通过生成模型训练得到未知漏洞特征并且使用孪生网络计算待检测合约特征与漏洞特征相似性,判断合约中是否含有未知漏洞;建立攻击防护库,根据漏洞检测的结果作出及时响应,给出对应的防护措施,对于含有未知漏洞的合约启动链闸机制。
[0068]
本发明首次在eth-fabric异构跨链系统中提出了攻击检测和防护一体方案,检测智能合约中的潜在风险并根据检测出的漏洞类型在防护库中查找可行的防护指令,实时呈现给用户。本系统最终的目标就是让合约用户根据系统给出的防护指令对漏洞合约进行修改,再次通过安全检测后将合约重新部署上链。
[0069]
本发明根据实际应用中发生的智能合约攻击类型建立了可行的漏洞库和防护库,漏洞库中给出了十二种已知漏洞类型及其通过检测模型中特征提取模块得到的漏洞合约特征,防护库中包含了十二种漏洞对应的防护措施,两种库中的信息均采用字典的方式存取。
[0070]
本发明设计并封装了漏洞检测包用于实现已知漏洞及未知漏洞的检测,基于数据集中提取到的合约特征训练随机森林算法,并通过漏洞库中已有特征训练vae-gan生成模型得到未知漏洞数据,使用孪生网络计算待检测合约特征与生成的未知漏洞特征的欧式距离以评估合约的相似性,实现未知漏洞的检测。最后,根据检测结果给出及时响应并对含有未知风险的合约启动链闸机制,规避跨链系统中的潜在风险。
[0071]
系统搭建完成后漏洞库及防护库保持不变,防护一个新合约的时间开销主要取决于待检测合约特征提取、漏洞检测以及防护库的响应。首先按照预先定义好的方法自动地从待检测合约中提取源码及操作码特征,通过特征拼接合二为一,特征输入检测包后进行已知漏洞和未知漏洞的双重检测。这里为了提高检测效率且不影响准确率,对提取到的合约特征进行简化以避免数据冗余带来的维数灾难,通过消融实验来说明简化后的特征效果更好、速度更快,证明简化的有效性。检测包的随机森林算法和孪生网络预先在数据集中进行训练,自动地学习并挖掘合约特征,在实际检测过程中展示出了良好的分类性能且在时间开销上也有一定的优势。而防护库响应就是一个简单地查找和展示的过程,其时间基本可以忽略不计,因此整个系统的时间开销并不大。
[0072]
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0073]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
[0074]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部
分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0075]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
技术特征:
1.一种以太坊-联盟链异构跨链系统的攻击检测与防护方法,其特征在于,包括:对基于以太坊-联盟链的异构跨链系统中以太坊端的智能合约的源码及操作码进行特征提取,提取合约特征,利用提取的合约特征构建含标签的特征数据集和跨链合约漏洞库;以带标签的特征数据集作为跨链智能合约检测模型的输入数据,训练跨链智能合约检测模型进行已知漏洞及未知漏洞的检测,将训练好的跨链智能合约检测模型进行封装作为跨链智能合约漏洞检测包;待检测的智能合约通过智能合约漏洞检测包之后输出检测结果列表,根据检测结果列表在漏洞库中寻找出相应漏洞的修补措施并给出防护指令。2.根据权利要求1所述的方法,其特征在于,所述的对基于以太坊-联盟链异构跨链系统中以太坊端的智能合约的源码及操作码进行特征提取,提取合约特征,利用提取的合约特征构建含标签的特征数据集和跨链合约漏洞库,包括:对以太坊智能合约数据集中的智能合约源码执行以下两类操作:(1)将源码通过solc编译器编译解析后得到操作码文件,对操作码文件进行自然语言处理,获取智能合约bigram分词特征;(2)对源码进行去除注释和空白行等数据清洗操作后,对源代码切分并存储在数组中,加载由预训练模型codebert产生的tokenizer分词器,调用convert_tokens_to_方法根据tokenizer分词器构建好的词典将分词转换为数字序列token id,统计每个合约中每个id出现的次数作为源码token特征;将所述智能合约的bigram分词特征和源码token特征进行融合,得到合约特征。3.根据权利要求1或者2所述的方法,其特征在于,所述的利用提取的合约特征构建含标签的特征数据集和跨链合约漏洞库,包括:在对所述以太坊智能合约数据集进行特征提取后,根据已知的合约标签进行特征分类,构建含标签的特征数据集,将漏洞类别存放在跨链合约漏洞库中,漏洞库中的信息以字典方式存储,即{“漏洞类型”:[特征组1,特征组2,...]:},所述漏洞类型包括:重入漏洞、时间戳依赖漏洞、交易顺序依赖漏洞、拒绝服务漏洞、未检查返回值漏洞、整数溢出漏洞、蜜罐威胁、假充值漏洞、回滚交易漏洞、空投漏洞、call注入漏洞和call-after-destruct漏洞。4.根据权利要求3所述的方法,其特征在于,所述的以带标签的特征数据集作为跨链智能合约检测模型的输入数据,训练跨链智能合约检测模型进行已知漏洞及未知漏洞的检测,将训练好的跨链智能合约检测模型进行封装作为跨链智能合约漏洞检测包,包括:以带标签的特征数据集作为跨链智能合约检测模型的输入数据,使用随机森林算法训练跨链智能合约检测模型对所述跨链合约漏洞库中的已知漏洞进行检测;使用vae-gan生成模型训练所述跨链合约漏洞库中的已知漏洞合约特征信息,经过不断地生成对抗输出与原有数据最相似的特征数据,将该数据作为智能合约中可能存在的未知漏洞特征,训练跨链漏洞判别机制对所述未知漏洞特征进行检测,使用孪生网络通过计算待检测合约特征与所述未知漏洞特征之间的欧式距离来评估合约的相似性,对两数据的相似度设定一个阈值,作为是否含有未知漏洞的判断标准;将训练好的跨链智能合约检测模型进行封装,作为跨链智能合约漏洞检测包,该智能合约漏洞检测包中包括两部分:用于已知漏洞检测的随机森林模型和用于未知漏洞检测的漏洞判别机制。
5.根据权利要求4所述的方法,其特征在于,所述的待检测的智能合约通过智能合约漏洞检测包之后输出检测结果列表,根据检测结果列表在漏洞库中寻找出相应漏洞的修补措施并给出防护指令,包括:构建风险防护库,根据所述跨链合约漏洞库中的漏洞类型在风险防护库中依次增加一一对应的修补措施和防护指令,所述风险防护库中的信息以字典方式存储,即{“漏洞类型1”:“防护指令1”,“漏洞类型2”:“防护指令2”,...};将待检测的智能合约输入到所述智能合约漏洞检测包,该智能合约漏洞检测利用随机森林模型对所述待检测的智能合约进行已知漏洞检测,利用漏洞判别机制对所述待检测的智能合约进行未知漏洞检测,输出所述待检测的智能合约的检测结果列表,所述检测结果列表中包括漏洞类型名称,根据所述漏洞类型名称在所述风险防护库中进行查询,获取对应的修补措施和防护指令,当所述检测结果列表中显示合约含有未知漏洞时,给出警报提醒,对所述待检测的智能合约提出重写要求,中止当前合约的一切行为。
技术总结
本发明提供了一种以太坊-联盟链异构跨链系统的攻击检测与防护方法。该方法包括:对以太坊-联盟链异构跨链系统中以太坊端的智能合约的源码及操作码进行特征提取,构建含标签的特征数据集和跨链合约漏洞库;以带标签的特征数据集作为输入数据训练跨链智能合约检测模型,将训练好的跨链智能合约检测模型进行封装作为跨链智能合约漏洞检测包;待检测的智能合约通过漏洞检测包之后输出检测结果列表,根据检测结果列表在漏洞库中寻找出相应漏洞的修补措施并给出防护指令。本发明构建未知漏洞判别机制,通过生成模型训练得到未知漏洞特征并由孪生网络评估合约相似性,对含未知漏洞合约启动链闸机制,阻断跨链系统的未知风险。阻断跨链系统的未知风险。阻断跨链系统的未知风险。
技术研发人员:段莉 杨柳 王伟 李超 金一 刘吉强 王健 李洋 张君豪 王岚锐
受保护的技术使用者:北京交通大学
技术研发日:2023.06.09
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/