Back to Blog

[すべてのトークンが有効とは限らない] パラルニ攻撃の迅速な分析

Code Auditing
2022年3月13日
3 min read

Paraluniプロジェクト(https://twitter.com/paraluni)は、3月13日午前(UTC+8時)に攻撃を受けました。攻撃者は2つの脆弱性を利用してプロトコルを攻撃しました。最初の脆弱性は、渡されたトークンの検証の欠如であり、2番目は一般的なリエントランシーです。攻撃者はいくつかの攻撃トランザクションを実行しました。以下では、そのうちの1つ(0xf2bba649019ce40a67f0fb74e5e800257d359d9094b6ba6faea14ffa4d3446b1)を使用して、攻撃プロセス全体を説明します。

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

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

ステップII:MasterChefのdepositByAddLiquidityを呼び出す 攻撃者は、_pidを9としてdepositByAddLiquidityを呼び出し、UGTおよびUBTトークンをパラメータとして使用しました。しかし、この関数は、プールの準備トークンが渡されたトークン(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を呼び出し、LPトークンを償還して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
安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する
Security Insights

安全な保管を超えて、第2部:ウォレットの暗号技術を安全に実装する

攻撃者は、保護された秘密鍵のコピーを読み取らずに、その秘密鍵を復元できるのでしょうか。『Beyond Secure Storage』の第2部では、乱数の品質不足、エントロピーの損失、署名用ノンスの不備によって鍵の予測や復元が可能になった6件の事例を検証します。そこから鍵生成と署名に関する実装要件を導き出し、決済機関がコードレビューと導入済みシステムのテストを通じて、それらをどう評価できるかを説明します。

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計
Security Insights

安全な保管を超えて、第1部:安全な決済・署名ワークフローの設計

攻撃者が秘密鍵を盗まずに、認可されていない操作が有効な署名を得ることは、なぜ可能なのでしょうか。「安全な保管の先へ」第1回では、Bitget、Bybit、Binanceなどの事例を通じて、支払い要求、トランザクションの構築、署名、実行、決済の各段階における認可の不備を検討します。そのうえで、認可されていない操作を防ぎ、損失を抑えるための設計原則を導き出し、レビュー、監査、ペネトレーションテスト、演習によって、それらの防御策をどう検証できるかを説明します。

NEAR Intentsの悪用:返金処理の欠陥とセキュリティ上の教訓
Security Insights

NEAR Intentsの悪用:返金処理の欠陥とセキュリティ上の教訓

NEAR Intentsへの攻撃では、過大な払い戻しイベントを利用し、預け入れた資産が返還された後も内部残高を維持しました。本分析では、レシートの処理の流れと、合計3,865,021 USDTに上るBNB Chainでの7件の出金を再構成します。また、これらの資金流出とプロジェクトが報告した全額回収を区別し、NEARスマートコントラクトの開発と監査におけるセキュリティ上の考慮事項を示します。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
[すべてのトークンが有効とは限らない] パラルニ攻撃の迅速な分析