基于联邦学习的恒产品做市商自动攻击综合研究


摘要-分散化金融使许多在传统金融中不可能实现的新应用成为可能。但是,它也引入了新类型的漏洞,如可组合性错误。可组合性错误指的是当多个智能合同一起操作时,会导致错误行为的问题。可组合性错误的一个典型例子是令牌合约和固定产品市场制造商(CPMM)之间的错误,这是分散交换中使用最广泛的模型。自2022年以来,共有23起此类漏洞共损失220万美元。智能合同审计公司BlockSec曾报告称,2023年2月刚刚发生了138起此类漏洞。我们提出了CPMM开发器,它自动检测和生成CPMM可组合bug的端到端漏洞。由于多个合同的搜索空间很大,而且金融服务涉及到各种费用,因此生成这种端到端漏洞具有挑战性。为了解决这个问题,我们调查了关于这些漏洞的真实漏洞,并确定它们是由于违反两个安全不变量而产生的。基于此观察结果,我们实现了CPMM


  1. 引入分散化金融(DeFi)使用区块链和智能合约提供新的金融服务。这些服务使用代币,这些代币是区块链上除本地货币之外的数字资产。智能合约提供的一个关键金融服务是分散交易所(DEX)。与集中式交换(CEX)不同,DEXes允许用户在没有中央权限的情况下将一种资产交换为另一种资产。通过DEXes,区块链用户可以自由转换其资产,这决定了资产的定价,并为区块链经济提供了流动性。为了实现没有中介的交换,大多数dexe采用固定产品做市商(CPMM)模型来自动确定适当的汇率。截至2023年6月,大约77%的DEXes采用了Uniswap协议,它实现了CPMM模型[1]

DeFi的这种有用性经常受到新类型的漏洞的威胁,其中之一是可组合性错误。可组合性错误指的是当多个智能合同一起操作时,会导致错误行为的问题。这个概念由Babel等人[2]提出,他在DeFi中定义了智能合约的经济可组合性。经济可组合性是系统的一种属性,在现有系统中添加一个新的合同Cnew不会导致负面的经济影响。如果违反了经济可组合性,那么特定合同中的漏洞可能会影响整个系统。本文研究了在令牌契约和遵循CPMM模型的dex环境中导致此类违反的漏洞(例如,CPMM可组合性错误)。最近,这类漏洞经常被利用。例如,2023年1月20日,一名攻击者利用BRA代币有缺陷的税收机制,从美国证券交易所交易的BRA代币[3]中窃取了价值约22.5万美元的数字资产。此外,著名的安全审计公司BlockSec仅在2023年2月就报告了138起此类攻击事件。有几种工具是hav的


最流行的模糊工具之一,支持涉及多个合同的事务。ItyFuzz [5]利用快照来有效地探索由多个合约组成的大搜索空间。这些工具的优点是能够检测到各种形式的漏洞,但它们不适合大规模地针对CPMM的可组合性错误。由于DeFi中金融模型的多样性,区分CPMM可组合性错误和预期行为的迹象是具有挑战性。例如,DEX令牌平衡的减少是CPMM可组合性错误的一个常见标志。与此同时,许多代币都采用了不断减少代币总供应量的通缩模型。此行为可以扩展为自动减少DEX令牌余额。然而,这并不意味着所有的通缩代币都是可利用的,因为盈利能力取决于许多其他因素,例如攻击者相对于DEX的代币余额和对代币转移收取的税收。因此,为了精确地检测CPMM的可组合性错误,需要有形的证据(即盈利的交易),但模糊器在没有知识的情况下运行


在预算紧张的情况下产生这样的交易。为了解决这些限制,我们提出了一种两步方法来检测CPMM的可组合性bug。通过分析现有的漏洞,我们发现当两个安全不变量被破坏时,CPMM可组合性错误。如果违反这些不变量,攻击者有机会从CPMM DEXes窃取资产。因此,我们的方法不是直接检测漏洞,而是识别不变量的违规,并找到滥用这些违规以获利的方法,最终导致漏洞检测。基于这一见解,我们设计并实现了CPMM扩展器来检测CPMM可组合性bug,并自动合成检测到的漏洞。CPMM-爆炸器的工作原理如下。首先,CPMM-爆炸器利用基于语法的模糊化来找到破坏安全不变量的事务。然后,CPMM-开发者完善交易,使其盈利。通过这个过程,CPMM-爆炸器可以通过避免不导致令牌泄漏的预期违反来消除假阳性。根据我们的评估,CPMM-爆炸者的表现优于5个基磷脂


