掌桥专利:专业的专利平台
掌桥专利
首页

一种基于字节码分析的智能合约闪电贷攻击预警系统及方法

文献发布时间:2024-04-18 19:59:31


一种基于字节码分析的智能合约闪电贷攻击预警系统及方法

技术领域

本发明涉及信息安全技术领域,特别涉及一种基于字节码分析的智能合约闪电贷攻击预警系统及方法。

背景技术

智能合约是一种在区块链上运行的计算机程序,并具有基于区块链的去中心化、公开透明和不可篡改的特性。在实际应用中区块链上的智能合约由于一旦部署不容易被篡改的特点,如果部署的合约内部存在漏洞,则无法通过修改代码来修复,容易使智能合约称为攻击目标。

闪电贷攻击是一种智能合约领域的主要安全威胁。黑客利用闪电贷攻击能够轻松获取大额资金,而不必冒着自身资产损失的风险,从而攻击门槛降低,容易导致许多链上黑客事件。

传统的智能合约安全审计方式主要仰赖人工代码审查,然而,人工审查耗费大量时间和人力资源,因此不适用于大规模智能合约的审核;其次,由于黑客在链上部署攻击合约后并未开源,无法阅读其源代码;再次,由于链上部署合约众多,无法每一个合约都采取人工审计的方式。

现有技术中,现有检测方式主要依赖于静态规则和已知攻击特征的匹配,规则就是根据闪电贷的特征去比对当前交易是否存在相应的特征,来识别闪电贷攻击。其中,静态的特征包括提供闪电贷服务的智能合约地址,闪电贷相关的事件,调用关系及其构成闪电贷的执行顺序,闪电贷贷出的虚拟货币的种类及对应的数量等等。

由于现有技术中静态的特征依赖于智能合约与闪电贷的内部逻辑关系,如果项目升级、合约重新部署并修改了内部逻辑,则静态特征会失效,无法适用于新的项目或合约的识别检测,因此,在识别新型或变种攻击时具有局限性。

故,研究和开发自动化、高效、准确地检测和防范闪电贷攻击的方法已经成为区块链技术和智能合约安全领域的紧迫议题。因此,本发明提供一种基于字节码分析的智能合约闪电贷攻击预警系统及方法,以解决现有技术中存在的问题。

发明内容

本发明目的是:提供一种基于字节码分析的智能合约闪电贷攻击预警系统及方法,以解决现有技术中闪电贷攻击检测依赖于静态规则和特征,无法满足应对动态变化的攻击策略以保持网络安全的技术问题。

本发明的技术方案是:一种基于字节码分析的智能合约闪电贷攻击预警系统,包括:

新交易初筛模块,与区块链的开发平台连接,对区块链上出现的新交易的地址进行分析,剔除掉不符合条件的交易;

交易状态分析模块,与中心化交易所管理平台和混币平台连接,用于分析新部署合约交易的资金状态和字节码状态,

提取判断模块,与新交易初筛模块和分析识别模块电性连接;

提取判断模块接收新交易初筛模块筛选结果并提取出新部署合约交易,并将新部署合约交易传输给分析识别模块;

提取判断模块根据分析识别模块对新部署合约交易的分析结果,判断交易是否使用闪电贷,提取判断模块将提取出的使用闪电贷的交易通过预警模块推送和播报出去,进行预警。

优选的,通过新交易初筛模块和交易状态分析模块对链上新交易的地址、资金状态和字节码状态进行层层分析和筛选,识别使用闪电贷的交易,对使用闪电贷的交易进行全平台关联预警,能够在攻击交易完成之前标识可能是闪电贷攻击的交易,并在攻击交易完成时直接锁定。

优选的,新交易初筛模块筛选交易的条件为:新交易中没有to地址;筛除掉不符合条件的交易过程为:

外部账户交互交易删除:删除外部账户中带to地址的交易;

合约交易删除:删除合约交易中带to地址的交易;

经过外部账户和合约账户to地址的交易删除操作,筛选出新部署合约交易。

优选的,分析识别模块包括资金来源分析单元、字节码提取单元和字节码分析单元;

资金来源分析单元筛选出地址资金来源于混币平台的交易;

字节码提取单元对资金来源分析单元筛选出的交易进行字节码提取;

字节码分析单元对字节码提取出的字节码进行字节码分析,以识别出使用闪电贷的交易。

