仮想通貨交換所におけるセキュリティ

Sanghwan Ahn氏:みなさんこんにちは、本日はご参加いただきありがとうございます。本日は、私たちの仮想通貨交換所、BITBOXのセキュリティの話ができることを大変うれしく思います。

私たちのセキュリティについて、詳細をお話ししようと思った理由は、仮想通貨の交換所に対するみなさまの信頼度が下がっていると感じるからです。現状、交換所が攻撃にあったり、詐欺事件なども多発しております。

本日は、セキュリティの詳細についてお話しすることで、みなさまの信頼を勝ち取れることを願っております。そしてこちらのプレゼンテーションは、来月開催される台湾で最も有名なセキュリティカンファレンスであるHITCONでもお話させていただきます。

それでは、簡単に自己紹介をさせていただきます。

私は、現在LINEのセキュリティ戦略チームで仕事をしている、シニアセキュリティエンジニアです。私の責任範囲は、セキュリティのアーキテクチャ設計であったり、トラステッドコンピューティング関連のソフトウェアの開発です。

私たちは、最新鋭のセキュリティテクノロジー……例えばホワイトボックス暗号、ARM-Trustzone、HSM、Intel SGXなどを使っております。テクノロジーの中の脆弱性を評価し、見つけていくことも私の仕事です。

ほかにも、Best of the Bestというセキュリティの教育プログラムのメンターも務めておりまして、大変高度なスキルを持つサイバーセキュリティ専門家を育成しています。

また、SECUINSIDE、KIMCHICON、LINE and Intertrust Security Summit、PacSec、CODEBLUE、そしてHITCONといったセキュリティカンファレンスで、これまで講演してきました。

狙われる仮想通貨交換所

本題に入る前に、BITBOXについてご説明いたします。

BITBOXはLINEの仮想通貨交換所で、ユーザーフレンドリーなUIと非常に便利なお客様向けのサービス、非常に堅牢なセキュリティを提供しております。こちらのサービスは、日本と米国以外で提供しております。

また、ブロックチェーンは、みなさんご存知のように世界的な注目を浴びています。その結果、サイバー攻撃者にとって、非常に価値の高い標的となっております。

とくに仮想通貨交換所というのは、毎日多額の通貨が交換される場所です。そのため、交換所が攻撃され、ユーザーが大きな損失を被ることもあります。日本で起こった最近の攻撃では、6億ドルもの損害が出ていると言われています。

高度なサイバー攻撃を受けてもユーザの資産を安全に保護出来るようにBITBOXは非常に優れたLINEのセキュリティエンジニアやハッカーによって設計され、最先端のセキュリティ対策を導入しています。これによって、今まで認識されなかった攻撃や脅威にも対応できるものになっています。BITBOXは、ユーザーの資産を守るため、テクノロジーの面だけでなく、非テクノロジー面からもアプローチを続けています。

本日は、こういった仮想通貨交換所がどのように攻撃され、それらから身を守るためにどのようにセキュリティを担保するかというお話をさせていただきます。プレゼンテーションは2部構成です。

最初は仮想通貨交換所にまつわる脅威について、そして第2部は私たちのセキュリティ戦略・戦術についてお話しします。このプレゼンを聞いていただき、私たちのセキュリティ設計について、みなさまに安心していただけるよう願っております。

攻撃の手口

それでは、仮想通貨交換所を標的にした攻撃についてお話しいたします。

こういった攻撃は、従来型の攻撃となんら変わりません。攻撃者はゼロデイやワンデイといった脆弱性を突いてきます。もしくは社員のクレデンシャル情報をフィッシング攻撃によって入手します。その標的は、経営陣、もしくは従業員です。

こういったマルウェアは、USBドライブやEメールによって運ばれます。そして、クレデンシャル情報を用いて無許可でシステムにアクセスし、ウォレットキーを見つけてコピーします。それを使って、仮想通貨を他人のウォレットから自分のウォレットに送金します。そして、自分たちのために、取引データの改ざんも行います。

もう1つのシナリオは、すでに攻撃者が内部にいるというものです。例えば社内のデベロッパーやセキュリティエンジニア、インフラエンジニア、そして経営陣の中に、攻撃者が存在する可能性だってあります。こうした悪意のあるインサイダーは、機密情報を他社に共有し、ほかのハッカーと共謀して攻撃を仕掛けてきます。

