mozyのかきおき

mozyの読書感想文や思考置き場

monappyとMONAコイン盗難関連に関しての雑記

時系列でまとめているのはこちら mozy-ok.hatenablog.com

目次

2018/09/02 23:11 次からはここに更新した内容と時間を追記していくことにする
2018/09/03 00:22 guriが追跡ツールを完成させたので追記
2018/09/03 03:40 追跡ツールがアドレスをたどって収集するように改良された
2018/09/03 15:37 公式の声明が出たため追記
2018/09/03 15:48 犯人へのアクセス? があったとのことを追記
2018/09/04 16:30 今回の事件に関連すると思われる約3500個のアドレスに対し調査したデータを追加
2018/09/04 16:34 送金量も含めて可視化した画像を追加
2018/09/21 100MONA送信されていた部分は無関係かもしれないということを追記

経緯

Twitterを眺めていたところ、Monacoinの盗難事件を発見した。

いつもMonappyをご利用いただきありがとうございます。

この度、弊サイトに対して外部からの攻撃が発生し、調査の結果ホットウォレット内のMonacoinが盗難されていることが判明いたしました。 そのため、現在サービスを停止して調査を行っております。 詳細な攻撃の内容に関しては現在調査を進めております。 ユーザーの皆様をはじめご関係者の皆様に、多大なるご迷惑をおかけしていますことを深くお詫び申し上げます。

詳細は、公式サイト参照のこと https://monappy.jp/index.html

調査中

サイトの公式声明

2018年9月1日、外部からblock withholding attackについてご報告を受け調査したところ、サーバ上にあるホットウォレットよりMonacoinが盗難されていることが判明いたしました。 全残高の50%以上を保管しているコールドウォレット内のMonacoinについては影響はありませんでした。 従来より対策として必要な承認数を引き上げるなどの処置をしておりましたが、外部からの攻撃により盗難されたものと考えられます。 この件を受けてすぐにサーバを切断し確認作業を行っておりましたが、調査の結果ほぼすべてのサーバ上にあるMonacoinが盗難されていることを確認しました。 現在も攻撃の内容について調査を行っております。 なお、この件につきましてメールアドレスやパスワードなどユーザー情報などの流出は確認されておりません。

時系列で関連しそうな物を並べていく(明記しない限りはJST)

事件以前?

2018/08/31 23:35

関連不明だが

事件発生後

2018/09/01 22:50 頃

一報が出た? (確認中)

2018/09/01 22:57:44.24
789承認済み名無しさん2018/09/01(土) 22:57:44.24ID:c6k8eLp6
モナ死亡w

http://fate.5ch.net/test/read.cgi/cryptocoin/1534497443

2018/09/01 23:16

2018/09/02 00:07

岡三マンが反応

2018/09/02 1:08

曰く、relog ではない模様。

2018/09/02 03:03