我们在遵循CPMM模型和令牌智能契约之间的dexe之间形式化了可组合性错误。我们确定了两个安全不变量,当被破坏时,允许攻击者从DEXes窃取资金。•我们提出了CPMM-漏洞利用器,这是一个两步框架,可以检测CPMM的可组合性漏洞,并基于检测到的漏洞生成漏洞。•我们在公共数据集上评估CPMM-爆炸器,并将其与五种基线工具进行比较:[4]、•[5]、[6]、Slit[7]和[8]。此外,我们通过在以太坊和绑定链上运行它,证明了我们的工具在野外的适用性。微光ERC20代币是区块链上本地货币以外的数字资产。在这些代币中,最常用的可替代代币被称为ERC20代币,因为它们最初是通过以太坊评论请求20(ERC20)定义的。1本地货币(例如,以太坊中的ETH或二进制中的BNB)也可以通过兼容的代币,如包装以太坊(WETH)或包装绑定币(WBNB)。1尽管每个区块链可能根据他们的协议(如BEP20或TRC20)引用他们的方式不同,但我们c


基于联邦学习的恒产品做市商自动攻击综合研究​_基线



ERC20标准需要一个令牌智能契约来实现一组由9个函数和2个事件组成的应用程序二进制接口(ABI)。这些功能对于令牌的基本操作是必需的,例如转移(地址、值)和余额(地址)。这样一个统一的界面允许开发人员为无数数量的令牌构建金融服务,比如DEXes,而不必为每个令牌编写自定义代码。这种设计增加了ERC20令牌实现的灵活性;然而,它也构成了可能违反服务中的各种不变量的风险,从而导致安全漏洞。B.恒定产品做市商模型DEXes采用恒定产品做市商(CPMM)模型,以适当的汇率自动将一个ERC20代币换成另一个ERC20代币。CPMM模型指出,给定DEX持有x数量的X标记和y数量的Y标记,×和y的乘积应该保持不变(即xy=k)。当用户请求将∆x的X标记数量交换为Y标记时,DEX返回的∆标记的数量∆y将用公式(x +∆x)×(y−∆y)=k计算。因此,在CPMM DEX中的任何交换操作


罗马数字 3CPMM可组合性按钮A.术语符号。假设我们有两个ERC20令牌,X和Y令牌,以及两个令牌的CPMM模型之后的DEX,用d表示。D中X和Y令牌的数量分别用X和y表示。盈利能力。我们根据在一次交易中获得代币X来定义盈利能力。如果攻击者从X代币的初始余额开始,那么在攻击者没有任何额外财务输入的情况下增加X代币余额的交易是一种有利可图的交易。此外,我们


基于联邦学习的恒产品做市商自动攻击综合研究​_数据集_02