多くの仮想通貨交換所はすでにいくつかのセキュリティ対策を講じて、自分たちのサービスの保護に努めております。ですが、こういったセキュリティのアーキテクチャには、弱点もあると言えます。

なぜかと言うと、サイバーセキュリティというのは不公平なゲームだからです。

システムに侵入するためには、攻撃者は1つの脆弱性を見つけさえすれば済んでしまいます。しかしシステムを守るには、すべての脆弱性を見つける必要があります。つまり、システムが複雑であればあるほど攻撃がしやすく、守るのが難しくなってきます。

みなさんご存知のように、完璧なセキュリティというものは存在しません。ですが、完璧に近い状態にするためにできることはあります。

レイヤードセキュリティとは何か

私たちは2つの戦略を用いております。1つはレイヤードセキュリティを強めるということ、そしてもう1つが、Defense in Depthです。これは、仮想通貨交換所にフォーカスを当てたものです。

このレイヤードセキュリティというのは、「すべての防御方法には不備がある」ということを前提にした上で、複数のセキュリティ対策を組み合わせることで、お互いの不備を補い合うというものです。

例えばファイアウォール、IDS、侵入検知システム、マルウェアスキャナー、インテグリティチェックプロシージャ、データの暗号化といった複数の対策を同時に導入することで、お互いの欠陥を埋めることができます。どこかのレイヤーに弱さがあれば、ほかのレイヤーでそれを補うわけです。

しかし、すべての防御層に脆弱性があれば、これらの穴がつながってしまい、そこから安全でない状況になってしまうかもしれません。

Defense in Depthがもたらすもの

この多層防御、Defense in Depthというのは、より包括的なセキュリティ戦略です。レイヤードセキュリティは、Defense in Depthの一部にすぎません。

そして、このDefense in Depthというのは、より幅広いシナリオを考慮しています。例えば、障害復旧や悪意のあるインサイダー脅威、ゼロデイ攻撃、コンプライアンスリスクといった、テクノロジーではカバーできない脅威や未知のセキュリティ脅威です。

この仮想通貨交換所でDefense in Depthを実装する際、コアとなる防御の設計には、レイヤードセキュリティ、モニタリング、アシュアランスを入れる必要があります。

BITBOXのレイヤードセキュリティは、LINEのメッセンジャーなど、LINEの他のサービスのセキュリティとほぼ同じです。物理セキュリティ、ネットワークインフラセキュリティ、アプリケーションサービスセキュリティ、データの暗号化、2要素認証などです。

しかし、一番の大きな違いは、ウォレットキーを保護するということです。もし攻撃者がアプリケーションやAPIサーバーを乗っ取ったとしても、最先端のハードウェアセキュリティモジュール、ホワイトボックス、暗号化方式などを使って、ウォレットキーが守られます。

モニタリングには、さまざまな監視……セキュリティのイベント監視だけでなく、内部監査、コンプライアンス、リスク管理、マネーロンダリング対策、そして異常検知などを含みます。

アシュアランスというのは、外部監査によりユーザーの安全を保証すること、そして場合によっては、保険によってユーザーの資産を守るということも行っております。

一般的には、防御層におけるセキュリティツールを増やすことで、安全が守れると思いがちですが、問題はこういったツールがお互いにコミュニケーションできない点にあります。こういったインテグレーションの不備は、セキュリティチームがすべてのセキュリティを見渡せないという意味で、非常に問題になります。

BITBOXを設計する上で大切にした大原則

この問題を軽減するために、私たちは毎日個々のレイヤーのステータスチェックを行っております。しかし、複数のセキュリティディフェンスレイヤーを加えるだけでは、交換所のセキュリティを保証することはできません。セキュリティをソフトウェアの開発サイクルに統合する、またプラットフォームオペレーションに組み込んでいくことが、同じくらい重要です。これは、複数のセキュリティレイヤーを統合するのと同じくらい重要なことです。

多くの企業では、セキュリティレビューを行うのは、まさにプロダクトのリリースの直前になってからです。そうすると、さまざまなセキュリティ上の問題が起こります。細かいところを見過ごしたり、なにか問題を特定できたとしても、プロダクトのリリースが遅れるということもあります。最悪のシナリオとしては、製品の脆弱性を発見できない場合です。

