DMM Bitcoin 2024年 書き換えられた送金の指図

公表された手口は、鍵の盗難ではない。DMM Bitcoin の社員が出した正規の送金の指図が、途中のウォレットのソフトの基盤で書き換えられ、署名を経て4,502.9BTCが出ていった。入口は、そのソフトの会社の社員に届いた偽の採用試験だった。止める所は、署名する前に、署名する中身を別の経路で確かめることにある。

2024年5月31日に DMM Bitcoin が検知し、公表した件。流出は4,502.9BTC、発表時点で約482億円相当[1]。手口は、2024年12月の FBI、DC3、警察庁の公表と、2025年1月28日の Ginco の報告によります[8][9][10]。DMM Bitcoin は流出分を全額保証するとし、2025年3月8日に口座と預かり資産を SBI VCトレードへ移してサービスを終えた[1][6]。DMM Bitcoin のサイトは閉じており、同社の発表は Internet Archive の控えで読んでいます。2026年11月時点の公開資料で書いています。

要点

  • 攻撃者は2024年3月下旬、採用担当を装って、ウォレットのソフトを作る Ginco の社員に、採用前の試験と称する Python のスクリプトを送り、社員の端末を侵害した。
  • 5月中旬以降、盗んだ認証の情報で社員になりすまし、送金の指図を扱う Ginco の基盤に入り、DMM Bitcoin の社員の正規の指図に不正なデータを足した。
  • 関東財務局は、署名を1人で行い、秘密鍵を一括で管理し、ウォレットを分けていなかったことを、事務ガイドラインに反すると知りながら続けていたと認定した。
  • 根本の直しは、署名の前に、送り先と額が承認された中身と同じかを、指図の通り道と別の経路で確かめること。複数人の承認、鍵とウォレットの分散、上限はその上に重ねる。
  • 委託先とその先の部品の会社の社員の端末は、本番の送金の経路の一部になる。開発の端末で知らないコードを動かさない決まりと、本番へ入る認証の強さも守りの層に入る。

何が起きたか

2024年3月下旬の接触から、5月中旬以降のなりすまし、5月31日の流出、9月26日の業務改善命令、2025年3月8日の移管と、12月の特定、2025年1月の Ginco の報告までの経緯 2024年3月下旬 採用担当を装い Ginco の社員へ 2024年5月中旬 以降、社員に なりすまして侵入 2024年5月31日 4,502.9BTC の 流出を検知 2024年9月26日 関東財務局の 業務改善命令 2025年3月8日 口座と資産を 移してサービス終了 2024年12月23日と24日 FBI、DC3、警察庁が TraderTraitor と特定 2025年1月28日 Ginco が侵入の経路を報告 赤は攻撃の段。12月23日は米国の日付、24日は日本の日付
図1 接触から流出、処分、移管までの経緯と、手口が公になった時期
日付出来事
2022年4月18日CISA、FBI、米財務省が、TraderTraitor の名で、採用を装う標的型のメッセージで暗号資産の会社の社員を狙う手口に注意を呼びかける[11]
2024年3月下旬北朝鮮の攻撃者が LinkedIn で採用担当を装い、Ginco の社員に接触する。その社員は Ginco のウォレットの管理の仕組みに入れた。採用前の試験と称して、GitHub に置いた悪意ある Python のスクリプトの URL を送った[8][10]
2024年5月中旬以降攻撃者がセッションの Cookie の情報を使って社員になりすまし、Ginco の暗号化されていない通信の仕組みに入る[8]。Ginco は、5月24日から31日の間に、社員の認証情報で Kubernetes の本番の環境へ不正に入った跡を確認した[10]
2024年5月31日13時26分頃、DMM Bitcoin が自社のウォレットからの BTC の不正な流出を検知する。流出は4,502.9BTC、約482億円相当。新規口座の審査、暗号資産の出庫、現物の買い、レバレッジ取引の新規の建玉を止め、流出分は全額保証すると発表[1]。同日、関東財務局が資金決済法に基づく報告徴求命令を出す[7]
2024年6月5日DMM Bitcoin が、グループ会社からの借入、増資、劣後特約付借入で計550億円を調達する予定を示し、流出相当の BTC は市場に配慮しながら調達するとした。原因の調査は継続中とした[2]
2024年7月2日関東財務局が2度目の報告徴求命令を出す[7]
2024年9月26日関東財務局が業務改善命令を出す。提出された報告では、まだ具体的な事実関係が明らかになっていないとし、事実と根本原因の究明を命じた[7][3]
2024年11月29日DMM Bitcoin と SBI VCトレードが、口座と預かり資産の移管で合意する。12月2日に公表し、移管の後に事業を廃止する予定とした[4]
2024年12月23日、24日FBI、DC3、警察庁が連名で、TraderTraitor による窃取と特定したと公表する[8]。警察庁、NISC、金融庁が、手口の例と緩和策を示す注意喚起を出す[9]
2024年12月25日移管の本契約の締結を公表。移管日は2025年3月8日とした[5]
2025年1月28日Ginco が、自社のソフトを構成する基盤の一部への不正アクセスと、DMM Bitcoin の流出との関係を報告する[10]
2025年3月8日口座と預かり資産のすべてを SBI VCトレードへ移し、DMM Bitcoin のサービスを終える[6]
  • FBI は被害を、攻撃の時点で3億800万ドル相当と書く[8]。盗まれた資金は最終的に TraderTraitor が管理するウォレットへ移った[8]。
  • 関東財務局の業務改善命令の時点で、流出の具体の手口は究明されていなかった。命令は、手口にかかわらず管理の体制の不備が重大だとして出された[7]。