将我们的范围限制为调用可以在一个交易中执行的序列,以排除利息积累和其他市场参与者的影响。在典型的攻击场景中,X代牌将是具有相对稳定价值的硬币,如本地货币(如WETH或WBNB)或稳定币(如USDT)。CPMM可组合性错误。我们将Y令牌契约中的一个bug,它使攻击者能够从由X令牌、Y令牌和D组成的系统中构建一个有利可图的事务(即提取X令牌的调用序列)称为CPMM可组合性bug。例如,如图1所示,如果D有x = 20和y = 50(x×y = 1000),并且用户请求将40 X标记交换为Y标记,则根据CPMM返回适当数量的Y标记D为33。不考虑其他市场参与者和费用,如果用户立即请求将用户刚刚获得的33 Y代币交换为X代币,那么D应该返回40 X代币。但是,如果攻击者能够毫无代价地减少y或增加自己的y标记的平衡,那么攻击者就能够获得超过预期的40 X标记,如图2和图3所示。我们可以说,附加的X令牌是非法获得的f


  1. 类型1: DEX标记平衡减少如果攻击者可以减少y不支付任何到D(即额外的X标记或流动性标记),那么攻击者可以有效地改变产品,×,常数产品函数,×到一个更小的值,有效地移动交换曲线。图2中显示了一个示例场景。在B点,如果攻击者可以将Y减少8.3左右,那么攻击者可以将k减少到500((16.7−8.3)×60≈500)。由于攻击者只减少了y,X保持不变,下一次交换将发生在更新的交换曲线上的前一个点以下的一个点(即点B‘)。此时Y标记的价格更大,因为Y标记的价格是由X和Y之间的比率决定的。只有减少y才会降低y的比例,这就增加了D中Y代币的价格,并允许攻击者用相同数量的Y代币交换更多的X代币(即交换到点A‘而不是点A)。因此,当不变1被破坏了,攻击者有机会提取D.不变1所拥有的X令牌(DEX令牌余额减少)。用户不能在不向DEX支付任何款项的情况下转让或烧毁DEX所拥有的资产。现实世界的例子。例如,在2022年9月2日,一名攻击者利用阴影真令牌中的一个漏洞窃取了约1078 BNB,在攻击[9]时价值约301K美元。漏洞是影真令牌允许任何用户在阴影真中燃烧影真令牌。 C. 类型2:攻击者令牌平衡增加如果攻击者可以免费获得Y代币,那么攻击者也可以免费获得X代币 D. 图3显示了一个示例场景。在点B中,如果攻击者可以在不进行任何额外付款的情况下增加自己的令牌Y余额,那么攻击者可以获得超过预期数量的X令牌(即,交换到点A‘而不是点A)。因此,当不变量2被破坏时,攻击者有机会提取所拥有的X令牌 D. 不变2(攻击者令牌余额增加)。用户应该不能免费获得以DEX交易的令牌。现实世界的例子。用于exa


基于联邦学习的恒产品做市商自动攻击综合研究​_基线_03


增值为了自动检测和利用CPMM可组合性bug,我们提出了CPMM-开发器。在本节中,我们将描述我们对CPMM-爆炸器设计的目标,实现这些目标的技术挑战,以及我们解决这些挑战的方法。A.为了在现实世界中应用CPMM-爆炸器,我们设置了以下目标:完全自动化。CPMM-爆炸器应该自动生成针对CPMM可组合性bug的漏洞,而无需人工干预。这是至关重要的,因为智能合同的数量正在迅速增加,而且手工分析是不可扩展的。许多现有的工具仅仅是检测错误的迹象,而没有提供一个

端到端利用漏洞(例如,可疑的令牌平衡更改了[5])。不幸的是,这种设计要求开发人员手动分析合同以确认漏洞,这使得它们不可扩展且耗时。高效。随着智能合同数量的快速增加,CPMM-开发者应该能够在短时间内分析大量的合同。我们的目标是在几分钟内分析一份合同。通过这样做,CPMM-爆炸器可以用来在几天内分析所有区块链中的许多合同。类的我们的目标是使CPMM-爆炸器成为通用,这样它就可以应用于各种标记和DEXes。这一点很重要,因为每个令牌都实现了自己的业务逻辑,并且每个DEX都有自己的CPMM实现。CPMM-爆炸器应该能够分析任何令牌和DEX,而无需进行任何修改。B.您面临技术挑战,拥有较大的搜索空间。为了实现上述目标,存在几个技术挑战。由于CPMM可组合性错误在多个契约交互时被触发,因此必须探索由它们组成的巨大搜索空间。此外,智能契约的有状态性加剧了搜索空间问题,因为相同的功能

