最近暗号通貨の収益性が高まり、様々な人がPCのリソースを利用して、マイニングを気軽に行い、暗号通貨を手に入れる、といった事が非常に流行っています。
かくいう僕も、マイニングノードを構成して暗号通貨のマイニングを行っているのですが、このマイニングで得られるはずだった暗号通貨を盗み出す機能が実装された、IoTウイルス「Satori」の亜種、「Satori.Coin.Robber」が発見され、猛威を振るっています。
Claymore Minerのリモート管理機能が悪用される
どうやら今回見つかった「Staroi.Coin.Robber」は感染した機器から、悪意のあるパケットを非常に人気があるマイナーアプリ、「Claymore Miner」のWindows版が動作しているPCに対して送信し、Claymore Minerのリモート管理機能を悪用して、マイニングした暗号通貨を盗み出すとのこと。
Satori.Coin.Robberは以下の3つのパケットを発行して、マイニングプールのアドレスとウォレットのアドレスを書き換えます。
- miner_getstat1:マイニングステータスを確認する
- miner_file:リモートからreboot.batに記載されているマイニングプールのアドレスと、ウォレットのアドレスを書き換える
- miner_reboot:Claymore Minerを再起動し、新しく設定されたマイニングプールのアドレスとウォレットのアドレスを使ってマイニングを再開させる
新しく設定されるマイニングプールのアドレスとウォレットのアドレスは以下の通り。
- マイニングプール:eth-us2.dwarfpool.com:8008
- ウォレット:0xB15A5332eB7cD2DD7a4Ec7f96749E769A371572d
C&C通信はDNSベースで行われている
Satori.Coin.Robberは、感染するとコントロールサーバに対して、ハードコーディングされた、アイルランドはダブリンに設定されていると思われる、DNSサーバ(54.171.131.39)を指定して、DNSクエリを発行して、その結果を受信(C&C通信)しています。
その際、Satori.Coin.Robberが発行するDNSクエリとレスポンスは下記の通り。
[table id=81 /]
2018年1月21日 19:54時点のアンサーは下記の通り。
syobon@graf:~$ dig 54.171.131.39 w.sunnyjuly.gq txt ; <<>> DiG 9.10.3-P4-Ubuntu <<>> 54.171.131.39 w.sunnyjuly.gq txt ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 54833 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;54.171.131.39. IN A ;; AUTHORITY SECTION: . 342 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2018012100 1800 900 604800 86400 ;; Query time: 0 msec ;; SERVER: 10.0.1.60#53(10.0.1.60) ;; WHEN: Sun Jan 21 19:55:03 DST 2018 ;; MSG SIZE rcvd: 117 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59294 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;w.sunnyjuly.gq. IN TXT ;; ANSWER SECTION: w.sunnyjuly.gq. 300 IN TXT "0xB15A5332eB7cD2DD7a4Ec7f96749E769A371572d" ;; Query time: 20 msec ;; SERVER: 10.0.1.60#53(10.0.1.60) ;; WHEN: Sun Jan 21 19:55:03 DST 2018 ;; MSG SIZE rcvd: 98
syobon@graf:~$ dig 54.171.131.39 p.sunnyjuly.gq txt ; <<>> DiG 9.10.3-P4-Ubuntu <<>> 54.171.131.39 p.sunnyjuly.gq txt ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 47101 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;54.171.131.39. IN A ;; AUTHORITY SECTION: . 305 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2018012100 1800 900 604800 86400 ;; Query time: 0 msec ;; SERVER: 10.0.1.60#53(10.0.1.60) ;; WHEN: Sun Jan 21 19:55:40 DST 2018 ;; MSG SIZE rcvd: 117 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38909 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;p.sunnyjuly.gq. IN TXT ;; ANSWER SECTION: p.sunnyjuly.gq. 300 IN TXT "eth-us2.dwarfpool.com:8008" ;; Query time: 21 msec ;; SERVER: 10.0.1.60#53(10.0.1.60) ;; WHEN: Sun Jan 21 19:55:40 DST 2018 ;; MSG SIZE rcvd: 82
syobon@graf:~$ dig 54.171.131.39 s.sunnyjuly.gq txt ; <<>> DiG 9.10.3-P4-Ubuntu <<>> 54.171.131.39 s.sunnyjuly.gq txt ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 56387 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;54.171.131.39. IN A ;; AUTHORITY SECTION: . 278 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2018012100 1800 900 604800 86400 ;; Query time: 0 msec ;; SERVER: 10.0.1.60#53(10.0.1.60) ;; WHEN: Sun Jan 21 19:56:07 DST 2018 ;; MSG SIZE rcvd: 117 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11887 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;s.sunnyjuly.gq. IN TXT ;; ANSWER SECTION: s.sunnyjuly.gq. 42 IN TXT "Satori dev here, dont be alarmed about this bot it does not currently have any malicious packeting purposes move along. I can be contacted at curtain@riseup.net. This is not Mirai." ;; Query time: 0 msec ;; SERVER: 10.0.1.60#53(10.0.1.60) ;; WHEN: Sun Jan 21 19:56:07 DST 2018 ;; MSG SIZE rcvd: 236
この結果を見てみると、「p.sunnyjuly.gq」と「s.sunnyjuly.gq」のアンサーは、攻撃者のマイニングプールアドレスと、ウォレットアドレスと一致していることが分かります。
また、おもしろい事に「s.sunnyjuly.gq」に対するアンサーには、「悪意のあるコードは入ってねーから気にすんな これはMiraiではねーぞ」なんてメッセージが返ってきます。
確かに、「感染したPCに対して悪意のあるコード」は仕込まれていませんが、マイニングした暗号通貨を盗み取るような仕組みが実装されているので、Satori.Coin.Robberに悪意が無いということにはなりませんよね。
対処方法
もし、Claymore Minerを利用している場合、以下の対処を実施することが強く推奨されます。
- まずは「reboot.bat」の中身、そして念のため自分で作成した.batファイルを確認し、マイニングプールアドレス、ウォレットのアドレスが書き換えられていないことを確認する
- -mport 0 オプションを指定して、リモート管理機能を無効化する
- ルータのファイアウォールもしくはWindowsファイアウォールで54.171.131.39への通信を全て遮断する
- 同一ネットワークに接続されているIoTデバイスに、「Satori.Coin.Robber」が感染している恐れがあるため、一旦IoTデバイスの電源を切り、ネットワークから切り離す
- IoTデバイスのベンダーサイトなどを確認し、セキュリティパッチがリリースされていないか確認し、リリースされているのであれば適用する
まずはreboot.bat、自分自身が作成したマイニングを開始するための.batファイルの中身を確認し、マイニングプールアドレスと、ウォレットのアドレスが変更されていないか確認します。
書き換えられていた場合は、「Satori.Coin.Robber」に感染しているデバイスから攻撃されている可能性が高いです。
まずは、一旦Claymore Minerを終了し、.batファイルを修正します。またその際に「-mport 0」オプションを付け加え、リモート管理機能を無効化します。
ここまで完了したら、ルーターもしくはWindowsファイアウォールで54.171.131.39への通信を前者談します。
続いて、二次感染を防ぐためにも、同一ネットワーク上に設置されているIoTデバイスの電源を切り、ネットワークから切り離し、ベンダーサイトなどを確認して、セキュリティパッチがリリースされているかどうか確認し、リリースされているのであれば速やかに適用を行います。
もし、セキュリティパッチがリリースされていないようであれば、リリースされるまでのあいだは、ネットワークに接続しないようにすべきです。
まとめ
IoTデバイスが普及しはじめたことで、攻撃手段がより多様化してきていることを、日に日に感じるようになりました。
IoTデバイスのセキュリティ対策については非常に重要な事柄なのに軽視されがちでした。
ですが、最近ではIoTデバイスのセキュリティ対策に本腰を入れはじめてきている動きも確認できていますので、少しでも早くそれらの行動が功を奏することを願っています。
Source: 360 Netlab Blog – Network Security Research Lab at 360