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

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

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週目マイニングマシン市場リリース

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

推薦する

ブロックストリーム開発者ラスティ・ラッセルが新しいビットコインアドレスシステムを提案

Blockstream のビットコイン開発者 Rusty Russell 氏は最近、Segwit と...

9万台のマイニングマシンに関する噂は偽物、ビットメインはコメントを拒否

BTCスナイパーの微博によると、彼は今朝このニュースを報じた。「ビットメインのウー・ジハン氏の9万台...

価値ネットワークブロックチェーンは、仲介者を排除することで都市生活にどのような変化をもたらすのでしょうか?

今後多くの新しいトレンドが、都市改革に新たな機会をもたらす可能性があります。自動運転車からシェアリン...

非常に効率的で環境に優しいビットコインマイニングですが、ハッキングされる可能性はありますか?

ビットコインのハッシュレートが新たな高値を更新し続ける中、新たなデータはマイニング装置のエネルギー効...

BTC がどれだけ人気があるのか​​本当にご存知ですか?大学入試の補助教材にビットコインに関する問題が登場

2009年から現在に至るまで、ビットコインは初期にはほとんど注目されていませんでしたが、大手メディア...

Ethereum 2.0 ステーキングに参加する人がなぜこんなに少ないのでしょうか?

一部の人にとって、32ETH の価格は単に高すぎるのです。 Ethereum 2.0 の最初の部分は...

コインゾーントレンド: 今週のビッグデータに基づくビットコインの価格動向 (2017-02-23)

複数のパーティが調整して力を蓄え、再び攻撃する1. 市場動向<br/>今日は2017年2...

8億清算!ビットコインが急落し始め、1時間以内に3万人が市場から撤退を余儀なくされる

1月20日正午、1週間続いたビットコインの横ばい傾向が好転し、12時近くに急落が起こり、勢いが急速に...

EUはパリ攻撃を受けてビットコインと匿名決済手段の取り締まりを計画

11月20日、ロイター通信によると、先週フランスのパリで発生したテロ攻撃を受けて、EUの内務大臣と法...

李国全:ブロックチェーン技術は将来私たちの生活を覆すだろう

著者:李国全2016年6月24日、同校の新プロジェクト「リーダーシップ+エグゼクティブフロンティア人...

IBMと三菱UFJ銀行がHyperledgerベースのパイロットプロジェクトを共同で実施

Crazy Review : Hyperledger プロジェクトは、Linux Foundatio...

河南省警察が大規模なビットコイン盗難事件を解決:毎日4万kWhの電力が盗まれ、3人家族が40年間使用するのに十分な量

△写真提供:国家電網平頂山電力供給公司メイジンドットコム記者パン・ティン メイジンドットコム編集者ル...

すべての通貨の価格は全面的に上昇した

金曜日(4月15日)のアジアセッションでは、さまざまな通貨建てのビットコインの価格が上昇し、米ドル建...

ビットコイン:原理、セキュリティ、そして将来

数学今年の初めに、たまたま友人とビットコインについて話し合いました。この友人は暗号技術にまったく触れ...