イーサリアムへの攻撃によって引き起こされたフォークイベントの技術的分析

イーサリアムへの攻撃によって引き起こされたフォークイベントの技術的分析

2021年8月27日北京時間20時50分頃(ブロック高13107518)、イーサリアムが突然フォークしました。 Geth のコード バージョンの変更とフォークの原因となったトランザクション (0x1cb6fb36633d270edefc04d048145b4298e67b8aa​​82a9e5ec4aa1435dd770ce4) を分析することで、Ethereum フォークの根本的な原因が明らかになりました。Geth の古いバージョンでは、プリコンパイルされたコントラクト呼び出しを処理する際に、コーナー ケースでのパラメーター値の処理が考慮されていなかったため、重複コピーが発生し、異常な戻り値が発生していました。この脆弱性 (CVE-2021-39137) は Geth の担当者に提出されました。詳細はまだ明らかにされていないが、攻撃者はすでにこの脆弱性を悪用して攻撃を実行している。私たちはタイムリーな分析と開示が必要だと信じており、私たちの分析がコミュニティに必要な理解と支援を提供できることを願っています。

攻撃分析

当社のオンライン分析ツールを使用すると、次のことがわかります。

図1

このトランザクションは、慎重に構築された STATICCALL を実行しました。攻撃者は、addr を 0x04 (事前コンパイルされたコントラクト dataCopy)、inOffset を 0、inSize を 32、retOffset を 7、retSize を 32 に設定しました。

図2

STATICCALL のターゲット アドレスはプリコンパイルされたコントラクトなので、図 2 の RunPrecompiledContract が実行されます。

図3

図4

図 3 および 4 のコードを見ると、プリコンパイルされたコントラクト 0x04 によって実行される実際のロジックは、単に (ポインター) を返すだけであることがわかります。

図5

図6

図5はSTATICCALLの実行プロセスを示しています。 753 行目は、プリコンパイルされたコントラクトを実行するためのエントリ ポイントです。 751行目のargsはEVMのメモリ内のinOffset〜inOffset + inSize領域のポインタを指しています。つまりargsはMem[0:32]を指しています。

図6と、プリコンパイルされたコントラクト0x04 (dataCopy)の以前の分析によると、753行目の戻り値retはargsとまったく同じポインターであり、Mem[0:32]を指していることがわかります。

  • Geth のバージョン 1.10.7 (バグあり) では、762 行目では、ret が指す値を EVM のメモリ内の retOffset ~ retOffset + retOffset 領域に割り当てます。つまり、Mem[0:32] の値を Mem[7:7+32] に割り当てます。 retはMem[0:32]へのポインターなので、今回はMemory.SetがMem[7:32]の値を変更し、retが指す値を変更します。したがって、771 行目で返される ret は、プリコンパイルされたコントラクト実行の終了時の ret ではなくなります。

  • Geth のバージョン 1.10.8 (バグなし) では、行 766 が追加されました: ret = common.CopyBytes (ret)。これは、Mem[0:32] の値のディープ コピーを作成し、それを ret に割り当てます。次に、767 行目で実行される Memory.Set は Memory のみを変更し、ret は変更しません。 771 行目に返された ret が正しい ret です。

要約する

攻撃プロセス全体を精査し、Geth のソースコードを分析した結果、根本的な原因は、古いバージョンの Geth では、プリコンパイルされたコントラクトの呼び出しを処理する際に異常な値の処理が考慮されていなかったため、攻撃者が脆弱性を悪用して重複コピーを実装し、戻り値に影響を与え、最終的にフォークにつながったと考えています。 Geth は BSC、HECO、Polygon などのパブリック チェーンの基盤となっているため、この脆弱性の影響は非常に広範囲にわたります。現在、さまざまなパブリックチェーンが次々とアップグレードやパッチをリリースしています。また、インフラストラクチャのセキュリティを確保するために、関連するすべてのノードに対して、できるだけ早くアップグレードとパッチ適用を行うよう呼びかけています。


<<:  VeryHash 8月4週目マイニングマシン市場リリース

>>:  電気窃盗犯罪を取り締まろう!マレーシア警察がビットコイン採掘機数千台を破壊

推薦する

ビットコイン採掘会社アイリス・エナジーが2億ドルの資金調達を模索していると報道

7月20日のニュース、外国メディアの報道によると、事情に詳しい関係者によると、ビットコイン採掘会社ア...

ビットコインは死んだのか?残念ながらそれは単なる愚かな冗談です

Wired によれば、ビットコインは世界を変えるはずだったが、事態は変わった。今、再びこの重要な任務...

暗号通貨市場は3週間横ばい状態が続いているため、この記事ではBTCと他の5つの主要な暗号通貨の上昇の勢いについて説明します。

テキスト |チェン・ジーペン制作 |マーズファイナンス(ID: hxcj24h)最近、BTCを筆頭に...

金融機関はブロックチェーンのテストに協力しているが、マスターカードは慎重に前進している

ビットコインの基盤となるテクノロジーであるブロックチェーンは、現在最もエキサイティングなテクノロジー...

OKExの「最大の権利擁護者」ヤン・ヨンシン氏:私は詐欺を働いているのではなく、アカウントを取り戻したいだけだ

暗号通貨の世界では混乱が絶えません。最近、有名な取引所OKExは、その最強の投資家である「億万長者」...

この号ではコミュニティ独自の通貨Horseboomを共有しています

HBとは何ですか? HB は、Dogecoin の父であるイーロン・マスクから派生した社会的属性を備...

米SEC、仮想通貨ウォレットExodusのA株発行を承認

暗号通貨ウォレットプロバイダーのExodusは最近、米国証券取引委員会(SEC)から自社の株式売却の...

ルートストック、今月下旬にプライベートテストネットを開始

Crazy Review : RootStock は、Bitcoin ブロックチェーン上に構築された...

イーサリアムがPOSに切り替えた後、イーサリアムステーキングの発展と機会

イーサリアム上海アップグレードの登場により、イーサリアムのステーキングは新たなクライマックスを迎える...

BCCのマイニング収益がBTCを上回り、マイナーは選択を迫られる

8月20日、ブロック高479808から、ビットコインキャッシュ(BCC)ネットワークのマイニング難易...

MIT、ビットコイン開発者の「ChainAnchor」に対する疑念を回想

クレイジーレビュー:マサチューセッツ工科大学(MIT)が開発したブロックチェーンプロジェクトであるC...

CEX マイニング ガイド: 最も価値のある DeFi はどれですか?

原子力ファイナンス オリジナル 2020-09-11 16:07 人気度 1870 6月以降、DeF...

VICE のこの記事では、サトシ・ナカモトが誰なのかを紹介しています。また騙されてしまいました。

著者: ManjiMashaオーストラリアの起業家が一転、ビットコインの謎に包まれた匿名の生みの親で...

イーサリアム・ビザンチウムフォークがカウントダウンに入り、「メトロポリス」が最後のスプリントを開始

世界第2位のブロックチェーンであるイーサリアムは、1週間以内に次のメジャーアップデートを受ける予定だ...