CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

avatar
CertiK
2年前
本文は約1863字で,全文を読むには約3分かかります
2月3日未明、ソラナクロスチェーンブリッジプロジェクト「ワームホール」が攻撃されましたが、この記事では攻撃の経緯と防止策について詳しく解説します。

CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

北京時間2022年2月3日午前1時58分、ソラナクロスチェーンブリッジプロジェクトのワームホールが攻撃者に攻撃された。ハッカーは Solana 上のワームホール ブリッジ検証プロセスをバイパスし、自分たちのためにワームホール ETH (wETH) を鋳造しました。

この事件では、攻撃者はなりすましの sysvar アカウントを挿入することでシステム検証ステップをバイパスし、120,000 wETH を鋳造する必要があることを指定する悪意のある「メッセージ」の生成に成功しました。最後に、攻撃者は悪意のある「メッセージ」を使用して「complete_wrapped」関数を呼び出すことにより、約 3 億 2,000 万ドル相当の 120,000 wETH を鋳造することに成功しました。

副題

ワームホールの概要

ワームホール(Wormhole)は、アインシュタイン・ローゼン橋とも呼ばれ、虫食い穴とも訳される。それは宇宙に存在するかもしれない、二つの異なる時空を繋ぐ細いトンネル。

実際、より身近なところでは、Solana のクロスチェーン ブリッジであるワームホール プロトコル (ワームホール プロトコル) は、科学、さらには SF におけるワームホールと同じ意味と位置づけを持っています。

エクスプロイトトランザクション

エクスプロイトトランザクション

ミント 120,000 ワームホール ETH:

https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAeBEcD6Es 

副題

https://etherscan.io/address/0x629e7da20197a5429d30da36e77d06cdf796b71a#internaltx 

脆弱性攻撃のプロセス

ステップ 1: 攻撃者は偽の sysvar アカウントを使用して「verify_signatures」関数を呼び出します: https://solscan.io/tx/25Zu1L2Q9uk998d5GMnX43t9u9eVBKvbVtgHndkc2GmUFed8Pu73LGW6hiDsmGXHykKUTLkvUdh4yXPdL3Jo4wVS① 偽の「sys」 var account」を「verify_signatures」関数の引数として使用します。

CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

対照的に、以下のスクリーンショットでは、実際の「sysvar アカウント」を引数として「verify_signatures」関数を使用しています。

CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

② 「verify_signatures」関数は、sysvar (L92) から現在の命令をロードします。

CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

③ ただし、関数「load_current_index」では、「sysvar account」が本当に「system sysvar」であるかどうかを検証できません。 「sysvar」から取得した現在の命令(L92)は攻撃者によって制御されているため、次の検証プロセスを正常に通過できます。

ステップ 2: 攻撃者は、前のステップで検証した署名を使用して「post_vaa」関数を呼び出し、120,000 wETH を鋳造すると主張する悪意のあるメッセージ アカウントを作成します: https://solscan.io/tx/2SohoVoPDSdzgsGCgKQPByKQkLAXHrYmvtE7EEqwKi3qUBTGDDJ7DcfYS7YJC2f8xwKVVa6SFUph 5MZ5 xcyn1BCK

CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

① Account2 は「verify_signatures」コマンドで生成された署名セットです。 ② Account3 は「complete_wrapped」関数で使用するメッセージアカウントです。

ステップ 3: 攻撃者は、「complete_wrapped」関数を呼び出して悪意のあるメッセージ アカウントのデータを読み取り、120,000 のETH を鋳造します: https://solscan.io/tx/2zCz2GgSoSS68eNJENWrYB48dMM1zmH8SZkgYneVDv2G4gRsVfwu5rNXtK5BKFxn7fSqX9BvrBc1rdPAe BECD 6E

CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

① Account3 は「post_vaa」関数で生成されたメッセージアカウントです。

②Account6は、鋳造されたWormhole ETHを受け取るための「受取人」アドレスです。 ③Account9はPDA(Program Derived Address)であるWormhole ETHの鋳造機関です。これが、攻撃者が署名検証に合格した直後にトークンを鋳造できる理由です。

この脆弱性の根本原因は、署名の検証プロセス (「verify_signatures」) で、プログラムが Solana が 1.8.0 に更新されたときに非推奨となった「load_current_index」関数を使用することです。この関数は、入力された「sysvar アカウント」が本当に「system sysvar」であるかどうかを検証しないため、攻撃者はこの重要なアカウントを偽造する機会を利用できます。

契約の脆弱性分析

この脆弱性の根本原因は、署名の検証プロセス (「verify_signatures」) で、プログラムが Solana が 1.8.0 に更新されたときに非推奨となった「load_current_index」関数を使用することです。この関数は、入力された「sysvar アカウント」が本当に「system sysvar」であるかどうかを検証しないため、攻撃者はこの重要なアカウントを偽造する機会を利用できます。

CertiK: Solana クロスチェーン ブリッジのワームホール イベント分析

要約する

要約する

現在、ワームホール チームは脆弱性を修正し、ネットワークを復元しました。ここで、CertiK は開発者に次の提案を提案します。

  • 開発者が外部依存関数を使用する場合、その関数を十分に理解する必要があります。

  • 外部に依存するコード ベースの重要な更新に常に注目し、メジャー バージョンの変更があった場合には、適切なタイミングで独自のコード ベースを調整します。

  • コードのバージョンが更新された場合には、タイムリーに包括的な監査を実施し、監査されたコードをチェーン上にデプロイされたコードにタイムリーに更新することも必要です。

旧暦の5日が近づいていますが、皆さんも「五貧を打破」してほしいと思います。同時に、より高いセキュリティを確保し、財産損失の可能性を減らすために、各プロジェクトが厳格な監査を経てオンラインで展開されることも期待されています。新年から幸運は継続的に「循環」し、安全は厳格な監査から始まり、あらゆるプロジェクトはより良い「スタート」を迎えます!

これまでのところ、CertiK は 2,500 社の顧客企業に認められており、3,110 億ドルを超えるデジタル資産を損失から保護しています。 CertiK パブリック アカウントの下部にあるダイアログ ボックスをクリックして、メッセージを残して無料の相談と見積もりを入手してください。

オリジナル記事、著者:CertiK。転載/コンテンツ連携/記事探しはご連絡ください report@odaily.email;法に違反して転載するには必ず追究しなければならない

ODAILYは、多くの読者が正しい貨幣観念と投資理念を確立し、ブロックチェーンを理性的に見て、リスク意識を確実に高めてください、発見された違法犯罪の手がかりについては、積極的に関係部門に通報することができる。

おすすめの読み物
編集者の選択