复杂的金融生态系统。此外,即使在确定了合同中的特定问题之后,构建端到端利用也会带来额外的挑战。这是因为,即使考虑到金融服务所附带的各种费用和成本,该开发也应该是有利可图的。最具代表性的例子是DEXes征收的交换费用。大多数交易所对每个交易所收取百分比的费用。要构建一个漏洞,我们需要使其收入足够高,以抵消执行交易所涉及的费用和成本,包括外汇交易费用。C. Scope CPMM-漏洞开发器是用于运行在基于EVM的区块链上(例如,以太坊和绑定智能链)的智能合约。此外,CPMM-漏洞开发者的目标是从Uniswap V2 DEXes中窃取ERC20令牌,这是CPMM模型中最流行的实现。然而,我们认为CPMM-倍体可以应用于其他cmms。我们支持包含或不带源代码的智能合同。然而,如果源代码可用,我们的分析可以更准确(例如,使用abi)。V.设计在本节中,我们将描述CPMM-爆炸器的设计。

基于联邦学习的恒产品做市商自动攻击综合研究​_数据集_04


图5。CPMM-爆炸者的语法代表在Backus-瑙尔形式。在第一步中,重复规则(加粗标记)不用于生成测试用例。它们在第二步中被用于建立漏洞。A. 工作流程CPMM-外开发器的总体工作流程如图4所示。CPMM-漏洞利用器采用两步方法来生成基于CPMM可组合性bug的漏洞。在第一步中,CPMM-爆炸器利用基于语法的模糊化来找到一个在第三节中打破不变量的事务。为此,如果可用,CPMM-爆炸器利用合同abi。如果任何交易导致利润(即利用),CPMM-器提前终止。另一方面,如果CPMM-爆炸器只能找到破坏不变的事务,那么CPMM-爆炸器将继续进行第二步。特别地,它改进了破坏不变的事务以构建一个利用。这一步骤是必要的,以区分可利用的不变违规和预期违反,并采取安全措施保护代理的资产(例如,减少所有令牌持有者的余额)。为了加剧破坏的不变量,CPMM-爆炸者重复片段

由于DeFi合同的复杂性,很难通过探索所有可能的功能来发现这种违规行为。为了解决这个问题,我们使用基于语法的模糊化来有效地探索与CPMM可组合性bug相关的状态。特别是,我们关注目标标记(Y)和DEX之间的交互,这是导致CPMM错误的主要原因。图5说明了CPMM-爆炸器用于生成测试用例的语法。在开始时,CPMM-爆炸者将X令牌(例如,稳定蛋白)交换到目标令牌Y(<SwapXY>)。然后,CPMM-爆炸者试图通过注入一个由循环令牌传输和状态更改函数(<有效负载>)组成的有效负载来打破不变量。最后,CPMM-爆炸者将Y令牌交换回X令牌以完成交易(<SwapYX>)。下面,我们将讨论语法背后的直觉,以及如何使用它来找到破坏不变的事务。循环转移。我们的有效负载的关键组件之一是循环令牌传输。循环令牌传输需要模拟攻击者和DEX之间的不同交互,同时确保攻击者不会丢失任何令牌。在CPMM-Exploiter中,

改变状态的函数。除了循环转移之外,我们还考虑了可以改变DEX或Y的状态的状态变化函数。在DEX和Y契约中可能存在各种状态变化函数。最关键的功能之一是dex。sync(),它更新CPMM曲线中的×值(即x×y=×)。另一个例子是Y合约中与燃烧相关的函数,它可能会减少Y代币的总供应。我们还考虑了Y契约中其他不接受参数的状态变化函数。此类函数通常用于各种目的,例如更新内部状态变量或向令牌所有者提供奖励。一代。给定Y契约ABI,CPMM-扩展器通过遵循图5中的语法推导出所有可能的测试用例。值得注意的是,CPMM-爆炸者在这一点上不执行重复,以首先调查大的空间。对于数量,CPMM-爆炸者随机填充各种值,包括零、攻击者的平衡和DEX的平衡。首先,攻击者的初始X令牌被设置为一个可以交换出DEX的Y令牌余额的1%到99%之间的随机值的量。C. 精炼到建设经验

基于联邦学习的恒产品做市商自动攻击综合研究​_区块链_05


