📖

DMMビットコインの流出から考えるブロックチェーンのセキュリティ

2024/11/05に公開

DMMビットコインの事件

2024年5月31日に何者かにより、480億円相当のビットコインが第三者のウォレットに不正に流出しました。

この事件がどのような手口で行われたのか自分の憶測をまとめました。ブロックチェーン業界に関わる開発者や事業者の方のお役に立てば幸いです。

DMMビットコイン事件と手口

コールドウォレットからホットウォレットに480億円のビットコインを送金する際に、ホットウォレットのアドレスに似た偽ウォレットに送金がされました。これはビットコインのトランザクションを追うことでも確認できます。

ホットウォレットは複数人の署名を経てトランザクションが実行されるマルチシグウォレットであったと想定されています。よくある方法としては署名する権利をもつ人数の過半数以上がトランザクションの内容に署名することで実際にトランザクションが実行されるというものです。

ここからは推測ですが、最初のトランザクションに署名する人(もしくは秘密鍵を乗っ取ったクラッカー)が故意に偽アドレス(ビットコインを送金するtoアドレス)に送金するトランザクションに署名します。この時、アドレスの先頭と末尾の一部分は本物のアドレスと同じであるため、他の人からしたら本物のアドレスが送金先に選ばれていると錯覚します。そして2人目、3人目の人はビットコインを偽アドレスに送金するトランザクションに署名してしまいトランザクションが実行されてしまうという手口です。アドレスポイズニングと呼ばれる手口です。

秘密鍵はどのように取得したのか?

考えられる可能性は2つあると思います。

  1. 内部犯がいて、トランザクション先を故意に偽アドレスに設定した
  2. 外部にいる犯罪組織が内部のトランザクションに署名権をもつアドレスの秘密鍵を盗んで、自分の偽アドレスに署名した

どちらにせよ、悪意のある人間が秘密鍵を管理している可能性が高いです。ゼロトランザクションのような攻撃がされている場合はトランザクションの経歴に残りますが、その経歴がトラッカーを見ている限りはないので、悪意のある人間に秘密鍵が渡ったと考えています。

盗まれたビットコインはどうなるのか?

結局トランザクションで足がつくので、何かしらの方法でトランザクションの行方を眩ませるのだと思います。トルネードキャッシュを使って資金洗浄をしたりして、どのアドレスに資金を移動させたかをわかりにくくする方法が考えられます。いずれにせよ、偽アドレスにビットコインが出金された時点でそのアドレスの秘密鍵を持っている人間又は組織しか480億円のビットコインを引き出せないので、もうこのビットコインは帰ってこないと考えられます。

ではどうするべきだったのか?

暗号通貨取引所はある会社が中心に立ちサービスを運営するCEX(Centralized Exchange)です。その性質上中心にある会社にサービスの権限が集まります。クラッカーからその会社が狙われるのも当然のことです。これまでのブロックチェーンのセキュリティのインシデントを振り返ってみてもマウントゴックスやコインチェックといった取引所は攻撃を受けています。

それを踏まえると2つの対策の仕方があると思います。

  1. 責任・権限の分散
  2. 予め攻撃される前提で対策する

1つ目は、トランザクションを実行する権限をより分散させ1人に集中させないことです。今回のDMMビットコインはマルチシグという複数人の署名が必要な方法が使われていてこれも1つの権限の分散化にあたります。ですが結局アドレスポイズニングのような方法で攻撃がされてしまうことを考えると複数人のチェックをより厳密に行ったりする必要があります。

そこでもう1つの対策としては、顧客の預かり資産又はサービス内の仮想通貨に対して攻撃がされる前提で対策することです。今回の件でいうと、1つのウォレットに480億円を管理していたため、1回の攻撃で大ダメージを受けたと言えます。これが仮に480億円の顧客の預かり資産を10個のアドレスに分散して管理していた場合48億円程度の被害で済んだかもしれません。その分アドレスの管理者が増えるという問題があるかもしれませんが、1撃のダメージを最小に抑えるという点では有効な手段だと思います。

まとめ

どの書籍でも言われるように人間がセキュリティホールになってしまうことを体感しました。クラッカーによる被害を受けたことは残念なことですが、今後セキュリティ面対策や技術発展によりセキュリティは今よりも向上していくはずです。筆者も微力ながらその運動の力になれるように知見をためて発信を続けていきます。ここまで読んでいただきありがとうございました。

Discussion