そのブロックチェーンの“盗賊”は、かくして秘密鍵をハックして「仮想通貨の長者」になった

シンプルな秘密鍵を推測することによって、一時は54億円相当にもなった仮想通貨を盗み出している輩がいる。セキュリティコンサルタントの調査によって、そんな「ブロックチェーン盗賊」の存在が明らかになった。いったいどんな手口なのか。そして莫大な額を“稼ぐ”窃盗犯から秘密鍵を守るため、ユーザーとウォレット開発者が注意すべきことは。
秘密鍵をハックして「仮想通貨の長者」になった、ブロックチェーンの“盗賊”
IMAGE BY ELENA LACEY

仮想通貨(暗号通貨、暗号資産)「イーサ」を盗み出す方法はないか──。2018年夏、セキュリティコンサルタントのエイドリアン・ベドナレクは頭をひねっていた。仮想通貨の窃盗が相次いでいた当時、ベドナレクは渦中の業界のクライアントを担当していたのである。

彼がイーサリアムに注目したのは、その悪名高いともいえる複雑さと、可変部分が生み出す脆弱性のリスクゆえだ。しかし彼は、まず最も簡単な疑問の答えを出すことからとりかかった。

秘密鍵は通常78桁の数値で構成されており、特定のアドレスに保管された仮想通貨を保護する役割を果たす。では、仮想通貨を保有している人のなかに、「1」という極めて単純な秘密鍵を設定して通貨を保管している人はいるのだろうか?

彼はイーサリアムの取引がすべて記録されたブロックチェーンを調べて驚いた。この単純すぎておよそ意味をなさないであろう秘密鍵が、実際に仮想通貨の保管に使われていたのだ。

そして、この秘密鍵が使われていたイーサリアムウォレットに保管されていた通貨は、そこからすでに抜き取られていた。抜き取ったのは、おそらくベドナレクよりずっと前に「1」という秘密鍵が使われていると推測した窃盗犯だろう。


関連記事:イーサリアムを生んだ男、ヴィタリック・ブテリン


推測されやすい鍵を使うとどうなるか

秘密鍵を知ることができれば、誰でもその鍵を使って公開アドレスを突き止め、ロックを解除できる。これはビットコインやほかの仮想通貨でも同じだ。こうして、あたかも通貨の保有者であるかのように公開アドレスから仮想通貨を送金することもできる。

この発見が、ベドナレクの好奇心を刺激した。そこでさらに「2」「3」「4」……と順番に数十種類の秘密鍵を調べたところ、いずれもウォレットが同じように空になっていたという。こうした状況を受け、彼はセキュリティコンサルタント会社Independent Security Evaluators(ISE)の同僚とともにコードを書き、いくつかのクラウドサーヴァーを活用して数十億の秘密鍵を調べてみることにした。

この調査の過程で、数百種類の推測されやすい秘密鍵が仮想通貨の保管にこの数年で使用されていたことがわかった。そればかりか、ベドナレクらが「ブロックチェーン盗賊(blockchain bandit)」と呼ぶ存在も浮かび上がってきた。あるアカウントが、秘密鍵を推測する同様の手法によって45,000イーサ(一時は5,000万ドル、約54億円以上に相当)も吸い上げていたようなのだ。これについて、ISEは19年4月に発表した論文で詳細を報告している。

「盗賊はわたしたちと同じようなことをしていましたが、その規模ははるかに大きいものでした」と、ベドナレクは言う。「個人による犯行なのか、組織犯罪なのかはわかりませんが、どちらにしろ膨大な時間を費やして新しいウォレットを嗅ぎ回り、あらゆる取引に目を光らせ、利用できる鍵を探っているようです」


関連記事実録:1,000万円相当のビットコインは、こうして永久に失われた


無数の“浜辺”で探す1粒の“砂”

ランダムに生成されたイーサリアムの秘密鍵を探し当てるということは、2の256乗の組み合わせから正解を当てるということだ。この2の256乗という値は、宇宙にある原子の数と同じくらいだとされている。

ランダムに生成される秘密鍵を特定する作業を、ベドナレクはこんなふうにたとえている。浜辺で砂粒を選んで、それから友人に「10億兆」という気が遠くなるような数のビーチから同じものを見つけるよう頼むようなものだ──。

しかし、ベドナレクがイーサリアムのブロックチェーンを調べたところ、仮想通貨の所有者のなかには推測されやすいごく単純な秘密鍵を使って仮想通貨を保管している人たちがいたことを示す証拠が見つかった。

このようなあやまちが起こった原因としては、ウォレットのコーディングエラーによって鍵の長さが短くなってしまった可能性や、経験のないユーザーが自分で秘密鍵をつくれる仕様になっていた可能性、あるいはウォレットに仕組まれた悪質なコードによってランダム生成プロセスが改ざんされ、開発者が推測しやすい鍵が生成される仕組みになっていた可能性などが考えられるとベドナレクは言う。

氷山の一角として現れた「732種類の鍵」

ベドナレクらISEのチームは、最終的に340億個のブロックチェーンアドレスをスキャンして、弱い鍵が使われていないかを調べた。彼らはこの作業を、浜辺での宝探しを意味するビーチコーミングならぬ「イーサコーミング」と呼んでいる。こうして、イーサリアムのとてつもないエントロピーから、見破られやすい“砂粒”を発掘する作業にとりかかった。

この作業の結果、ベドナレクらは732種類の推測されやすい秘密鍵を見つけた。どの鍵も一度はイーサを守っていたが、いまはどれも中身が空になっている。なかには明らかに正当な取引による資金移動も含まれるものの、この732の鍵は15年のイーサ取引開始以来盗まれてきた大量の鍵のほんの一部に過ぎないとベドナレクは推測している。