通った道筋

偽の採用試験で Ginco の社員の端末が侵害され、盗まれた認証の情報で指図を扱う基盤に入られ、DMM Bitcoin の正規の指図に不正なデータが足され、そのまま署名されて攻撃者のウォレットへ送られた 攻撃者 Ginco DMM Bitcoin 採用担当を装う SNS で接触 2024年3月下旬 社員の端末 採用試験と称する Python のスクリプト 認証の情報 指図と履歴の基盤 クラウドの本番の環境 5月中旬以降に侵入 指図に不正なデータ DMM Bitcoin の社員 正規の送金の指図 2024年5月下旬 署名と送信 オフラインで管理する鍵 署名は1人、鍵は一括 関東財務局の認定 攻撃者の ウォレット 4,502.9BTC 5月31日 13時26分頃に検知
図2 偽の採用試験から、書き換えられた指図が署名されて出ていくまでの道筋。FBI、警察庁、Ginco、関東財務局の公表をつないだもの
段公表されたこと
近づくLinkedIn で採用担当を装い、Ginco のウォレットの管理の仕組みに入れる社員に接触した[8]。警察庁の注意喚起は、別の SNS やメッセージのアプリへ移ろうとすること、プログラムの不具合を直してほしいと頼むことを手口の例に挙げる[9]。
動かすFBI は、社員が Python のコードを自分の GitHub のページに写し、その後に侵害されたと書く[8]。Ginco は、社員がスクリプトを実行するよう誘導され、業務用の端末が侵害されたと書く。スクリプトは Python の仕様を使う高度な手法のものだったと捜査当局が確認した[10]。
なりすます攻撃者は、Ginco のソフトの基盤として契約するクラウドの Kubernetes の本番の環境へ入れる認証情報を取った[10]。5月中旬以降、セッションの Cookie の情報で社員になりすまし、Ginco の暗号化されていない通信の仕組みに入った[8]。
書き換える攻撃者は、低いレイヤーの通信の処理に干渉し、DMM Bitcoin による正規のトランザクションの指図に不正なデータを足した。不正な送金のトランザクションが Ginco のソフトから送られた事実は無い、と Ginco は書く[10]。FBI は、5月下旬にこの侵入を使って DMM の社員の正規の取引の要求を書き換えた可能性が高いと書く[8]。
署名するGinco のソフトでは、指図と履歴を扱うサーバーと操作の画面を Ginco のクラウドから出し、秘密鍵はオフラインのコールドウォレットのソフトとして利用者の手元に置く[10]。DMM Bitcoin は署名を単独で行い、秘密鍵を一括で管理していた[7]。