每个令牌都采用了一个独特的经济模型,它可能故意通过缓解措施打破不变量,以保护DEX中的资产。为了验证检测到的违规是否可利用,CPMM-开发者尝试利用之前发现的不变破坏事务合成利用(即有利可图的事务)。为了构建一个利用,CPMM-利用者的目标是通过重复调用序列来增加利用收入。这些可重复的片段包括图5中的<CycleA>、<CycleB>、<CycleD>、<CycleD>和<状态改变>。对于不变1,我们需要减少Y的DEX代币余额,以增加其在DEX中的价格。对于不变性2,我们需要免费获得更多的Y代币来获得更多的X代币。重复打破不变的调用会加剧打破不变的情况,增加利用收入和建立盈利交易的机会。D. 状态跟踪CPMM-利用程序开发器在模拟的链上环境上执行生成的测试用例。我们修改了EVM后端,以跟踪重要的状态变量,例如攻击者和DEX的当前令牌平衡。这些值可用于两个目的。首先,它们将测试案例中的参数替换为suc

DEX Y令牌余额减少或攻击者Y令牌余额增加)。VI.实现CPMM-爆炸器建立在铸造厂的[12]之上,并依赖于铸造厂来建立和获取模拟链上测试所需的链上数据。实现CPMMExploiter的LoC如表2所示。大多数令牌交换(即<SwapXY>和<SwapYX>)都是通过相关的联合交换路由器来处理的,而不是直接通过DEX进行交换,因为通过DEX进行直接交换需要在交换之前计算适当的输入和输出量。但是,收取独家费用(即转移金额以外的费用)的令币与Uniswap路由器不兼容。因此,当通过Uniswap V2路由器交换令牌失败时,CPMM-上传器运行另一个模拟环境来计算费用百分比,并利用费用信息通过计算正确的输入和输出数量来直接交换令牌。罗马数字 7为了评估CPMM-爆炸者,我们回答了以下研究问题:

RQ1:与现有工具相比,CPMM-漏洞开发器在检测CPMM可组合性bug方面的效果如何?•RQ2:与现有工具相比,CPMM-漏洞开发器在检测CPMM可组合性bug方面的效率如何?•RQ3:应用于CPMM-爆炸者的技术有多重要?•RQ4:CPMM-爆炸器在检测现实世界中未被发现的CPMM可组合性错误方面有多有效?A.实验设置1)基线选择:在许多现有的智能合同分析工具中,我们选择了五种工具作为评估基线: ItyFuzz [5]、伊蚊[4]、去[6]、Slither [7]和Mythril [8]。我们选择了ItyFuzz、伊蚊和解密器,因为它们支持多契约分析,并且可以检测(CPMM的一个子集)CPMM可组合性bug。我们还包括了不支持多合同分析的Slither和Mythril,以证明为单个合同设计的工具在检测CPMM可组合性bug方面是无效的。我们还试图将EF/CF [13]和发条金融[2]作为基线,但它们没有被选择,因为我们不能为我们的数据集运行它们。如果合同需要大量问题,EF/CF不支持链上模糊

在下面,我们将描述在评估中使用的每个工具的配置。我们试图配置每个工具,以提供最公平的可能的比较。ItyFuzz。我们只使用检测ERC20令牌泄漏的错误oracle运行ItyFuzz。ItyFuzz也有一个用于检测dese中的令牌失衡(类似于不变1),但这些问题并不总是导致漏洞。在这里,我们期望ItyFuzz能够检测到会导致利润的端到端利用,类似于CPMM-漏洞利用者的操作方式。单孔目哺乳动物夜蚊需要定制的神谕来检测漏洞。因此,我们实现了一个oracle,它检查攻击者契约在将所有ERC20令牌交换为原生令牌后,是否可以获得更多的原生令牌。我们还为埃奇尼达的每个漏洞设置了足够的初始本地货币余额(即10000ETH或10000 BNB)。

DeFiTainter。定义器确定给定函数是否包含价格操纵漏洞。因此,我们对合同的所有公共和外部函数运行调试,如果任何函数输出正结果,则将合同标记为脆弱。由于defit需要源代码分析,我们不能为近源合同运行它。肌醇。Mythril没有ERC20令牌或乙醚泄漏的检测器。然而,其他检测器可能已经检测到编程错误,导致cpmm的安全不变量中断。因此,我们会手动验证每个结果,以检查Mythril是否能够找到每个漏洞攻击的根本原因。滑动由于滑包括许多非临界探测器,我们只使用可能是潜在的探测器