ですから、セキュリティというのは、我々の開発プロセス、またオペレーションのすべてのパートに組み込まれています。(すなわち)セキュリティは、BITBOXのすべてのパートに組み込まれています。開発プロセスからプラットフォーム運営まで、すべてのセクションでセキュリティは関わってきています。

BITBOXを設計するにあたって、いくつかの基本的な原則に従いました。

まず、前提として完璧なセキュリティは存在しないということです。ただ我々は、なにかしらの方法でセキュリティをできる限りパーフェクトに近づけることはできるわけです。ですので、ほぼ完璧なセキュリティを築こうと努力しました。できることはすべてやりました。

第2に、セキュリティをデザインする際、「敵は内部にいる」という前提で検討しました。仮に敵がアプリケーションサーバーやAPIサーバーを乗っ取ったとしても、ユーザーのアセットを守れるようにしました。

第3に、内部の人は誰も信頼しないことです。たとえ経営陣であってもです。とくに重大なオペレーション……例えばキーセレモニーを行う際には、複数の信頼できる当事者間の監視下で行うようにしています。それから、キー生成プログラムやスクリプトコードといったものは、ほかの第三者によってチェックされるということにしています。

最後に、最小権限の原則です。これはBITBOXに関わるすべてのものに適用されていて、すべてのロールが分離しています。

BITBOXのネットワークアーキテクチャ

こちらは、ネットワークインフラセキュリティアーキテクチャです。

基本的に、すべてのクライアントはサーバーとCDN経由で通信しています。CDNを使用することでサービスの提供速度を速めて、トラフィックをグローバルに分散することができます。これによって、オリジナルのサーバーロケーションを隠すという便利な点もあります。

DDoS攻撃への防衛策をとることで、自動的にネットワークレイヤーでのDDoSトラフィックを避けることができ、アプリケーションレイヤーでDDoSトラフィックを吸収することができます。アプリケーションオリジンに届かないようにするわけです。そうすることで、大抵の攻撃に関しては数秒以内に対処することができます。

大量で、かつ複雑なDDoS攻撃の場合には、対DDoSルーターへとリダイレクトします。このルーターでは、非常に大量のトラフィックを扱ったり、フィルタすることができます。ほかにもさまざまなセキュリティレイヤーがネットワークインフラにあります。ファイアウォールやIDSがそれにあたります。

加えて、内部のBITBOXネットワークは、完璧に分離されています。近年の仮想通貨関連のハッキングされた事件において、多くの攻撃者は、まず最初にこうした内部のネットワークへのアクセスを試みていました。ですので、仮に攻撃者が内部ネットワークへとアクセスできたとしても、BITBOXネットワークにはアクセスできないようにしています。

BITBOXネットワーク内のサーバーは、ロジック的には別々になっています。そして、さまざまなモニターシステムが稼働しています。内部のIDSもそうですし、マルウェアスキャナー、インシデントモニタリングツール、インテグリティチェックツールなどが、それぞれのサーバーに導入されています。

セキュリティイベントに関して、こういったモニタリングシステムを生成した場合、その情報はすべてSIEM(Security Information and Event Management)に送られてリアルタイムで監視されます。

サービスアーキテクチャのセキュリティについて

ほかにも重要なことがあります。サービスアーキテクチャのセキュリティにおいては、きちんと対応することで攻撃者がウォレットキーを盗めないようにする、または不正なオペレーションをできないようにすることが大切です。

例えば、ビジネスレイヤーや交換所のコア、ウォレットのコア、鍵の管理システムといったそれぞれのコンポーネントは、すべて別々に分けられていて、かつACLを使って結合されています。

いずれのサーバーも、アクセスできるのは特定の権限を持った従業員だけです。この権限はトークンベースのものであって、パスワードベースではない認証システムを採用しています。

サーバー間のトラフィックも保護され、暗号化されています。こうすることで、攻撃者のほうではすでに送られたデータを改ざんすることができません。ですので、不正なオペレーション、中間者攻撃などを防ぐことができます。