Ginco は DMM Bitcoin と直接ではなく、DMM Bitcoin のシステムの開発と運用を担う会社にソフトを提供し、その会社が DMM Bitcoin に使わせることを許諾していた[10]。DMM Bitcoin から見ると、委託先のその先の会社の社員の端末が、送金の経路の一部になっていた。

鍵が盗まれたという話は公表資料に無い

ホットウォレットの秘密鍵が盗まれた、という説明が広く出回ったが、公表資料には無い。FBI と Ginco は、正規の指図が書き換えられたと書き、関東財務局は、命令の時点で手口は究明されていないと書く[7][8][10]。書き換えられた指図がどう署名されたか、署名する人が何を見ていたかは、どの発表にも無い。

書き換えが署名に届く仕組み

次は架空の作りで、指図の系、中継、署名の3つに分けた送金の流れである。中継は、この件では委託先のさらに先の会社の基盤にあたる。

指図の系が出した指図を中継が書き換えても、署名の前に指図の系の署名と送り先の登録と上限を確かめれば、署名の前で止まる 指図の系 2人が承認し 中身に署名する 中継 委託先の基盤 送り先を書き換え 署名の前の確認 指図の署名、登録、 上限、承認の数 署名の鍵 複数の鍵を 別の場所に 合わなければ止める 鍵は使われない 送り先の登録は、指図とも中継とも 別の経路で、別の人が行う 中継を信じない。署名する所が自分で確かめる
図3 架空の送金の流れ。中継で書き換えられても、署名の前の確認で止まる

悪い例。架空の署名の系。届いた指図をそのまま署名する

// signer.js  架空の例
const req = await relay.receive();          // 中継を通って来た指図
const tx = buildTx(req.to, req.amount);     // 中継が書き換えても気付かない
await broadcast(sign(tx, coldKey));

直した例。指図の系の署名、送り先の登録、上限、承認の数を、署名の前に確かめる

// signer.js  架空の例。公開鍵と送り先の一覧は、中継を通らない経路で入れておく
const req = await relay.receive();
if (!verify(req.body, req.sig, ORDER_SYSTEM_PUBKEY)) return reject("指図の署名が合わない");
const order = JSON.parse(req.body);
if (!registeredDestinations.has(order.to)) return reject("登録の無い送り先");
if (order.amount > LIMIT_PER_TRANSFER) return reject("1回の上限を超える");
if (new Set(order.approvers).size < 2) return reject("承認が足りない");
const tx = buildTx(order.to, order.amount);
// 署名の装置の画面に送り先と額を出し、署名する人が指図の系の画面と見比べてから押す
await broadcast(sign(tx, coldKey));
  • 確かめる所は、中継の手前ではなく署名の直前に置く。中継の中で確かめても、中継が乗っ取られれば確認ごと書き換えられる。
  • 送り先の一覧と指図の系の公開鍵は、中継を通らない経路で、指図を出す人とは別の人が登録する。一覧を中継から受け取れば、攻撃者は送り先を一覧に足せる。
  • コールドウォレットは鍵をネットから離すが、何に署名するかは守らない。この件の鍵の扱いは、オフラインのソフトとして DMM Bitcoin の側にあった[10]。

どこで止められたか

