orangeitems’s diary

クラウドではたらくエンジニアの日々の感想です。

仮想通貨取引所に関するセキュリティ対策を考える

f:id:orangeitems:20180129231614j:plain

仮想通貨取引所における安全対策を考える

前回の記事で、「リスクをきちんとオープンにし、それに対して具体的な対策を施し、その具体的な説明を利用者にわかりやすく行う取引所であるべき」と書きました。

ただ、よくよく考えると、「君たちはプロなのだから、顧客にわかるように説明・提案したまえ」と言いがちな、SIerの顧客っぽいかなと思い、視点を変えてみたいと思います。

具体的に、現在ある情報から、セキュリティ対策を考えてみます。

 

これまでの取引所の盗難問題を振り返る

まずは、これまで取引所関連で起こった盗難問題を振り返りたいと思います。

 

日本のマウントゴックス社、ビットコイン消失事件(理由不明)

日本において2014年2月に発生した事件。マウントゴックス社が預かる、顧客保有の750,000ビットコインと日本円約28億円が消失した事件。事の真相はわかっていません。

スポンサーリンク

 

韓国の仮想通貨取引所ユービット、二度のハッキングによるビットコイン盗難

韓国において、2017年4月にハッキングにより4000ビットコインが盗まれました。また、同年12月に二度目の攻撃を受け、総預り資産の17%を失いました。ユービットは、取引所を閉鎖するとともに破産申請を行いました。

 

日本のコインチェック社、NEM流出事件

2018年1月に発生した今回の事件です。一部報道によると、海外からの不正アクセスであったとの情報です。復習となりますが、顧客預かり資産である5億2000万NEM(約580億円相当)が5分のうちに大半が引き出されました。現在進行中であり、顧客はNEM以外の通貨も含めて売買や出金ができない状態となっています。

 

 

これらの事件に関する考察

リスクの本質

取引所から仮想通貨が流出という事件は、コインチェック社で初めての事例ではありません。これを防ぐために、まずはマルチシグやコールドウォレットの運用の話が先行しています。一方で、5分で大半の口座(今回は26万口座)の仮想通貨を一括で抜き出せてしまう仕組みがおかしい、というのは昨日より何度も記事で書かせていただきました。

コインチェック社のミスリードで、問題の本質がずれている現状を憂う

仮想通貨の階層的決定性ウォレット(HDウォレット)の致命的なリスクを考える

 

セキュリティ対策の2つの側面

さて、セキュリティ対策を考える時です。セキュリティ対策には2つの側面があります。

(1)問題を発生させないこと
(2)問題が発生したとしても、より被害が小さく収まること

現在、(1)ばかりが論じられています。マルチセグにすればいい、コールドウォレットならいい。これは問題を発生させないための議論です。

しかし、2つ目の視点に注目する必要があります。どんなにセキュリティ対策にお金を投入しても、どうやっても、起こるかもしれません。それぐらい攻撃側も狡猾です。

例えば、ビットバンク社もコールドウォレットに対してはこう言っています。

オフライン環境においては、既に国内外でいくつかの事例もございますが、依然として強盗や脅迫、拉致、ソーシャルエンジニアリング、内部犯行等のリスクがあります。秘密鍵をハードウェアウォレットやペーパーウォレット等で管理する場合、秘密鍵またはバックアップ用パスフレーズを盗まれてしまえば、仮想通貨の移転ができてしまいます。

仮想通貨取引所ビットバンクのコールドウォレット・マルチシグ運用体制について

つまり、問題を発生させないための対策(1)というものは完全はないのです。やり続けるしかないのです。コインチェックの大塚取締役もそのようなことをおっしゃっていましたよね。やれるだけやってきた、と。

 

フェールセーフ

(2)のように、問題が発生したとしても、できるだけ被害を最小化することを、「フェールセーフ」と呼びます。FAIL SAFE、つまり失敗しても安全に、という意味です。フェールセーフの例をいくつか挙げておきます。

・踏切は、停電になって動かなくなっても、踏切棒が地面に落ちないように設計する必要がある。そうしないと、停電などで動かなくなった時、道路に踏切が落ちて大事故につながるおそれがある。

・給湯器は、もしお風呂の栓が抜けていたら、給湯が自動で止まるようにしなければいけない。もし自動で止まらないと、お湯が出続けて永久にお湯が溜まらないおそれがある。

