仮想通貨取引所ウォレットを支える仕組みに脆弱性
先週開催された情報セキュリティ関連会議で、仮想通貨取引所が構築するウォレットのセキュリティの仕組みが、弱点となる可能性が指摘された。取引所には高度なセキュリティが必要とされているため、最先端の技術が導入されていることが多いが、その実装の複雑さが新たな脆弱性につながるかもしれないと暗号学者は語っている。
三つの攻撃手法を指摘
公開鍵暗号方式に代わる技術として、分散化された鍵発行と署名のための暗号理論を使った「閾値署名方式(TSS)」が、仮想通貨ウォレットに実装されるケースが急増していると言われている。しかし、比較的新しい技術であり、その複雑さの隙をついた、これまでにない攻撃方法が発見されたという。
オンラインで行われたITセキュリティ業界向けの会議「Black Hat USA」では、KZen Networks共同設立者Omer Shlomovitsが指摘したTSSの実装過程における脆弱性に対し、暗号学者のJean-Philippe Aumassonがさらに詳しく説明する形となった。この脆弱性に対する攻撃手法は次の三つのカテゴリーに分かれるという。
- インサイダーによる攻撃
- 取引所と顧客の関係を悪用
- 秘密鍵生成時の悪用
インサイダーによる攻撃
まず、ある主要仮想通貨取引所が作成したオープンソース・ライブラリの脆弱性をインサイダーが悪用する可能性が指摘された。このライブラリでは、鍵保有者がサイトのリフレッシュ機能のプロセスを操作して、他の部分を変えずに鍵の一部だけを変更したりすることが可能だったという。古い鍵と新しい鍵の部分を統合することはできないが、攻撃者はサービス拒否を引き起こすことによって、取引所が自己資金にアクセスできないようにすることが可能になると指摘された。
また研究者によると、ほとんどの秘密鍵分散型方式では、完全な鍵ではなくても鍵の大部分が正しければ、取引が承認されるように設定されているという。一部が誤って削除されたり破壊された場合でも、完全に鍵が失われないようにするための予防措置だが、攻撃者にとっては格好の恐喝の材料になる可能性もある。
幸い、コードが公開されて1週間で、この脆弱性について研究者がライブラリ開発者に告知したため、おそらくどの取引所もこのライブラリをシステムに組み込むまでには至っていないだろうとのことだ。
取引所と顧客の認証プロセスを悪用
ある鍵管理会社が提供した、オープンソース・ライブラリにも鍵のローテーションに関する脆弱性が発見された。この脆弱性は、取引所と顧客がお互いに行う認証に失敗するというもの。取引所が顧客に誠実でない場合、もしくは密かに攻撃者に侵入された取引所が、複数回の鍵のローテーションにより、ユーザーの秘密鍵を推測することを可能にする恐れがあるという。
なお、この鍵管理会社は、自社製品にはライブラリを使用していないが、他所で使われた可能性も考えられるとのこと。
当事者による鍵生成時の問題
ゼロ知識証明で使用する鍵として、当事者がいくつかのランダムな値を生成する必要がある。研究者が発見したのは、大手取引所バイナンスが開発し、オープンソース・ライブラリにあるプロトコルが、これらの値をチェックしていなかったことだった。(バイナンスによって3月に修正済み)
前出のShlomovitsは、この脆弱性は即座に致命的になると述べている。悪意のある当事者は、鍵生成時に、他の関係者の数値がわかるように仕組まれた特別なメッセージを送り、その後、得られた情報を利用して、全員分の秘密鍵を手に入れることが可能になるという。
バイナンスは顧客に対し、できるだけ早くこのバージョンのTSSライブラリをアップグレードするよう、注意を促した。
困難な攻撃方法
これらの脆弱性を利用した攻撃を実行することは、実際には非常に困難なことだと二人の研究者は認めている。技術に対する専門知識を持っているだけでなく、取引所で特別な立場を利用できることが前提となっているためだ。しかし、広く普及する可能性のあるオープンソース・ライブラリにこのような脆弱性が発見されたことは、その影響力を考えると見過ごすことはできないという。
さらに、分散型鍵方式はセキュリティ対策として有望だが、実装は複雑でミスを犯しやすいため、取引所が実装するにあたり、注意を喚起することも発表の目的の一つだったと述べた。
参考:Wired