近づく、動かす、なりすます、書き換える、署名する、の5段それぞれの下に、止める仕組みを置く 1 近づく 偽の採用担当 2 動かす 試験のコード 3 なりすます 本番の基盤へ 4 書き換える 正規の指図 5 署名する 4,502.9BTC 手口を知る 急がせる誘い ビデオ通話で確認 動かす場所 業務の端末で 動かさない 本番への入口 強い認証と いつもと違う接続 通り道 暗号化と 指図への署名 署名の前 中身の確認 複数人と分散 5が根本。1から4は、委託先の先まで含めて重ねる網
図4 流出が進む5段と、それぞれで止める仕組み
段この件で公表されたこと止める仕組み
1 近づくLinkedIn で採用担当を装った接触[8]SNS で近づかれたらビデオ通話を求め、何度も断れば不審とみる。やり取りの画面を残す。コードの確認や実行を急がせる兆候に注意する[9]
2 動かす採用前の試験と称する Python のスクリプトで、業務用の端末が侵害された[10]内容を確かめずにコードを実行しない。実行するなら業務用の PC を使わないか、仮想マシンを使う[9]
3 なりすます社員の認証情報とセッションの Cookie の情報で、本番の基盤に入られた[8][10]多要素認証、業務の期間に限った最小の権限。いつもと違う時間帯、地域、VPN、貸与していない端末からの接続を監視する[9]
4 書き換える暗号化されていない通信の仕組みに入られ、正規の指図に不正なデータを足された[8][10]経路を暗号化し、指図そのものに出した側の署名を付ける。経路の暗号化だけでは、経路の途中の機械に入られた時に守れない
5 署名する署名は単独、秘密鍵は一括、ウォレットは分けていなかった[7]移転の取引内容が真正かを確かめる。複数の担当者を関わらせ、複数の鍵での署名を要し、鍵の置き場所を分ける[12]。ウォレットを分けて管理する[7]

5 署名する。根本の段

1から4は、どれも攻撃者が署名の手前まで来る道を1つずつ塞ぐ策である。道は、委託先、その先の部品の会社、それぞれの社員の端末と、数えきれない。署名する所が、署名する中身を自分で確かめていれば、どの道で書き換えられても、署名の前で止まる。

金融庁の事務ガイドラインは、暗号資産の移転について、社内規則で定めた手続で複数の担当者が関わること、複数の秘密鍵での電子署名を要すること、各鍵の保管場所を分けること、移転の取引内容が真正であることを確かめることを着眼点に挙げていた[12]。関東財務局は、DMM Bitcoin が署名を単独で行い、秘密鍵を一括で管理し、それがこのガイドラインに反すると認識しながら続けていたと認定した[7]。決まりは書かれていた。止まらなかったのは、決まりを仕組みで強制していなかったためである。

預かりの規模が増えても複数のウォレットに分けなかったことも認定された[7]。分けていなければ、1回の署名で動かせる額の上限は、そのウォレットの残高になる。1回と短い時間に動かせる額の上限の考え方は、A06 安全性を欠いた設計 の回数と量の上限の節にある。

4 書き換える。指図の通り道

FBI は、入られた仕組みを暗号化されていない通信の仕組みと書く[8]。Ginco は、低いレイヤーの通信の処理への干渉と書く[10]。経路を暗号化すれば、経路の外からの書き換えは防げる。しかし、指図を受けて渡す機械そのものに入られれば、その機械の中では平文で触れる。指図を出した系がその中身に署名し、受け取る側が使う直前に確かめれば、途中の機械を信じなくてよい。使う直前に完全性を確かめる考え方は、A08 ソフトウェアまたはデータの完全性の不備 にある。

2と3 委託先の先の端末と認証

Ginco の社員の端末から、Kubernetes の本番の環境へ入れる認証情報が取られた[10]。開発の端末に本番へ入れる長く使える資格情報があれば、端末1台の侵害が本番の侵害になる。資格情報を用途ごとに分け、期限を短くする考え方は、秘密の鍵の扱い の権限を最小にする節にある。

金融庁は2026年4月の方針で、近年の流出は署名の鍵の盗難に限らず、ソーシャルエンジニアリングや外部委託先への侵入による間接の攻撃が目立つとし、コールドウォレットを使えば安全とは言えないと書いた。外部委託先に求めるサイバーセキュリティの要件の在り方を検討するとした[13]。

記録と保全