KMSも、非常に重要なサービスです。暗号化動作を行っていて、インターネットには接続されていません。そして、すべてのアクセスはホワイトリストを使ってコントロールしています。よって、ウォレットのコアだけが、ここにつながることができます。KMSシステムへのアクセスもリアルタイムでモニターしているので、誰もここには届かないようになっています。

ウォレットのセキュリティ

ウォレットキーは、生成して保管をしています。その場所はHSM内です。

そして、すべての取引はHSM内で承認されます。こうすることで、攻撃者はウォレットキーを獲得することはできません。仮に攻撃者がアプリケーションサーバーやAPIサーバーを乗っ取ったとしても届きません。というのも、すべての暗号化のオペレーションはこのHSM内で行われているからです。

ユーザーの資産を守るために、我々はマルチシグウォレットを採用しています。ウォレットキーの1つは、第三者に預託しています。

攻撃者側がユーザーの資産を盗もうとした場合、彼らは我々BITBOXのキーに加えて、この第三者が持っている鍵も盗まなければいけません。

こうすることで我々は、ユーザーの資産をより安全に守ることができます。このウォレットのセキュリティに関しての詳細は、後ほどお話ししたいと思います。

また、もう一点の重要なこととして、仮想通貨交換所にはブラックマネーが交換所に流れて来ないような設計が必要です。そして、マネーロンダリングに使われないようにしなくてはなりません。このため、我々はKYCとKYTの2つを取り入れています。これはどちらも、リスクマネジメントシステムの領域です。

KYCはKnow Your Customerの略で、KYTはKnow Your Transactionの略です。KYCを使用することによって、その顧客が法的に問題がないかどうかをチェックします。我々は制裁リストを持っているので、それを見て顧客がそのリストに含まれているかどうかを確認します。もし含まれていなければ、合法な顧客だということがわかります。

さらに、交換所内に預託されている資金や、そこから引き出される資金もすべてチェックしています。こうすることでマネーロンダリング対策をしています。これがKYTです。このリスクマネジメントシステムについては、KYTも含めてお話しいたします。どのようにマネーロンダリング対策やモニタリングをしているかということを、追ってご説明いたします。

3つのウォレットとその役割

では、ウォレットのセキュリティについて、もう少しご紹介したいと思います。我々は3つのウォレットを持っています。コールドウォレット、ウォームウォレット、そしてホットウォレットです。

流れてくるすべての仮想通貨……例えば預入などは常にウォームウォレットに流れていきます。

ウォームウォレットには制限がかかっていますので、取引をコールドウォレット、そしてホットウォレットにしか送れないようになっています。また、外に出て行く仮想通貨の流れ……例えば引出の際には、ホットウォレットからしか引き出せません。

大抵の資金は、このコールドウォレットの中にあり、非常にセキュリティレベルの高い部屋に保管されています。ここは完全に外界から独立した場所になります。インターネットアクセスもできません。物理的なセキュリティやモニタリングもしています。アクセスできるのは、特定の認証を受けたアクセスコントロールを持っている人だけです。

ウォレットのオペレーションに必要な最低限のお金だけが、ホットウォレットに残っています。つまり攻撃者がホットウォレットのキーを盗んだとしても、預けられているほかのほとんどの資金は安全なわけです。

とは言いつつも、攻撃者がこのようにホットウォレットに入っているお金を盗むようなことも、我々としてはさせたくありません。そのため、仮想通貨交換所では複数段階の承認ポリシーが行われています。例えばコールドウォレットからウォームウォレットへの送金、ウォームウォレットからホットウォレット、もしくはホットウォレットから外部のウォレットへ。こういったことはすべて複数の承認が必要になっています。

またポリシーとして、すべてのウォレットに対して相当額の仮想通貨を一定の短い期間で送ることができないように、速度と上限額を設けています。また、単一キーのウォレットは使っていません。我々のウォレットは、コールドウォレットであろうとウォームウォレットであろうとホットウォレットであろうと、どれもマルチシグウォレットになっています。

マルチシグウォレットの利点

通常のブロックチェーンの取引ではシングルシグという、取引において1つの鍵しか必要としない方式がとられています。しかし、さまざまなセキュリティ脅威を考えると、非常に脆弱性の高いやり方だと言えます。

というのも、攻撃者がそのウォレットキーを盗んでしまうと、取引を行えるようになってしまうからです。攻撃者も、仮想通貨をウォレットで送れるようになってしまいます。