さらに彼は、空っぽになったアドレスのうち12種類は同じ窃盗犯による被害を受けた可能性がある点に注目した。これらのアドレスから仮想通貨が送金されたアカウントには、現在45,000イーサという膨大な額の仮想通貨が入っている。これは、およそ770万ドル(約8億3,000万円)相当だ。


関連記事仮想通貨は「身近な脅威」にさらされている──改めて知っておくべきビットコインのセキュリティ対策


鍵を盗まれたら、それが最後

ベドナレクは、その窃盗犯が過去に空っぽにした弱い鍵をもつアドレスに、1ドル(約107円)分のイーサを送金してみた。すると、わずか数秒でそのイーサは吸い上げられ、窃盗犯のアカウントに移されてしまった。

今度は、過去に使われたことのない新しい脆弱な鍵をもつアドレスに、1ドル分のイーサを送金してみた。するとやはり、ものの数秒でアドレスは空になり、今度は数千ドル相当のイーサが保管されていた別のアカウントに送金された。

ベドナレクいわく、イーサリアムブロックチェーン上でペンディング中の取引では、別の巧妙な窃盗犯がイーサを盗み出そうとしているのを確認できたという。このときは誰かが、この窃盗犯とタッチの差でイーサを先に手に入れた。窃盗犯たちはどうやらあらかじめ作成された膨大な鍵のリストをもっているらしく、人間業ではないスピードでアドレスを自動スキャンしているようだ。

窃盗犯のアドレスは入金ばかり

ベドナレクらは、ブロックチェーン盗賊が保有するアカウントの取引記録を調べた。すると、このアカウントには過去3年で数千のアドレスからイーサを受け取っていたものの、そこから別のアドレスに送金された記録はないことがわかった。ベドナレクは、自動的なイーサコーミングを用いた資金移動だと考えている。

ブロックチェーン盗賊のアカウントには、イーサの交換レートがピークに達した18年1月時点で、38,000イーサが保管されていた。その価値は当時のレートで5,400万ドル(約58億円)以上だ。しかし、イーサの価値はその1年後に急落し、窃盗犯の保有している仮想通貨の価値は約85パーセント減少した。

「気の毒だと思いませんか?」と、ベドナレクは笑う。「この窃盗犯はこれほどの大金をかき集めたあげく、市場の暴落によってすべてを失ったのです」

ベドナレクによれば、ブロックチェーン盗賊の動きは追跡できたものの、何者であるかは見当がつかないという。北朝鮮政府が仮想通貨の取引所などを狙って、5億ドル以上相当の仮想通貨をこの数年で盗み出したとする報道もあるが、「これが北朝鮮のような国家の仕業だったとしても驚きません。でもすべては憶測にすぎないのです」と彼は話した。


関連記事仮想通貨の弱点が、「イーサリアム・クラシック」への攻撃から浮き彫りに


脆弱な秘密鍵のリスク

ベドナレクは脆弱な鍵が生成される原因となったウォレットを特定することもできなかった。確認できたのは、弱い鍵が生成された結果、窃盗が起きたという証拠だけだ。「窃盗被害があったことについては確認できますが、どのウォレットが原因かについては特定できません」と、ベドナレクは言う。

またブロックチェーン盗賊たちが、単純な暗号鍵の予測という方法によって資産の大半を築いたのかどうかもわかっていない。ブレインウォレット[編註:人が鍵を暗記すること]に使われるパスフレーズを推測するなど、別の手法が用いられた可能性もある。人が暗記できるような単語で構成されたパスフレーズは、完全にランダムな数字で構成された鍵と比べて総当たり攻撃に弱いのだ。

17年、あるセキュリティ研究者チームはブレインウォレットで保管されていた2,846ビットコインが盗まれた証拠を突き止めた。このときの被害額は、当時の交換レートで1,700万ドル(約18億円)を超えている。

ブレインウォレット絡みの窃盗を巡っては、1回につき40,000イーサがもち去られた事件が15年にも起きた。この被害額は、ブロックチェーン盗賊がもたらした被害額とほぼ同じだ。

イーサコーミングの教訓

ISEは、ビットコインのブロックチェーンでは同様の調査をいまのところは実施していない。しかし、ベドナレクがビットコインにおいて100種類ほどの脆弱な鍵をランダムにチェックしたところ、やはりすべてのウォレットの中身が抜き取られていたという。

ただし、ここではイーサリアムで発見されたような大規模な窃盗はなかった。ビットコインを巡っては窃盗犯同士で熾烈な争いが繰り広げられているぶん、ひとつひとつの被害の規模がイーサよりも小さいのかもしれない。

ベドナレクいわく、今回ISEが発見したイーサコーミングの教訓はこうだ。ウォレットの開発者は自分たちのコードを慎重にチェックし、鍵を短く脆弱なものにする危険性があるバグを見つけ出さなければならない。またユーザーも、自分たちが選ぶウォレットに注意をはらう必要がある。

「ヘルプデスクに電話をかけて、取引の取り消しを依頼することはできません。一度どこかに移されれば、永久に失われてしまうのです」と、ベドナレクは指摘する。したがって、「信頼できるウォレットを使用し、信頼できるソースからダウンロードすること」が求められる。

イーサリアムの交換レートが激しく変動していることはさておき、ブロックチェーン盗賊にこれ以上“寄付金”を与える必要はないのだ。


RELATED ARTICLES

TEXT BY ANDY GREENBERG

TRANSLATION BY TAKU SATO/GALILEO