优选的,资金来源分析单元筛选出地址资金来源于混币平台的交易,过程包括:

在筛选出的新部署合约交易中,提取from地址;

查询from地址的所有内部交易;

筛选出内部交易中资金来源为混币平台的交易。

优选的,字节码分析单元对字节码进行分析的流程包括:

构建闪电贷接收函数队列,

获取闪电贷接收函数的函数选择器;

基于获取的函数选择器,对获取的合约字节码进行遍历匹配,筛选出字节码中存在闪电贷接收函数的交易,并标识。

优选的,提取判断模块基于分析识别模块的识别结果,通过预警模块对使用闪电贷的交易进行预警,将识别出的交易推送到项目方和安全师,进行播报,提醒用户小心警惕。

一种基于字节码分析的智能合约闪电贷攻击预警方法,包括步骤:

实时监测区块链上的动态,并提取新的交易;

将新交易中带有to地址的合约交易筛除,获得剩下的可疑交易;

对可疑交易进行资金来源分析,对资金来自混币平台的交易,进行字节码提取;

对字节码与闪电贷接收函数的匹配情况进行分析;

对字节码与闪电贷接收函数匹配的交易,进行预警。

与现有技术相比,本发明的优点是:

(1)本发明实时监测区块链上的交易,并对新交易进行分类和筛选,仅保留与智能合约部署相关的交易,降低计算成本,减少资源浪费;然后聚焦于可能存在攻击行为的交易,进行字节码分析,锁定闪电贷交易,提高了攻击检测的实时性和敏感性,更快速地响应攻击,提高效率。

(2)本发明通过设置字节码提取单元和字节码分析单元,对字节码进行提取和分析,并聚焦分析以确认合约中是否存在闪电贷接收函数,闪电贷函数的具体逻辑或调用路径不再是考虑的特征因素,无论闪电贷函数逻辑出现何种变化或攻击者采用何种策略来更改调用路径,都能够被识别出来,扩大了攻击识别范围,提高整体网络安全性,能够检测和阻止各种复杂、隐蔽甚至新型的攻击策略,提高了攻击检测的全面性和准确性。

本发明通过分析可疑资金来源和所有闪电贷攻击的特征,不仅关注攻击的静态特征,还基于字节码分析与闪电贷接收函数选择器比对的方式,使得检测系统能够无视合约代码的不断变化,动态地适应性识别能力确保本发明提供的预警系统具备持续的安全性,不受合约代码变化或新业务趋势的干扰。

(3)本发明专注于闪电贷攻击检测,将分析范围限定在闪电贷,并着重分析字节码和闪电贷接收函数,检测更加精准聚焦,极大地减少误报率,提高了攻击检测的准确性。

附图说明

下面结合附图及实施例对本发明作进一步描述:

图1为本发明所述智能合约闪电贷攻击预警系统的整体架构示意图;

图2为本发明所述智能合约闪电贷攻击预警系统的预警分析框图;

图3为本发明对新交易递进式层层分析筛选出使用闪电贷交易的示意图;

图4为本发明所述智能合约闪电贷攻击预警方法的流程框图。

具体实施方式

下面结合具体实施例,对本发明的内容做进一步的详细说明:

基于静态规则和已知特征识别当前交易的方式,由于,规则和特征是针对性构建的,在出现新交易或交易合约变化时,当前构建的静态规则及特征将会失效,需要重新构建和更新,因此,当前构建的静态规则及特征无法感知新的攻击行为。

参照附图1中的系统整体架构图,结合附图2中的模块关系图,本发明提供了一种基于字节码分析的智能合约闪电贷攻击预警系统,包括与区块链的开发平台连接的新交易初筛模块,与中心化交易所管理平台和混币平台连接的交易状态分析模块,以及分别与新交易初筛模块和分析识别模块电性连接的提取判断模块。

新交易初筛模块对区块链上出现的新交易的地址进行分析,剔除掉不符合条件的交易;

交易状态分析模块用于分析新部署合约交易的资金状态和字节码状态,

提取判断模块接收新交易初筛模块筛选结果并提取出新部署合约交易,并将新部署合约交易传输给分析识别模块;

提取判断模块根据分析识别模块对新部署合约交易的分析结果,判断交易是否使用闪电贷,提取判断模块将提取出的使用闪电贷的交易通过预警模块推送和播报出去,进行预警。