関東財務局は、流出時の証拠保全のためのログの保存期間などを検討しておらず、調査と原因の分析に要る保全を適切に行っていなかったと認定した[7]。命令の時点で手口が分からなかったことと無関係ではない。警察庁の注意喚起は、端末のログの保存期間と、感染後にログが消される危険を考え、ログを集めて保存し検索できる仕組みを作るよう求める[9]。置き方は A09 セキュリティログとアラートの不備 の警告と保全の節にある。

守り方

根本の直し
  • 署名する所が、署名の直前に、送り先と額が承認された中身と同じかを確かめる。指図には出した系の署名を付け、署名する側はその公開鍵を中継と別の経路で持つ[12]。A08 ソフトウェアまたはデータの完全性の不備
  • 移転には複数の担当者の承認と、複数の鍵での署名を要する仕組みにし、鍵の置き場所を分ける。1人で署名できる作りを残さない[12][7]。
  • 送り先の登録を、送金の指図と別の経路、別の人の操作にする。登録の無い送り先へは署名しない。
  • 預かりを複数のウォレットに分け、1回と短い時間に動かせる額に上限を置く[7][12]。A06 安全性を欠いた設計
緩和の策
  • 送金の経路に入る委託先と、その先の部品の会社までを洗い出し、どの社員の端末から本番に届くかを一覧にする。外部委託先に求める要件を契約に書く[13]。
  • 本番へ入る資格情報を開発の端末に置かない。多要素認証を使い、権限は業務の期間に限り、終われば縮める[9]。秘密の鍵の扱い
  • 認証とアクセスのログで、いつもと違う時間帯、地域、VPN、貸与していない端末からの接続を見る。端末の電源が切れている間の接続のような、EDR や端末のログとの食い違いを見る[9]。
  • 受け取ったコードを業務用の PC で動かさない。動かすなら仮想マシンで、先にエディタで開いて読む[9]。
  • ログを端末から集めて別の場所に保ち、保存の期間を決める。感染が疑われたら電源を入れたまま隔離し、メモリを含む揮発性の情報から保全する[9]。A09 セキュリティログとアラートの不備

参照

  1. 【重要】暗号資産の不正流出発生に関するご報告 第一報 DMM Bitcoin、2024年5月31日。Internet Archive の控え
  2. 【重要】暗号資産の不正流出発生に関するご報告 第二報 DMM Bitcoin、2024年6月5日。Internet Archive の控え
  3. 【重要】当社に対する関東財務局の行政処分について DMM Bitcoin、2024年9月26日。Internet Archive の控え
  4. 【重要】口座及び預かり資産のSBI VCトレードへの移管に向けた基本合意について DMM Bitcoin、2024年12月2日。Internet Archive の控え
  5. 【重要】お客様の口座及び預かり資産のSBI VCトレードへの移管について DMM Bitcoin、2024年12月25日。Internet Archive の控え
  6. サービス終了のお知らせ DMM Bitcoin、2025年3月8日のサービス終了の後の案内。Internet Archive の控え
  7. 株式会社DMM Bitcoinに対する行政処分について 関東財務局、2024年9月26日
  8. FBI, DC3, and NPA Identification of North Korean Cyber Actors, Tracked as TraderTraitor, Responsible for Theft of $308 Million USD from Bitcoin.DMM.com FBI、DC3、警察庁、2024年12月23日
  9. 北朝鮮を背景とするサイバー攻撃グループ TraderTraitor によるサイバー攻撃について 注意喚起 警察庁、内閣サイバーセキュリティセンター、金融庁、2024年12月24日
  10. 当社サービスへのサイバー攻撃に関するご報告 株式会社Ginco、2025年1月28日
  11. TraderTraitor: North Korean State-Sponsored APT Targets Blockchain Companies AA22-108A CISA、FBI、米財務省、2022年4月18日
  12. 事務ガイドライン 第三分冊 金融会社関係 16 暗号資産交換業者関係 新旧対照表 金融庁、2024年10月4日。Ⅱ-2-2-4-2 の流出リスクの低減。改正の前と後の両方にある項目
  13. 暗号資産交換業等におけるサイバーセキュリティ強化に向けた取組方針 金融庁、2026年4月3日