表三:用于R评估的CPMM可组合性BUG数据集。去恶魔黑客实验室包含了过去的打破不变的1或2的漏洞。BLOCKSEC包含了打破不变量1的过去漏洞。现实世界-世界和现实世界-bsc包含了资产价值超过1000美元的链上单交换/煎饼交换合同。

基于联邦学习的恒产品做市商自动攻击综合研究​_基线_06


CPMM可组合性错误的根本原因(即任意发送20、受保护变量、任意发送erc20许可、仲裁终止、未检查传输)。然后,类似于Mythril,我们手动验证它的结果,以检查它是否可以发现每个漏洞攻击的根本原因。由于Slither需要源代码分析,所以我们不能为近源合同运行它。2)数据集:用于评价的数据集见表3。我们使用了两个数据集来进行评估。首先,我们使用DeFiHackLabs [11],这是一个包含对已报告的DeFi黑客事件的漏洞复制的公共数据集。该数据集已被广泛用于评估智能合同分析工具[14],[15]。其中,我们选择了23个利用CPMM可组合性bug的漏洞。其次,为了进行更彻底的评估,我们还使用了BlockSec [16],这是一个包含138个真实世界漏洞的公共数据集,其中涉及打破不变性1。在138个漏洞中,我们使用了124个漏洞来进行评估,因为有14个是同一个DEX的重复漏洞。对于重复项,保留了具有最早块号的漏洞。DeFiHackLabs和块中只包含一个针对shoek令牌的漏洞

表四:在解密实验室数据集上的CPMM-爆炸器和基线的CPMM可组合性BUG检测率。

基于联邦学习的恒产品做市商自动攻击综合研究​_区块链_07


表V CPMM在区块秒数据集上的CPMM-爆炸器和基线的可组合性BUG检测率

基于联邦学习的恒产品做市商自动攻击综合研究​_数据集_08


表4和表V分别显示了在DeFiHackLabs和BlockSec数据集上运行CPMMExploiter和基线的结果。总之,CPMM-可组合性开发器在检测CPMM可组合性bug方面优于其他工具。在DeFiHackLabs数据集(表4)中,CPMM-漏洞者检测到23个漏洞中的21个,而ItyFuzz平均检测到8.33个漏洞。CPMM-爆炸者的召回率最高,为0.91,ItyFuzz的召回率第二高,为0.36。DeFiTainter在它可以分析的19个合同中只检测到一个漏洞,因此其召回值为0.05。其他工具未能检测到任何漏洞。在BlockSec数据集(表V)中,CPMM-爆炸者的召回率最高,为0.89,而ItyFuzz的召回率第二高,为0.58。CPMM-爆炸器获得了比其他工具更高的召回率,因为它有效地探索了专注于令牌转移的各种契约状态。ItyFuzz和伊蚊在生成漏洞方面不是最优的,因为它们在没有对标记流进行指导的情况下生成了测试用例。此外,Slither和Mythril无法识别令牌c中的错误行为

基于联邦学习的恒产品做市商自动攻击综合研究​_区块链_09


基于联邦学习的恒产品做市商自动攻击综合研究​_区块链_10