本发明通过新交易初筛模块和交易状态分析模块对链上新交易的地址、资金状态和字节码状态进行层层分析和筛选,层层筛选的过程如附图3中所示,由外向内,逐渐缩小交易的范围,最终锁定使用闪电贷的交易。对使用闪电贷的交易进行全平台关联预警,能够在攻击交易完成之前标识可能是闪电贷攻击的交易,并在攻击交易完成时直接锁定。

新交易初筛模块的任务是随时监测区块链上的所有交易,并提取出符合条件的新交易。执行内容包括:

监测交易。实时监测区块链上的交易,确保链上出现新交易时能够及时发现。

提取新交易。在检测到链上有不存在本地数据库中的交易,则将增加的新交易提取出来,进入下一环节。

筛选交易。从提取出的新交易中筛选出符合条件的部分交易。步骤和方法如下:

1)、外部账户交互交易筛除。所有的链上交易信息中都存在交易发起者from地址和交易接收者to地址。地址又分为外部账户地址和合约地址,本步骤中将发生的新交易中的to地址为外部账户地址的交易筛除。

2)、调用合约交易筛除。将新交易中to地址为合约地址的交易筛除。由于系统只需要新部署合约的交易,新部署合约交易中并没有to地址,故,将to地址不存在的交易进入系统的下一步骤。

经过对外部账户和合约账户中带有to地址的交易删除操作,筛选出新部署合约交易。

通过对区块链上所有新交易进行监测,并对新交易进行分类和筛选,剔除掉与智能合约部署不相关的交易,降低计算成本,减少资源浪费,能够快速响应攻击,提高系统的效率。

字节码包含了合约的内部细节,攻击者通常会试图隐藏攻击迹象在字节码中,因此,聚焦于筛选后可能存在攻击行为的交易,进行字节码分析,以确认合约中是否存在闪电贷函数,确认合约是否使用闪电贷。

分析识别模块包括资金来源分析单元、字节码提取单元和字节码分析单元。

由于区块链中中心化交易所存在身份认证,使用中心化交易所的身份来进行攻击容易被追溯到身份,所以黑客大多使用混币平台来为攻击地址提供攻击的启动资金(启动资金通常是闪电贷)。因此,通过分析交易发起者的资金来源,来查询交易是否使用闪电贷,步骤如下:

1)、提取出from地址。资金来源分析单元在筛选出的新部署合约交易中,提取交易的from地址。

2)、查询from地址交易。使用etherscan的api(以太坊区块链浏览器)来对from地址的所有internal交易(内部交易)进行查询。

3)、交易分析。分析筛选出内部交易中资金来源为混币平台的交易。

字节码提取单元通过以太坊区块链浏览器对筛选出的资金来源为混币平台的交易分别进行字节码提取。

由于每个智能合约都存在编译后的字节码,且合约部署到链上后字节码不得改变,那么黑客在进行攻击时,部署的攻击合约中一定会存在对应的攻击逻辑,即使黑客不提供源代码以供合约开源,从字节码中依然可以找寻到攻击的痕迹。

例如,闪电贷接收函数。闪电贷接收函数由闪电贷提供方进行定义,使用闪电贷函数即使用项目方定义的闪电贷接收函数,本实施例中字节码分析就是识别项目方定义的闪电贷接收函数,黑客和客户无法自己定义闪电贷接收函数,黑客攻击项目方部署的合约交易,因此,所有闪电贷攻击交易都存在闪电贷接收函数。

字节码分析单元对字节码进行分析的流程如下:

1)首先建立闪电贷接收函数队列,整理出市面上提供闪电贷的所有defi项目(去中心化金融项目)的闪电贷接收函数。

2)、获取闪电贷接收函数的函数选择器,也就是大小为四字节的一串十六进制数字。

3)、在获取到闪电贷函数选择器后,对字节码提取单元提取的字节码进行遍历匹配,将每一个函数选择器都在字节码中进行遍历,若字节码中存在对应的函数选择器,则证明该合约使用闪电贷。

字节码分析单元,分析字节码中是否存在闪电贷接收函数,即分析出合约中是否使用闪电贷,也是闪电贷攻击的必要条件。

如表格1中示出了部分具体的闪电贷接收函数,并在表格2和表格3中示出了存在闪电贷接收函数的交易。

