コンスタンティノープルのハードフォークが抜け穴により遅延
秦晓峰
@QinXiaofeng888
2019-01-16 04:03
本文约1691字,阅读全文需要约7分钟
ハードフォークのアップグレードが来週月曜日に実施されるかどうかについて、胡静宇氏は、当局者がまだ具体的なリスクを評価して解決策を策定していないため、ハードフォークのアッ

によるとblog.ethereum ニュースによると、イーサリアム改善提案(EIP 1283)に重大なセキュリティ脆弱性が発見されたため、当初予定されていた708万ブロック目でのコンスタンティノープルハードフォークが延期されたとのこと。

イーサリアムの週間創設者Evan Van Ness新しいハードフォークの日付は金曜日の次回のコア開発者電話会議で決定されると同社は述べた。イーサリアムコア開発者Afri Schoedon副題

脆弱性が発生した場合はどうすればよいですか?

EIP 1283脆弱性への対応に関しても、イーサリアム関係者はブログを通じて、コンスタンティノープルのハードフォークは延期される、つまり708万ブロック目ではフォークされないと述べ、関連ソリューションをリリースした。

アップグレードおよび同期されたノード、マイナー、取引所については、Geth または Parity の新しいバージョンがリリースされた後、間に合うようにバージョンを更新する必要があります。新しいバージョンは、ブログのリリースから 3 ~ 4 時間以内にリリースされる予定です。具体的な計画は以下の通りです。

  • Geth バージョン: Geth 1.8.21 にアップグレードする; Geth 1.8.19 にダウングレードする; Geth 1.8.20 に留まりたい場合は、スイッチ '-override.constantinople=9999999' を使用して Constantinople フォークを無期限に延期します。

  • パリティ バージョン: Parity Ethereum 2.2.7-stable または Parity Ethereum 2.3.0-beta へのアップグレードが推奨されますが、Parity Ethereum 2.2.4-beta へのダウングレードは推奨されません。

同期的にアップグレードされていないノード、ウォレット、およびトークン所有者 (ネットワーク ユーザー) については、現時点でのアクションは必要ありません。

副題

脆弱性とは何ですか?

今日の北京時間0:00、スマートコントラクト監査会社ChainSecurityイーサリアム コンスタンティノープルのコード (EIP 1283) に脆弱性があり、関連するコントラクトへの攻撃、ユーザー残高やその他の重要な変数の変更などの「再入攻撃」につながる可能性があるとのレポートを公開しました。

なぜリエントランシー攻撃が発生するのでしょうか? ChainSecurity は、フォーク前はストレージに少なくとも 5000 ガスが必要であり、これはコントラクトを呼び出すために「transfer」または「send」を使用したときに送信される 2300 ガスよりもはるかに多く、フォーク後はストレージに必要なガスは 200 ガスのみであると考えています。攻撃者は、いくつかのパブリック関数を呼び出し、必要な変数を変更することができます。たとえば、攻撃者は攻撃者のコントラクトを呼び出すことができ、アカウント残高を含む弱いコントラクトの変数を正常に変更するには 2300 ガスを費やすだけで済みます。

もちろん、攻撃が成功するにはいくつかの条件が必要です。

  • 「転送/送信」の直後に状態変更操作が続く関数 a が必要ですが、これは明らかではない場合があります。

  • 攻撃者は状態を変更するために関数 A にアクセスできる関数 B を持っている必要があり、B の状態変更は関数 A と競合します。

  • ファンクション B は 1600 ガス (2300 ガス料金 - 700 ガス通話料金) 未満で実行する必要があります。

ChainSecurity は、次の点をチェックすることでコントラクトへの攻撃を防ぐことができることをすべての人に思い出させます。

  • 転送イベント後にアクションがあるかどうかを確認します。

  • これらの操作によってストレージの状態が変更されたかどうかを確認します。最も一般的な方法は、いくつかのストレージ変数を割り当て、どの変数が変更されたかを確認し、リストを作成することです。

  • 管理者以外がアクセスできるコントラクト内の他のメソッドがこれらの変数のいずれかを使用していることを確認してください。

  • メソッド自体がストレージ状態を変更することを確認します。

  • 副題

バグはいつ再発しますか?

EIP 1283 の再突入攻撃は、イーサリアムの開発の歴史の中で何度も登場しており、永続的な病気です。

「実際、この攻撃手法はイーサリアムでは長い間よく知られていた。イーサリアムコミュニティがこの問題を考慮していなかったとは思えない」とイーサリアム研究者のフー・ジンギュ氏はOdailyに語った。

リエントランシー攻撃の最大の影響は、DAO 契約の脆弱性インシデントです。当時、ハッカーはDAO契約の抜け穴を利用して4,000万ドル以上相当のイーサリアム(ETH)を送金しました。イーサリアムコミュニティは資金を取り戻すためにソフトフォークとハードフォークを行うことを決定し、その結果、元のチェーン(現ETC)に残ることを選択する者と参入することを選択する者とコミュニティ内で意見が分かれました。新しいフォークチェーン (ETH)。

Hu Jingyu氏によると、一部の論理操作を容易にするために、イーサリアムのスマートコントラクトには「transfer()とsend()」という呼び出しメソッドが残されていますが、開発者にとってはセキュリティリスクも残されています。 「しかし、開発者がそのようなセキュリティリスクがあることを知っていれば、コードを書く際により論理的な判断を下すことでセキュリティを確保することができます。」

ハードフォークのアップグレードが来週月曜日に実施されるかどうかについて、胡静宇氏は、当局者がまだ具体的なリスクを評価して解決策を策定していないため、ハードフォークのアップグレードの具体的な時期は未定であるべきだと述べた。

秦晓峰
@QinXiaofeng888
作者文库