orangeitems’s diary

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

コインチェック社の「仮想通貨NEMの不正送金に関するご報告と対応について」レポートの疑問点が一つ

f:id:orangeitems:20180309183307p:plain

コインチェック社より事案に対するレポートを受信

今日の12:43ごろにコインチェック社からメールが来ていた。

corporate.coincheck.com

スポンサーリンク

 

はてなブックマーク内のコメントも読んでいるが、確かに下記は理解が難しいポイントだ。

(2)調査結果の概要 

前記(1)の調査の結果からは、外部の攻撃者が、(a)当社従業員の端末にマルウェアを感染させ、外部ネットワークから当該従業員の端末経由で当社のネットワークに不正にアクセスをし、遠隔操作ツールにより当社のNEMのサーバー上で通信傍受を行いNEMの秘密鍵を窃取したうえで、(b)窃取したNEMの秘密鍵を使用して外部の不審通信先にNEMを不正送金したものであると想定されております。

 

疑問点

仮想通貨を送信するときのプロトコルについて、わかりやすい資料を探したらたどり着けた(ただし例はビットコインの場合なので、NEMの場合でも同様か調べる必要あり)。

postdoc-tensyoku.link

要点をまとめると、

・送金したいとき、送信元は「送信元の秘密鍵」を使って「送金情報」を「暗号文」を作る。この「暗号文」を通信経路を使って仮想通貨ネットワークに送る。
・送信先は、「暗号化されていない送金情報」と「暗号文」を両方受け取る。「暗号文」を「送信元の公開鍵」を使って複合し、同じことを確認したら正しい情報と認識する。

ということになる。つまり、秘密鍵は通信経路には決して乗らないということになる。どんなにサーバーの通信経路を傍受しても、秘密鍵がそのまま通信パケットでやり取りされることが非常に考えられない。

なぜ、通信傍受によってサーバーの秘密鍵が取得できるのか。

 

・・・(うーん)・・・

 

小一時間考えたが、ありえるとすると・・。

・マルウェアでコインチェックの社内PCを乗っ取る。
・PCに遠隔から(リモートデスクトップのように)ログインする。
・このPCからサーバーへTera TermなどのSSHクライアントでログインする。
・サーバーで秘密鍵のファイルを探し、catコマンドなどで出力する。

この出力結果を「通信傍受した」・・。

本当に苦しすぎるがこれぐらいしか思いつかない。

 

正しい回答がコインチェック社から出てくるかどうかわからないが、ぜひ、この点が明らかになるとありがたい。そうしないと、通信傍受で秘密鍵が漏れ出す、という都市伝説が生まれてしまう。

 

報告書全体の感想

セキュリティ対策を万全にするためには、これだけのことをやらなければいけないという、報告書にはなったと思う。事件が落ち着いたらどのように実装したか、共有して、日本のセキュリティ向上に一役買っていただきたい。金融機関を除いてどの企業もおそらくこれだけのことが完全に実装できている会社は少ないと思う。

今日もこういうニュースが流れたばかりだ。

cloud.watch.impress.co.jp

調査の結果、日本は他国に比べてサイバー攻撃の被害を把握できておらず、従業員のセキュリティへの関心のなさとポリシーの普及に悩まされていることが浮き彫りになったとしている。

情シス関係者ならわかると思うが、経営者はやれやれ言うわりには、見積を出すと出し渋りベストエフォートになってしまう。ぜひ教訓として、何を導入したかを共有してほしいと思う。