表格1. 部分闪电贷接收函数

表格2. 交易1

通过比对,交易1的合约中存在executeOperation函数,且后续调用攻击合约获利1047ETH(由于涉及到多方地址余额的计算,较为复杂,表格中未示出具体项目的金额情况),故,判定交易1为闪电贷攻击交易。

表格3. 交易2

交易2的合约中存在uniswapV3SwapCallback函数,且后续调用攻击合约获利2.75ETH(由于涉及到多方地址余额的计算,较为复杂,表格中未示出具体项目的金额情况),故,判定交易2使用闪电贷攻击获利。

通过设置基于字节码分析的函数选择器比对技术,能够深入审查合约的字节码,更好地识别潜在的攻击代码;分析字节码的内容时聚焦在闪电贷接收函数本身而与闪电贷函数的逻辑或调用路径无关,使得闪电贷攻击检测系统具备动态适应能力,精确地检测到潜在的威胁,在新攻击发生时能够立即做出反应,能够根据闪电贷业务的实际情况灵活应对变化,提高攻击检测的实时性和敏感性,为网络安全提供可靠保障,且不受外部变化的干扰。

提取判断模块基于分析识别模块的识别结果,通过预警模块对使用闪电贷的交易进行预警,将识别出的交易推送到项目方和安全师,进行播报,提醒用户小心警惕。

本实施例,专注于闪电贷攻击检测,将分析范围限定在闪电贷交易中,通过多层的“抽丝剥茧”式分析,识别闪电贷交易,极大地减少了误报率。只有真正可疑的闪电贷活动才会受到关注,从而提高了检测的准确性,有助于确保正常用户不会受到不必要的干扰,同时提高了攻击检测的效率。

参照附图4,本发明进一步提供了一种基于字节码分析的智能合约闪电贷攻击预警方法,包括步骤:

实时监测区块链上的动态,并提取新的交易;

将新交易中带有to地址的合约交易筛除,获得剩下的可疑交易;

对可疑交易进行资金来源分析,对资金来自混币平台的交易,进行字节码提取;

对字节码与闪电贷接收函数的匹配情况进行分析;

对字节码与闪电贷接收函数匹配的交易,进行预警。

综合上述,本发明提供的预警系统具备分析链上已部署智能合约的函数特征的能力,在黑客尚未发起攻击时能够自动辨识潜在的闪电贷攻击,进行攻击预警,提醒用户和项目方注意攻击,为区块链生态系统的安全发展提供了全新的保障。

和现有技术相比,本发明具备如下优势:

所有的闪电贷交易都存在闪电贷接收函数,由于本发明分析的是合约中是否存在闪电贷接收函数本身,而与闪电贷接收函数的具体逻辑或调用路径无关,不再受限于现有技术中的闪电贷接收函数的具体逻辑和调用路径。

故,无论闪电贷函数逻辑出现何种变化或攻击者采用何种策略来更改调用路径,都能够被识别出来,扩大了攻击识别范围,提高整体网络安全性,且能够检测和阻止各种复杂、隐蔽甚至新型的攻击策略,提高了攻击检测的全面性和准确性。

区块链生态系统不断演进,智能合约的代码经常发生变化,而传统技术难以应对这种动态性。本发明通过分析可疑资金来源和所有闪电贷攻击的特征,不仅关注攻击的静态特征,还基于字节码分析与闪电贷接收函数选择器比对的方式,使得检测系统能够无视合约代码的不断变化,动态地适应性识别能力确保本发明提供的预警系统具备持续的安全性,不受合约代码变化或新业务趋势的干扰。

现有技术中,基于静态规则和特征进行攻击识别,涉及到闪电贷函数的逻辑规则和路径,在其中一环出现错误时导致后续结果出现偏差,容易将正常交易误报为攻击,或者漏报真正的攻击活动;而本发明专注于闪电贷攻击检测,将分析范围限定在闪电贷,并着重分析字节码和闪电贷接收函数,而闪电贷接收函数是所有闪电贷都无法绕开的内容,检测更加精准聚焦,极大地减少误报率,提高了攻击检测的准确性。

有助于确保只有真正可疑的闪电贷活动才会被关注和处理,正常用户不再受到不必要的干扰,同时提高了攻击检测的效率。

上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明,因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

技术分类

06120116524454