3分間の強奪:EIP-7702はいかにしてウォレットを自らの強盗犯に変えたのか

わずか3分24秒。それだけの時間で、署名済みメッセージが1つ送られ、EIP-7702の委任が設定された後、Binance関連とラベル付けされたウォレットから167,464 ETHと1兆6,150億USDTを含む63種類のトークンが消失した。phylax.systemsのセキュリティ研究者Odysseusは、この攻撃の全容をオンチェーンで追跡し、スレッドにまとめた。その投稿は今、急速に拡散している。

そのタイムラインには背筋が凍る。

20:20:59 UTC:EIP-7702の委任認証がウォレットに設定される。20:24:23:別のアドレスがsweep()を呼び出す。ウォレット自身の実行コンテキストで攻撃者のコントラクトが動作し、資産のすべてが0x027…2ffeへ流出する。そして20:41:23、事態はさらに悪化する。委任されたウォレットが別のスマートウォレットでオーナー権限を使い、さらに7億8,000万USDCを移動させる。

なぜこれほど危険なのでしょうか? EIP-7702では、通常のウォレットが一時的にスマートコントラクトのコードを実行できます。問題は、委任がそのまま残り、そのコードが所有者の再署名なしに送金を承認し続けられることです。攻撃者が指定した委任先は、Tornado Cashから資金提供を受けたオペレーターをハードコードし、無関係な呼び出し元を拒否していました。これは手当たり次第の攻撃ではなく、精密な攻撃でした。

署名がどのように取得されたのかは、まだ明らかになっていません。秘密鍵が盗まれたのか、それとも所有者をだまして悪意ある承認をさせたのか。いずれにせよ、教訓は同じです。

身を守るために:

1. 内容を完全に理解していない不透明な承認メッセージには、決して署名しないでください。特に、委任に言及するものには注意してください。

2. 自分のアドレスがどのコードに委任されているかを確認し、見覚えのないものはすぐに取り消してください。

3. 資産を分けて保管しましょう。普段使いにはホットウォレット、多額の保管にはコールドウォレットを使ってください。

4. 委任されたコードは、他のコントラクトにおけるオーナー権限も含め、あなたの権限を引き継ぐことを忘れないでください。

たった1回の署名。2回目の確認はありません。ステーブルコインだけで24億ドル以上が、わずか4分足らずで消えました。EIP-7702は強力ですが、その力は両刃の剣です。

#Ethereum #EIP7702 #CryptoSecurity #DeFi