公式に、今回の攻撃についてはblock withholding attackなどとは関係しないだろうとの声明がでた
[https://twitter.com/monappy/status/1035951273143455744:embed]

上記声明より引用

2018年9月2日午前1時、検証の結果攻撃に至った原因が高負荷時におけるギフトコード機能の不備であることを確認いたしました。

2018年8月27日から2018年9月1日にかけて、攻撃者と見られる複数のユーザーがギフトコードを大量に発行しました。 同8月29日から9月1日にかけて外部受け取り機能を利用してギフトコードを受け取る際、高い頻度でリクエストを行うことで一つのギフトコードに対し数回の送金が行われてしまい、今回の攻撃に至りました。 ギフトコードの処理に関してはデータベースのトランザクション機能を利用しており、本来同じギフトコードを二重に使用することはできないようになっていました。 しかし、行ロック処理に不備があったため、もしくはcoindの接続がタイムアウトした場合にロールバックが行われることにより、極端なcoindの高負荷時には複数回の送金が行えたものと思われます。 また、この攻撃に際し少額のMonacoinを大量に送付しておくことでcoind送信時の負荷を増大させようとする試みも確認しました。

現時点での調査結果は以上の通りですが、引き続き不確定な部分につきまして原因を究明するために調査を進めて参ります。

原因は、高負荷時におけるギフトコード機能の不備らしい 2018年8月27日から2018年9月1日 で 複数ユーザによる攻撃とな

2018/09/02 04:40

公式の声明が更新
攻撃手法が明らかに。

MonappyからMonacoinを送信する際は、monacoindという別のサーバ上のアプリケーションと通信する仕様になっています。 この通信がタイムアウト等で失敗した場合はサーバダウンなどで送金に失敗しているとみなして、取引をロールバックする仕様となっていました。 また、ギフトコードの処理に関してはデータベースのトランザクション機能等を利用しており、本来同じギフトコードを二重に使用することはできないようになっていました。 しかし、高負荷状態でギフトコードを連続して使用しようとした場合、通信を受け取ったmonacoindの応答に時間がかかり、サイト側ではタイムアウトとなってロールバックされたあとにmonacoind側では送金が行われていました。 この結果、一つのギフトコードから複数回送金されたものと考えられます。 また、この攻撃に際し少額のMonacoinを大量に送付しておくことでcoind送信時の負荷を増大させようとする試みも確認しました。

(逐次更新)

参考に

Monacoinのrich List
Monappyのアドレスがわからん。

https://bchain.info/MONA/rich/

2018/09/02 06:51 更新

MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA かもしれない

憶測の域を出ない部分

https://bchain.info/MONA/addr/MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r

MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r このアドレス何者だろう。 このアドレスに対して、 M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t が 100MONAずつを何度も送っている ループもしてる。謎い。

M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t は

First transaction 13 hours ago
Last transaction    46 minutes ago
Total Received 7100 MONA
Balance 0 MONA

つまりは経由しているアドレスと言えそう。
こっちも経由しているアドレスかな

Monacoin address MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA
Hash    c5a090001b8febcd1fe0949c941e37d0d9c37e2c
Number of confirmed transactions    840
First transaction   4 days ago
Last transaction    13 hours ago
Total Received  83100 MONA
Balance 0 MONA

4days 前に用意されて、13hours前に実行された? ミキシングっぽい(?)アドレスリスト

MMjVpbDsfqiKn1WSWLeMp1u6wLSWs48Dr5
MGjBioYdohQN1NUfDwqAUsnaX3H2TtfgC6
MVA37vsGUNc9rAcP6GiwNyRtUxenFpFEGo
MCAy5iykU3vzzF2KNUUYWfzGowoBpLeW9c
MWDZDgmgyr83FLte4NG4d63kT9t73PGrGf

とかいってる間に(2018/09/02 03:05現在) MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r の Balanceが 0MONA になった

https://bchain.info/MONA/addr/MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r

現在はここだ

https://bchain.info/MONA/addr/MGsG3Zc95j79nA5iJa5mHbDY5Nf37LsQVn

MGsG3Zc95j79nA5iJa5mHbDY5Nf37LsQVn

一旦沈静化中 2018/09/02 03:37 現在

2018/09/02 04:04

再び規模の大きなミキシングを行いつつ(?)
マルチシグアドレスに移動しているものもある様子
372UDGuqV59MjxEusJgYNiK6SAowZb1sFx

逐次ブログ更新は間に合わないので、ツイッターで呟きつつ、わかったことをまとめるスタイルにしていく。

この攻撃手法に関して、以前、ある掲示板で話されていたかもしれないとの情報も入ってきた。

2018/09/02 06:10

トランザクションに関するリストをcsvgithubにまとめてアップした。
Thanks Help Guri!!
https://twitter.com/GuriTech

2018/09/02 06:55

ビットコインのマルチシグアドレスは、今の所計3つ

34wQwvsELB1ZMUgJrpxmBfwH5jpZwtoN99
3HWrSeSXt2zTBpnpQ2xWWeXQF5LZxLnBFx
372UDGuqV59MjxEusJgYNiK6SAowZb1sFx
2018/09/02 07:37

やはり、ビットコインのアドレスではなかった。
もなかさん
https://twitter.com/monamour555/ ありがとうございます!

2018/09/02 11:05

以下のマルチシグアドレスが追加された様子。

3GKzYYATKAarkb324dRJBN6Zop3zmrUVc9

これで計4つ

34wQwvsELB1ZMUgJrpxmBfwH5jpZwtoN99
3HWrSeSXt2zTBpnpQ2xWWeXQF5LZxLnBFx
372UDGuqV59MjxEusJgYNiK6SAowZb1sFx
3GKzYYATKAarkb324dRJBN6Zop3zmrUVc9
2018/09/02 16:20

この攻撃手法に関して話されていたのは、アングラ板 の可能性があるとわかった。

2018/09/02 17:38

一旦追跡をし続ける方針と少し変わって、有志で今回の流出の可視化ツールを作成する流れになっている。

とりあえずのJSONが吐き出せるプログラム
Thanks support Guri!! https://github.com/gurisaka/mona_transactions_investigate_tools

2018/09/02 17:43

MMQ618AoG6za5fErcbLTqn7gSBhBGVt16rに関係があったアカウントは全部で403個
下のサイトにアドレス一覧あり
https://pastebin.com/x4zwLzZX

2018/09/02 19:44

取引の流れを @GuriTech のヘルプを受けて可視化した。
ミキシング部分などが把握できる。
vimeo.com

元データはここ。

mona_transactions_investigate_tools/MMQ618_transaction_graph.svg at master · gurisaka/mona_transactions_investigate_tools · GitHub

2018/09/02 19:09

この記事のブクマにあるpaste.binのアドレス先に
犯人とのやりとりかもしれない書き込みがあることがわかった
https://archive.is/7lcd0

書き込み内容は以下の通り。

I gift you WIF
 
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r
TRAwM8TZBQvGRU9tYoEUmknW5jS3JPVXGJ79zUcNxmri9ojChKg1
 
M8Fj6b7Dk76KjrGcxG3yFp3eufQMLKKs8t
TQMjrb4cEroZun1KpPnFMAYpDRxnW2hLAesA85wACULiyJBg9L28
 
All coins are gone
 
Should I burn the coins?

ちなみにWIF(秘密鍵)はあっている

2018/09/02 23:05

集約してるのバレバレだぜ。
oro2714さん! Help ありがとう
https://gist.github.com/oro2714

f:id:mozy_ok:20180902230514p:plain

2018/09/03 00:22

@GuriTech が追跡ツールを完成させた。
これで調査が容易になるぞ。

GitHub - gurisaka/mona_transactions_investigate_tools

2018/09/03 03:40

追跡ツールがアドレスをたどって収集するように改良された https://twitter.com/guritech/status/1036322513863598081?s=21

2018/09/03 15:37

公式の情報が出たため追記

https://medium.com/@IndieSquare/monappy%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Bmonacoin%E3%81%AE%E4%B8%8D%E6%AD%A3%E5%87%BA%E9%87%91%E3%81%AB%E3%81%A4%E3%81%8D%E3%81%BE%E3%81%97%E3%81%A6-bdb1179e2bb9

2018/09/03 15:48

OP_RETURN部分のhexをasciiに変換すると「Give me chocolate. I want to get 1000Mona」になると報告あり。 https://mona.chainsight.info/tx/629321e9697e13d2db3339519a331d7374cb020df18df366f6fd3207f5f8b318

2018/09/04 16:30

今回の事件に関連すると思われる約3500個のアドレスに対しguriさんのツールで調査したデータ

oro2714 (@oro2714) | Twitter さんが作成してくれました。感謝

ResearchResults - Google ドライブ

2018/09/04 16:34

送金量も含めて可視化した画像を追加

https://raw.githubusercontent.com/MozyOk/monappy_chaser/master/M92A9ek5745jKDveURpmKzagwe1pCDkVeM_money_flow.png

事件の流れがわかりつつある

https://bchain.info/MONA/addr/MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA ここら辺をみるに、

2018/08/29 10:35 MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
から MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (moppy?)
に100MONA送信されている履歴がある。

この中の一つが上で紹介した
monappyに100mona謎の入金あり
っていうTweetの証拠となりうるかな

2018/09/21

この100MONA送信されている部分は無関係かもしれない。

2018/09/02 07:13

以下 (GMT +02:00) です
事件発生のタイミングをまとめ

September 1, 2018, 6:14 am
事件発生
MRv7hJJ15KpWQkzTYvApwUJgZRubnri1hA (100 MONA)
×101 の送信

99.98MONAが
MLkTxD2SVBftYDCJpas7kDCenN3XT144Nq

10000MONAが
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r (犯人?)
に送金される