Ethereumネットワークを襲う”Eclipse Attack”
Ethereumネットワークの開発者は、今週公開された研究論文に記述されている欠陥を修正するネットワークの基盤となるコードベースを更新する事を発表。
ボストン大学とピッツバーグ大学の研究者が発表した研究者の論文では、”Ecplise Attack”という、スマートコントラクト内に存在する脆弱性をエクスプロイトする攻撃手法が公開された。
Ecplise Attackは、脆弱なスマートコントラクトのピアツーピア接続スロットを塞いで独占し、ターゲットのノードをEthereumネットワークから隔離する攻撃手法である。
言い換えれば、最新のブロックチェーン情報がターゲットノードに到達することを防ぐことによって、ノードを全体のネットワークから分離するのだ。
実は、Bitcoinネットワークも、Eclipse Attackに対して脆弱だった事が、過去に公表されている。
Ecplise Attackの成功には”たった2つの”ノードで十分
Bitcoinネットワークのノードに対して日食攻撃を行うには、被害者のノードを1つだけ取り出すために数千の悪意のあるノードが必要である。
だが、攻撃者は別のノードを隔離して影響を及ぼすために2つの悪意のあるEthereumノードしか必要としない。
更に研究者は、他の多くのデジタル通貨やICOをサポートする多数のスマートコントラクトも、Ecplise Attackに対して脆弱であることを指摘した。
実は、Ethereumは暗号通貨の名前として一般的に知られているが、実は暗号通貨Etherの基盤となるノードのネットワークである自体の名前である。
今この瞬間も多くのプロジェクトが誕生しており、その殆どがEthereumネットワークを基盤とし、スマートコントラクト技術を応用したプロジェクトである。
つまり、ネットワークとしてのEthereumに存在する脆弱性は、それら数多くのプロジェクトで開発されているスマートコントラクトに影響がある事を意味するのだ。
Ecplise Attackで攻撃者が得るものとは
Ecplise Attackが成功すると、攻撃者は以下を達成する。
- ターゲットのマイニングパワーを奪い、ブロックチェーンの合意形成アルゴリズムを損なう攻撃を仕掛ける
- 二重支出、自分に有利なマイニングを行う
- ターゲットに偽のトランザクション情報を表示する事で、ターゲットに気付かれずにEtherを盗み出す
- Ecplise Attackを受けたノードでブロックチェーン・エクスプローラーを閲覧出来ないようにする(この時、スマートコントラクトには、Ethereumネットワークの情報を参照するパラメータもある為、想定しない情報が出力される事がある。)
Ethereumノードに対して修正を公開
この論文を公開した研究チームは、論文の公表で済ませず、Ethereum Foundationと協力して、Ecplise Attackの原因であるバグを静かに修正する。
研究者らは、開発チームに対してさまざまな対策を推奨し、既に2週間前にリリースされたEthereumノードで動作するソフトウェア1.8.0に修正を適用したと発表。
バグの修正は、Ecplise Attackを完全に防ぐわけではない。
なぜなら、攻撃を実行するために必要な悪意のあるノードの数を2から数千に増やしただけだからだ。
それでも攻撃を成功させる為の難易度が上がったことには間違いない。
もし興味があれば、公開された論文を読んでみるといいだろう。