ところがマルチシグウォレットの場合、1つの鍵ではなく、2つ以上の鍵が取引の成立に必要になります。マルチシグウォレットを作った場合は、シグが全体でいくつあるのか、そのうち取引を成立させるためには鍵がいくつ必要なのかということを定義できます。

我々のウォレットの場合ですが、3つあるマルチシグのうちの2つが必要になります。全体では3つのキーがあり、そのうち2つが揃わなければ取引を成立させることはできません。1つはバックアップキーで、これは障害復旧のためにとっておいてあります。この鍵は暗号化されていて、ランダムに生成されたパスフレーズによって暗号化しています。

そして、それぞれの暗号化されたパスワードフレーズは、キーボルトに保管されています。このキーボルトは非常にセキュリティの高い、複数の異なる場所に保管されており、ほかの2つのキーを使って取引を成立させます。通常のオペレーションの際は、1つはBITBOXが持っており、もう1つは第三者に預託しています。

この第三者が持っているキーも、やはりHSM内に保管しています。そして、このHSMの外に漏れることは絶対にありません。我々のキー、つまりBITBOXが持っているキーは、いくつかのシャードに分かれていて、スタンダードアルゴリズムを使っています。例えばシャミアの秘密分散法などを使ってシャード化しています。

それぞれの承認システムは、独立した役割を担っています。それぞれのシャード化した鍵も、やはりadminパスフレーズを使って暗号化し、再暗号化しています。これはホワイトボックスを実装しています。ここで重要なのは、誰もこのホワイトボックスのキーを知らないということです。

要約しますと、このホワイトボックス暗号方式の実装において、暗号化したキーは数学的に変換されたものになっています。計算済みのプレコンピューテッドルックアップテーブルのようなものです。よって、暗号キーが平文で露出したり見られたりすることはありません。暗号化のアルゴリズムのエグゼキューションをしている時でさえも、そうはなりません。

こうしたセキュリティ対策によって、攻撃者が暗号化キーを入手することを難しくしています。仮に複数の管理者が共謀したとしても、もともとBITBOXのキーを再生することはできません。このシステム外ではできないのです。というのも、このホワイトボックス暗号方式を実装しているからです。

リスクマネジメントシステムの仕組み

では、ここからもう少し、我々のリスクマネジメントシステムについてお話しいたします。このシステムを使うことによってマネーロンダリングを検知し、市場操作を検知します。また、このシステムはすべての仮想通貨の流れをモニターしており、交換所に入ってくるもの、出ていくもの、または仮想通貨内部の取引も、ほぼリアルタイムにチェックしています。

先ほどもお話ししましたが、内部での仮想通貨の移動はモニターされていて、しかもadminからの承認が必要になっています。ですので、こういった部分は非常に安全だと思います。

しかし、問題になるのは、マネーロンダリングや市場操作においてです。マネーロンダリングを防ぐために、我々は外部のウォレットアドレスの評判をチェックしています。このアドレスは、仮想通貨の預入や引出に使われているようなアドレスです。我々はパブリックの台帳を見ることができますが、ここですべての取引履歴を、ブロックチェーン上で確認することができます。よって、取引をきちんとトラッキングすることができます。

つまり、ブラックマーケットが使っているようなウォレットがあるかどうか、もしくは悪意のある人が使っているようなものなど、お金の流れをチェックできます。その内部のウォレットと、引出や預託をされている元のウォレットが、ブラックウォレットとなにかしら関わりがあるのかどうかをチェックすることができます。これをKYTプロセスと言います。外部のウォレットとブラックウォレットになにかしら関係性があった場合、我々はその取引を拒否します。

不正な市場操作を検知する

ほかに、鍵にまつわる問題というのは、やはり市場操作です。

SYSコインが急上昇した時のトレードチャートです。この時は、Binanceに対してAPI攻撃がありました。その結果、SYSコインの価格が急上昇して、最終的には96BTCまで値上がりしました。つまり、攻撃者は非常に大量のSYSコインを事前に買っていたんですね。そして攻撃を与えて、1SYSコインを96BTCまで跳ね上げたわけです。そしてSYSコインを高値で売ったということです。

