要点
・ハッカーはトレーダーが貸し手に代わってローンを清算できるようにする「フラッシュローン」と呼ばれる仕組みを悪用した犯行でした。
Balancer Pool(バランサープール)がハッキング被害
(画像引用先 Balancer Pool)
今週月曜、ハッカーはフラッシュローンシステムの隙をついてハッキングを実行し、50万ドル相当のイーサリアムなどの仮想通貨を盗んだことが分かりました。
Balancer Pool(バランサープール)は、アルゴリズムを使用してシステム全体で実行される各暗号の量のバランスをとる自動マーケットメーカーです
ハッカーは複雑なトランザクションをイーサリアムメインネットに送信したうえで、Balancer Poolの1つに攻撃を仕掛けています。さらに、1度目の攻撃からわずか数分後には2度目のトランザクションが発生し、別のバランサープールもハッキング攻撃を受けています。
フラッシュローンとは?
フラッシュローンとは、ある一定の目的のために多くのお金を取り出すことを可能にするローンを指しています。
フラッシュローンはトレーダーが貸し手に変わってローンを清算できるようにするもので、トレーダーは貸し手側からローンを引き取り、負債を返済して預け入れ金を回収します。
その後、預け回収した入れ金を使って元のローンを返済し、残った資金を手に入れる。
借主側(ユーザー)のローン返済を促しつつも、残りの資金を手に入れることができる錬金術と言えます。
このフラッシュローンは、今年初めごろからDeFiプロジェクトでも始まっている新たなサービスですが、今年2月、分散型金融(DeFi)レンディングサービスのbzxで今回と同様の被害が発生しています。
ハッカーは、1inch (1トランザクション)内なら無担保で仮想通貨の借り入れができる点を悪用し、まずETHを借り入れ、異なるDeFiプラットフォームで空売りをしたうえで通貨価格を価格を下げた後、決済を行い短時間で利益を上げていたことがこれまでの被害からもわかっています。
今回の被害では、ハッカーが1inchになると、dYdXから104,000 WETHのフラッシュローンを手に入れ、その後WETHをSTAトークンに24回交換していることがわかっています。
クレロス(KLEROS)の最高技術責任者であるクレメント・レザイジ(Clément Lesaege)氏は海外メディアに対して、STAトークンとBalancer Poolは脆弱ではないものの、Balancer PoolでSTAトークンを使用すると、プールをドレイン(排出)できるという脆弱性が生まれると語っています。
Balancer Poolの設定方法によよってプールは多くのWETHを解放することから、ハッカーはこの手口でWBTC、SNX、LINK、COMPも取得しています。
さらにその後、ハッカーはフラッシュローンを返済し、ほとんど価値のないSTAトークンのいくつかを使用して、バランサープールの市場シェアを獲得し、引き続き同様の手口でスマートコントラクトからより多くのお金を取ったとみられています。
1inchは今回の被害について公式ブログで説明しており、ハッカーは、DeFiプロトコルについて幅広い知識と理解を持つスマートコントラクトエンジニアが実行したとみており、攻撃については事前に組織化され、十分に準備されたうえでの犯行であったと語っています。
The BlockのSteven Zheng(スティーブン・ジェン)氏は
And here is Balancer Lab’s takehttps://t.co/7tjxYJ4e1m
— Steven (@Dogetoshi) June 29, 2020
https://platform.twitter.com/widgets.js
(日本語訳)
コミュニティメンバーは、3日前にこれらのトークンを使用した潜在的なエクスプロイトをバランサーラボチームに警告し、チームにブラックリストに登録するように依頼していた。
とTwitterで述べています。
なお、バランサーはエクスプロイト(脆弱性のあるソースコード)の前にプロトコルをサイトから除外していましたが、契約自体はコントロールできないことから、契約レベルでは除外できなかったと、レザイジ氏は述べています。
同氏は、ハッカーがこのバグの完全な意味を理解したとは思わないと述べています。