[すべてのトークンが良いわけではない] パラルーニ攻撃の迅速な分析

この記事は、Paraluniプロジェクトへの攻撃に関する詳細な分析を提供し、トークン検証とリエントランシーに関連する脆弱性を強調し、新興のWeb3世界におけるセキュリティ対策の重要性を強調しています。

[すべてのトークンが良いわけではない] パラルーニ攻撃の迅速な分析

Paraluniプロジェクトは、3月13日(UTC+8)の午前中に攻撃を受けました。攻撃者は2つの脆弱性を悪用してプロトコルを攻撃しました。最初の脆弱性は、渡されたトークンの検証の欠如であり、2番目は従来のリエントランシーです。攻撃者はいくつかの攻撃トランザクションを仕掛けました。以下では、そのうちの1つである0xf2bba649019ce40a67f0fb74e5e800257d359d9094b6ba6faea14ffa4d3446b1を使用して、攻撃プロセス全体を説明します。

ステップI:liquidityをparaRouterに追加

攻撃者はBTCB-WBNBプール(インデックス=9)にaddLiquidityを呼び出し、プールはlpトークンをUBT(攻撃者が作成したトークン)にミントします。この操作の後、UBTトークンはプールのlpトークンを保有します。BTCBとWBNBはフラッシュローンから借りていることに注意してください。

ステップII:MasterChefdepositByAddLiquidityを呼び出す 攻撃者は、_pidとして9を指定し、UGTおよびUBTトークンをパラメータとしてdepositByAddLiquidityを呼び出しました。しかし、この関数は、プールの準備金トークンが渡されたトークン(UGTおよびUBT)と等しいかどうかをチェックしません。

次に、関数はdepositByAddLiquidityInternalを呼び出し、それがparaRouterのaddLiquidityを呼び出します。この関数は、UGTおよびUBTトークンのtransferFrom関数を呼び出します。しかし、これらの2つのトークンは攻撃者によって制御されています。UBTのtransferFrom関数で、攻撃者はMasterChefコントラクトのdeposit関数を呼び出し、最初のステップで取得したLPトークンをMasterChefコントラクトにデポジットします。

残念ながら、deposit関数での残高の変更により、addLiquidity後のnewBalanceはoldBalanceよりもはるかに大きくなっています。このようにして、攻撃者はMasterChefコントラクトで二重のクレジットを得ました。

ステップIII:利益の獲得

攻撃者は最終的にUBT.withdrawAssetおよびMasterChef.withdrawを呼び出してlptokenを償還し、BTCBとWBNBを獲得しました。流動性の数が攻撃者が持つべき数よりも多いため、攻撃者は利益を得ることになります。

教訓

リエントランシーの問題に加えて、渡されたトークンが検証されていないことが根本原因の1つです。VisorケースCoin98ケースと同様の問題もこれまでに見てきました。

BlockSecについて

BlockSecは、2021年に世界的に著名なセキュリティ専門家グループによって設立された先駆的なブロックチェーンセキュリティ企業です。当社は、新興のWeb3世界のためのセキュリティとユーザビリティの向上に専念しており、その普及を促進することを目指しています。この目的のため、BlockSecはスマートコントラクトおよびEVMチェーンのセキュリティ監査サービス、セキュリティ開発および脅威のプロアクティブなブロックのためのPhalconプラットフォーム、資金追跡および調査のためのMetaSleuthプラットフォーム、そしてWeb3ビルダーが暗号世界を効率的にサーフィンするためのMetaSuites拡張機能を提供しています。

現在までに、MetaMask、Uniswap Foundation、Compound、Forta、PancakeSwapなど300社以上の著名なクライアントにサービスを提供し、Matrix Partners、Vitalbridge Capital、Fenbushi Capitalなどの著名な投資家から2回の資金調達で数千万米ドルを獲得しました。

公式ウェブサイト:https://blocksec.com/

公式Twitterアカウント:https://twitter.com/BlockSecTeam

Sign up for the latest updates