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
関連不明だが
monappyに100mona謎の入金あり。
— ねっむ@伸縮自在ラッコ (@nempoint) 2018年8月31日
てめーはコインを引き出せねーよ)^o^(ケケケって書いてある。
さて、皆さん謎解きの時間だ。これはドッキリなのか、ほんとに引き出せない罠をはっているのか、お恵みなのか。名回答珍回答にカードかモザイク配るよ(*´ω`*)
あと、割とガチで困ってますw pic.twitter.com/bnZoavbzhR
事件発生後
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
調べたところ6月以降、Monacoinに大きなreorgは発生していません
— なちゃっと (@nachat_dayo) 2018年9月1日
2018/09/02 00:07
岡三マンが反応
Monappy、攻撃されモナコインが盗難されたと発表 → モナコイン急落https://t.co/gftSFmkpDO
— 岡三マン (@okasanman) 2018年9月1日
2018/09/02 1:08
曰く、relog ではない模様。
文面を見る感じだとreorgしたように思ってしまいますね...
— なちゃっと (@nachat_dayo) 2018年9月1日
実際にチェーン調べてみたところreorgはなかったのでまた別な可能性ということになるかと思います!
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
ミキシングしつつ
— mozy (@ok_mozy) 2018年9月1日
372UDGuqV59MjxEusJgYNiK6SAowZb1sFx ってなビットコインのマルチシグアドレスに送金開始https://t.co/mK79HVGtx7#モナコイン追跡
逐次ブログ更新は間に合わないので、ツイッターで呟きつつ、わかったことをまとめるスタイルにしていく。
この攻撃手法に関して、以前、ある掲示板で話されていたかもしれないとの情報も入ってきた。
2018/09/02 06:10
トランザクションに関するリストをcsvでgithubにまとめてアップした。
Thanks Help Guri!!
https://twitter.com/GuriTech
monappy事件で
— mozy (@ok_mozy) 2018年9月1日
犯人のアドレスの可能性のある
MMQ618AoG6za5fErcbLTqn7gSBhBGVt16r に関連した
送信元一覧と送信元履歴、残高履歴のCSVファイルをまとめた。
Thanks Help guri !!https://t.co/cC9L5JZAhk#モナコイン追跡 #monappy #monacoin #モナコイン
2018/09/02 06:55
ビットコインのマルチシグアドレスは、今の所計3つ
34wQwvsELB1ZMUgJrpxmBfwH5jpZwtoN99 3HWrSeSXt2zTBpnpQ2xWWeXQF5LZxLnBFx 372UDGuqV59MjxEusJgYNiK6SAowZb1sFx
2018/09/02 07:37
やはり、ビットコインのアドレスではなかった。
もなかさん
https://twitter.com/monamour555/
ありがとうございます!
「× ビットコインのマルチシグアドレス」「◎ モナコインの旧形式マルチシグアドレス」です。3-prefix と P-prefix は相互変換可能。一部の blockchain explorer は、P-prefix 表示未対応で 3-prefix で表示されます。
— もなか (@monamour555) 2018年9月1日
(MONA to BTC の送金は、アトミックスワップでもしないと無理)
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
元データはここ。
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
2018/09/03 00:22
@GuriTech が追跡ツールを完成させた。
これで調査が容易になるぞ。
GitHub - gurisaka/mona_transactions_investigate_tools
$MONA の特定のアドレスに対する調査を一括で行うスクリプトが出来たので公開します。python3の環境があれば動くのでぜひ試してみてください。https://t.co/WVgxbbgT1e#Monappy pic.twitter.com/uMbaoayzEH
— グリ@Zaif流出追跡中 (@GuriTech) 2018年9月2日
2018/09/03 03:40
追跡ツールがアドレスをたどって収集するように改良された https://twitter.com/guritech/status/1036322513863598081?s=21
2018/09/03 15:37
公式の情報が出たため追記
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 さんが作成してくれました。感謝
2018/09/04 16:34
送金量も含めて可視化した画像を追加
事件の流れがわかりつつある
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 (犯人?)
に送金される