・ストーブは、もし転倒したときは、自動で消火するように作らなければいけない。もし消火しなければ、大火事になってしまう。

さて、これを、仮想通貨取引所に当てはめてみましょう。

・もし、仮に秘密鍵が盗まれ、外部からハッキングされても、取引所の資産のうちほんの一部だけが盗まれるようにする必要がある。一括で全部抜き出されたら、補償できないほどの大量な金額になる恐れがあるからである。

いかがでしょうか。この視点こそ、今できる重要な対策ではないでしょうか。次の章でもっと具体的に記載します。今からでも取り組める提案です。

 

具体的な提案

骨子です。

(1)1つの取引所において、取引所を分割する。
(2)分割した取引所を、支店、と呼ぶ。
(3)各支店で取り得る口座数を制限する。例えば1万口座までとする。
(4)1口座において保管できる仮想通貨の量を限定する。また制限は日本円換算とする。制限を超えた日本円評価額のときは、売却しかできないこととする。
(5)各支店においては、シードは独立させる。つまり支店シードとする。
(6)各支店のシードを運用するITインフラ基盤は、独立させる。したがって、支店AのITインフラ基盤と、支店Bのインフラ基盤は、全く別のサーバーで動かす。

結果として、こうなります。

・コインチェック取引所においてNEMを保管する口座は26万でした。したがって支店が、26個に分割されます。
・26個のシードがあることになります。それぞれは別のインフラで運用します。したがって、26個のシードが別々のインフラに保管されることとなります(この辺りは運用で確実に分割して支店ごとに独立して保管します)。
・26個の支店について、独立した支店長をアサインします。したがって、26名が支店長となり、冗長化するために副支店長も別にアサインします。合計52名です。
・それぞれの支店長・副支店長は自分の支店シードを守る責任があります。
・26個のシステムは全く別のインフラです。したがって、1システムで運用するときと比べて、26倍のコストが単純計算でかかることとなります(チューニングによりダウンサイジングはできると思います)

これにより、以下のメリットが得られます。

・一つの支店がハッキングされたときの最大損失は、26分の1になります。

 

いかがでしょうか。かなりローテクだと思います。

新しい技術は全く使っておらず、単に取引所を細かく分割し、かけるコストを26倍にしただけです。もっと分割すれば、もっと極小化できます。

今日は、セキュリティベンダーの株価が大きく上がったようですが、セキュリティ対策は実は上記のような、制度設計のほうがよっぽど重要です。今は、問題が起こったときに取引所丸ごと、被害に受けてしまう設計思想なのです。

これまでに、取引所をまたがって、盗難されるような事件が起きていないと思います。どうみても取引所が集中管理してコストを減らし楽をして、手数料を提言し顧客を呼び集めて預かり資産を増やそうという動機だけで、取引所が動いてきたと思っています。この、「1つを取れば全部取れる」という設計に乗じて、攻撃者のリターンをかさ上げしていると思います。

もし、1取引所の資産を盗んだときの全体価格が、ハッキングするためのリスクに見合わなければ、動機が薄れて、未然に防げるのです。

かつ、被害額が小さくなる算段があれば、損害保険にも入りやすくなります。補償額が小さくなるのですから、保険額も小さくなるのです。ユーザー側のメリットにもなります。

もちろん、たくさんのスタッフが必要となります。システム運用保守費用もふくらみます。アプリケーションの更新も、たくさんシステムがあると非効率です。

が、これを行うことで、今回のような大きなセキュリティリスクを最小化できるのです。

 

まとめ

フェールセーフの考え方を、各取引所が、今後の対策に組み入れていただければいいな、と思います。コストに跳ね返りますが、手数料が上がっても、セキュリティに投資している会社を利用者は選ぶと思いますよ。

このブログで書いて、どれだけ取引所の関係者や所轄の金融庁へ届くかわかりませんが、現在、取引所が金融庁へ報告を行わなければいけない状況ですので、チャンスと思い記載させていただきました。

仮想通貨の世界で日本が世界をリードするために、ぜひご検討ください。

また、ユーザー観点においては、各社報告を見るとき、このフェールセーフの視点があるかどうかにも注目していきましょう。高度な技術抜きでやれることをやらない取引所は、正直、自社の技術者を過信していると思います。