图6。在BlockSec数据集中检测CPMM可组合性bug所需时间的热图(以秒为单位)。检测CPMM可组合性错误的目标方法。RQ1的答案:CPMM-开发器在检测CPMM可组合性bug方面优于现有工具。C. 为了比较CPMM-开发器与现有工具检测CPMM可组合错误的效率,我们测量了CPMM-开发器、ItyFuzz和鱼蚊在数据实验室和块秒数据集中检测CPMM可组合错误所花费的时间。我们报告了所花费的平均时间,不包括错误未被检测到时的试验。静态分析工具(即定义器、滑动器和CPMM)不包括在这个比较中,因为它们不能检测到几乎所有的CPMM可组合性bug。表六显示了在DeFiHackLabs数据集中检测每个漏洞所花费的时间。最后一行包含av检测漏洞所需的时间。平均而言,CPMM漏洞者探测漏洞需要54秒,比ItyFuzz的平均时间246秒快4.56倍。然而,ItyFuzz能够比CPMM-利用漏洞开发的一个漏洞(即Wdoge)更快地检测到一个漏洞。这是因为Wdoge对代币转让收取独家费用。为了计算和考虑这些费用,CPMM-爆炸器部署了另一个模拟环境和测试传输,这将导致不可忽视的延迟开销。图6可视化地显示了每个工具在BlockSec数据集中找到每个漏洞的速度。热图中的每个单元格都包含一个漏洞的结果,因此每个工具总共有124个单元格。红色表示该工具检测漏洞的时间相对较长(接近1200秒或20分钟),而蓝色表示该工具检测漏洞的时间相对较短(接近0秒)。白细胞实验表明,该工具无法在所有三个试验中都检测到脆弱性。CPMM-爆炸者能够检测到大多数漏洞

  1. 为了证明这两步方法的有效性,我们用两种改进版本的CPMM-爆炸器进行了评估:CPMM-爆炸器-NoRepeat和CPMM爆炸器-NoIC。CPMM-漏洞者-NoRepeat只运行生成的测试案例,而不利用重复来生成漏洞。CPMM-爆炸者-NoIC生成具有随机重复次数的测试用例,并直接检查利润的产生。与之前的评估类似,CPMM-倍体不重复和CPMM-倍体-noic分别运行三次。平均而言,CPMM-漏洞-NoRepeat在23个漏洞中检测到11个,CPMM-漏洞-Noic检测到23个漏洞中的16个。与此同时,CPMM-漏洞者检测到23个漏洞中的21个。这样的结果是可以预料到的。CPMM-重复不能检测需要重复的漏洞。CPMM-爆炸器-NoIC不能有效地分配资源给更有可能导致被利用的函数调用。对RQ3的回答:CPMM-爆炸者的两步方法优于没有重复的基于语法的模糊和没有不变检查的基于语法的模糊。
  2. 为了证明CPMM-开发器在现实世界中检测未发现的CPMM可组合错误的有效性,我们在2024年1月22日至2024年2月9日在以太坊和二值制网络的最新块上运行了CPMM-开发器。对于每个网络,我们根据Uniswap V2协议提取了一个DEXes列表,其中包含价值超过1000美元的本地令牌或稳定币。以太坊的23,701份合同和比安银行的20,607份合同符合标准。我们运行了CPMM-爆炸器,每台DEX超时20分钟。表七包含了由CPMM-爆炸者生成的漏洞的摘要。请注意,我们用漏洞号而不是令牌名称或地址来表示它们,因为这些漏洞尚未打补丁。总之,CPMM开发器可以通过利用现实世界中的CPMM可组合漏洞产生18个漏洞,从而获得12.9万美元的利润。为了演示每个漏洞的影响,我们报告了最大可实现利润(第4列)和最大可实现利润占对稳定点平衡的比例(第5列)。当CPMM-爆炸者停止时,当它

基于联邦学习的恒产品做市商自动攻击综合研究​_区块链_11



利用提取DEX拥有的超过一半的代币(利用18)。其他漏洞只收回了DEX拥有的一小部分代币。通常情况下,由于间隔检查机制,利润受到限制,因为CPMM阻止在一个事务中多次执行函数,只能执行一次不变中断调用序列。如果我们删除了必须在一个事务中完成利用的约束,CPMM-开发器可以在时间间隔内重复提取小部分,这可能最终耗尽DEX。因此,剩余的漏洞也可能是关键的。对RQ4的回答:CPMM-漏洞利用者可以产生有效的现实世界漏洞。罗马数字 8案例研究本节报告了CPMM-爆炸器检测到的两个真实世界的CPMM可组合性错误的案例研究。A.漏洞15是一个现实世界的错误,打破不变1。此错误是由于令牌合同中缺少时间间隔检查造成的。当向DEX进行转移时,脆弱的令牌,即今后的令牌15,将删除DEX令牌余额的一部分。不幸的是,令牌开发人员没有包含一个interv


基于联邦学习的恒产品做市商自动攻击综合研究​_基线_12


