テックビューロ社運営の Zaif 取引所で CICC / BTC の不正取引が発生、原因調査へ

概要

本日午前 5 時頃に Zaif 取引所で CICC のビットコイン建て取引が不正に行われたことが利用者の申告により発覚。現在、出金停止の対処がとられたうえで、テックビューロ社による調査がすすめられている。

概要

概要

現状

テックビューロ社の朝山貴生社長も VIP チャットルームに登場されていました。正式に報告すること、調査中であること、他の利用者の不安を煽らないようにすることなどコメントを残しています。

社長コメント

社長コメント

2FA

Zaif 取引所では 2FA (Two Factor Authencication) を取り入れています。ログイン時にスマホアプリの Google 認証システムで生成された番号を入力することでユーザ名とパスワードによる認証のみの場合よりもセキュリティレベルが高くなります。

2FA

2FA

API

Zaif 取引所は API による現物取引にも対応しています。概要を確認する限り、利用者の操作なしで取り引きが行われたとすれば、API を利用した不正取引の可能性が高いと推察されます。

ユーザ名、パスワードがハッキングされるケースならばブルートフォース攻撃などにより昔からあるので、あり得るとは思いますが、2FA 認証をしているアカウントにログインするためにはユーザ名、パスワードに加えて、利用者のスマホを持っていないとできないはずです。2FA が突破されたのではないかとの発言もあったのですが、もしそうならば、他の取引所や取引所以外も影響を受けることになりますし、2FA を実現するための Google 認証システム 自体に問題があるとは考えにくいです。

API による取引操作の実行は、https://api.zaif.jp 宛に指定された形式のリクエストを発行することで行われます。 api.zaif.jp について調べたところサーバーは AWS (Amazon Web Service) を利用していることがわかります。フロントエンドに elb (負荷分散装置)を立てているだけなのでバックエンドがどうなっているかはわかりませんが、AWS 内に API サーバーがある可能性は高いでしょう。

不正取引のリクエストをユーザに成りすまして実行するためには AWS の情報にアクセスできる必要があるのでその権限を持つ方の端末を調査する必要があるのではないだろうか。原因調査の行く末を見守りたいと思います。

$ dig api.zaif.jp @8.8.8.8
; <<>> DiG 9.10.3-P4-Ubuntu <<>> api.zaif.jp @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65412
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;api.zaif.jp.                   IN      A

;; ANSWER SECTION:
api.zaif.jp.            23      IN      CNAME   zaif-alb-api-1281707867.ap-northeast-1.elb.amazonaws.com.
zaif-alb-api-1281707867.ap-northeast-1.elb.amazonaws.com. 8 IN A 13.114.70.251
zaif-alb-api-1281707867.ap-northeast-1.elb.amazonaws.com. 8 IN A 54.65.211.98

;; Query time: 45 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jan 07 11:43:51 JST 2018
;; MSG SIZE  rcvd: 142

追記

2018/01/07 19:15

公式サイト上のお知らせに『一部のお客様のAPIキーを不正使用した取引および出金のご報告と対策のお願い』として報告が掲載されました。API 操作による不正取引が発生した点は確定したものの、被害の拡大はなく 13 時時点で出金制限は解除されています。

現物取引API の仕様上、取引操作ができることは機能上の実装であり問題ありません。問題は正しい注文リクエストを出すために必要となる、正しい key (利用者の API Key) と sign (nonce と APIメソッド名を含む)の情報がどのように入手されたのか?にあるように思います。

公式アナウンスにもあるとおり、ご自身のアカウントの二段階認証設定確認や、開発者向けAPI の設定ページでの API Key を再登録、連携アプリケーション基本設定で利用していないものは削除する、入出金と履歴のページで仮想通貨の出金先アドレスを制限するといった対応をしておくと良さそうです。

API を利用していない人も仮想通貨の出金先アドレスの制限については設定をしておくとセキュリティ対策効果は高いと思います。

スポンサーリンク