この攻撃では、APIキーが悪用されました。このキーは自動取引やBOTに使われているものです。攻撃者はマルウェアを使用してAPIキーを集め、十分な数のAPIキーを盗めたら、彼らは攻撃を始めたわけです。

Binanceによりますと、幸運なことに、ただちに対応できたとのことでした。リスクマネジメントシステムが怪しい取引に対してきちんとアラートを出し、自動的にオペレーションを利用不可能にしたということです。

Binanceに対するAPI攻撃を見てみますと、やはりリアルタイムでのモニタリング、それから迅速な対応を、怪しい取引に対して行うことがどれだけ大事かがわかります。ですから我々も、交換所のモニタリングシステムを導入したわけです。こうすることで、市場操作を検知したり、ただちに対応できるようにするわけです。

怪しい取引は、すべての取引履歴をもとに、さまざまなルールやデータの分析方法を駆使して確認しています。

例えば、なにか大量の取引が非常に短い時間で行われていたり、複数の取引にもかかわらず、ばらつきが小さい場合には、「これは怪しいな」と判断します。

最近、怪しい事例がありました。LINKというLINE独自のトークンがBITBOXに上場したのですが、ほかの仮想通貨、もしくはデジタルトークンと違って、LINKはICOを経由して配ってはいません。その代わりにリワードシステムを使って、ユーザーに対してLINKトークンを配っています。

このLINKトークンは、LINEエコシステムの特定のサービスで使用することができます。つまり、すべてのBITBOXユーザーに対して、取引額の0.1%をLINKトークンとして提供しています。

しかし最近、一部のユーザーの中で非常に多くのLINKを得るためにウォッシュトレードと見られるパターンが確認されました。しかも、これはBITBOXから許容されなかったものです。こうしたウォッシュトレードを見つけるのは、実は難しいのです。というのも、これは偶然の出来事かもしれませんし、通常の取引によるものかもしれないからです。

そこで我々は、データアナリティクスを駆使することで、誰がウォッシュトレーディングをしているのかをあぶり出しました。またこういったケースでは、渡したリワードを取り消すようにしています。

BITBOXのこれから

まとめです。我々にとってセキュリティは、BITBOXのすべてのパートに取り込まれています。開発プロセスからプラットフォームオペレーションまで、すべてにセキュリティは関わっています。ネットワークインフラセキュリティも、十分に設計されています。

すべてのセキュリティ脅威を予測、予防、検知し、反応できるように設計されています。さらに攻撃者は、ウォレットキーにもアクセスできなくなっています。仮に彼らがAPIサーバーやアプリケーションサーバーを乗っ取ったとしても、仮想通貨を盗み出すことはできません。なぜなら、ウォレットキーはHSMの内部に保管されているからです。

また、リスクマネジメントシステムがすべての取引をモニターしています。なにか起これば、我々はただちに複数の対策を行い、ユーザーの資産を守れるようになっています。

BITBOXのセキュリティを作ったのは、弊社の最高レベルのセキュリティエンジニアとハッカーです。

BITBOXは、ここまで4ヶ月ほど運営してまいりましたが、BITBOXのセキュリティは、実は20年以上の経験に基づいて作られています。我々は20年以上にわたり、NAVERやLINEのサービス運営を通してセキュリティの経験を培ってまいりました。ですので、ぜひ安心してBITBOXをご利用ください(注:日本とアメリカではご利用いただけません)。

最後に、今後の計画についてもいくつかご紹介いたします。現在我々は、ホワイトペーパーを準備しています。これは、来年発表の予定です。

なぜホワイトペーパーを書くのかというと、外部の専門家や研究者からきちんと評価いただきたいからです。というのも、こうした評価をいただくことによって、ユーザーからの信頼を獲得できると信じているからです。また、セキュリティを隠すことでセキュリティをもっと強くするとは思いません。本当に安全なセキュリティシステムは公開されても安全であるべきだと思います。

また、マネーロンダリングを行っているグループのプロファイリングを行っています。こうすることで、ブロックチェーンエコシステムをよりよくできると考えています。我々としては、こういった情報をほかの交換所とも共有していきたいと考えています。

私の本日の発表は、以上とさせていただきます。今回のプレゼンを通して、みなさまに、我々の仮想通貨交換所「BITBOX」に対する理解を深めていただければと思います。ありがとうございました。