他们称之为维护功能。不幸的是,这种奖励可以反复获得,允许攻击者积累大量的令牌18。我们的结论是,这个漏洞可以用来消耗相关右美托咪定约57%的稳定币余额,价值811.15美元。图8显示了Token 18的简化版本。此令牌使用两个变量管理其余额,合计标记供应和总共享供应。随着越来越多的用户加入令牌18的市场,这两个变量将会增加,并可能导致整数溢出。为了防止这种情况发生,令牌18必须定期地减少这两个变量。这种维护功能在图8中的第10行到第19行中实现。与其他令牌通常将这些函数嵌入到通常称为的函数中,比如传输,令牌18采用了一种不同的方法,它激励用户直接用奖励调用该函数。但是,开发人员并没有限制可以调用此函数调用的次数。因此,攻击者可以重复调用维护的令牌()函数,以免费积累大量的令牌18,打破不变2。这个漏洞ca


Uniswap V2 DEXes.我们相信CPMM-扩展器可以扩展到通过更多的开发工作来支持其他CPMM实现。其次,在生成测试案例时,CPMM-上传器并没有利用令牌契约中可用的所有函数。目前,我们只支持与烧伤相关的函数和零参数函数。为了支持更多的函数,需要进行额外的分析来推断这些函数的目的并生成合适的参数。C. 有效性的威胁有效性的威胁是评估数据集。由于我们提出了一个新的漏洞类别,我们不能根据在以前的工作[4]-[6]中使用的数据集来评估我们的系统。相反,我们使用了一个流行的数据集的子集,DeFiHackLabs [11],作为我们的评估数据集之一。由于我们手动选择了属于CPMM可组合性错误类别的漏洞,因此可能已经引入了一些偏见和主观性。此外,在DeFiHackLabs和BlockSec数据集中,打破不变2的情况明显少于打破不变1的情况。这种不平衡可能会了某些工具的检测结果。



X.许多工具都可以检测到智能合同的漏洞。一些人使用静态分析技术,如模型检查[2]、[17]-[19]和符号执行[20]-[26]。而其他人则使用动态分析技术,最显著的是模糊了[4],[5],[13],[27]-[36]。最近的工作也利用了机器学习[37]-[44],包括大型语言模型[14]。多合同的漏洞检测。提出了几种检测多契约漏洞的工作。一些关注于检测常见出现的漏洞,如重入性和与委托调用相关的漏洞[45]-[47],而一些则旨在检测各种各样的漏洞[4],[5],[13]。特别是,ItyFuzz通过模糊快照来探索了契约状态的各种组合,Echidna使用静态分析器Slither在模糊之前提取有用的信息。虽然理论上可以用这些方法检测到CPMM的可组合性错误,但我们的评估表明,一种通用的方法是无效的。由于CPMM的可组合性bug与合同的业务逻辑紧密相关,有时需要一个长序列的函数ca


希腊字母的第14个字母结论智能合同使其在DeFi中有许多新颖和创新的应用。同时,它们也引入了新的漏洞,比如CPMM的可组合性bug。为了缓解这个问题,我们提出了CPMM-扩展器,这是一种新的基于语法的模糊工具,可以在几分钟内自动检测并生成CPMM可组合错误的端端漏洞。CPMM-爆炸器对CPMM可组合性错误的真实利用分别获得了0.91和0.89的召回率,而来自5个基线的最佳召回率分别为0.36和0.58。此外,当在以太坊和绑定网络上运行时,CPMM-开发者产生了18个漏洞,总利润为12.9万美元。参考了[1] S. P. Lee,“去中心化加密货币交易所的市场份额,按交易量计算。”https://www.coingecko.com/research/publications/去中心化-加密交易所-市场份额,2023年。[2] K. Babel,P. Daian,M. Kelkar,和A. Juels,“时钟金融:智能合约中经济安全的自动分析”,页。2499-2516,IEEE,2023年。[3] N. Mutual,“胸罩标记是如何被利用的?”https://medium.com/ neptune-mutual/how-was-bra-token-exploited-24ff323249d, 2023.[4] G. Grieco,W。