複数の脆弱性を利用してルータやデバイスを狙うボット型マルウェアの新亜種を確認

2019年7月22日から2019年8月6日の間、トレンドマイクロが設置したハニーポットから注目すべき3つのボット型マルウェア「Neko」、「Mirai」、「Bashlite」の新しい亜種を確認しました。2019年7月22日に、Nekoの検体を確認して解析を開始し、翌週の2019年7月29日には利用する脆弱性が追加された亜種を確認しました。また、2019年7月30日にMiraiの亜種「Asher」、さらに翌週の2019年8月6日にはBashliteの亜種「Ayedz」が確認されました。 これらのマルウェアに感染したルータは、分散型サービス拒否(Distributed Denial of Service, DDoS)攻撃を実行するボットネットの一部として機能します。

■ボット型マルウェア「Neko」について解説

2019年7月22日、トレンドマイクロが設置したハニーポットからボット型マルウェアの検体「x86.neko」(「Backdoor.Linux.NEKO.AB」として検出)が確認されました。 この検体は、以下のコマンドを発行します。

コマンド

弊社が実施した調査から、このボット型マルウェア「Neko」は複数のアーキテクチャに対応したバージョンを持つことがわかりました。

解析の結果、Nekoはいくつかのバックドアコマンドを実行できることが判明しました。シェルコマンドだけでなく、ルータが情報を適切に処理して応答できなくするUDPフラッド攻撃およびUPD-HEXフラッド攻撃を実行可能です。

また、実行中のプロセスを終了させる「Killer」関数を備えています。Nekoのコードには、終了させる対象である自身以外のマルウェアに関連したプロセスの広範な一覧が存在します。

Nekoのコードをさらに調べたところ、複数の脆弱性をスキャンする機能を持っていることが分かりました。これにより、このマルウェアが他の脆弱なデバイスに拡散してしまう可能性があります。以下は関連する脆弱性の一覧です。

上述の脆弱性とは別に、Nekoは脆弱なAfrico製デバイスもスキャンすることが判明しました。しかし、本記事執筆時点でNekoがどのAfrico製デバイスをスキャンするのかを特定することはできませんでした。したがって、Africo製デバイスを使用するユーザは特定の脆弱性のみが影響を受けるわけではないことに留意してください。 ただし、弊社は、Africo製デバイスが持つ脆弱性の構造がNetgear 製DGNデバイス上の認証されていないRCEを可能にするNetgear製のルータ「Netgear DGN1000 / DGN2200」が持つ脆弱性に類似していることを確認しました。

図1:Africo デバイスをスキャンする「Neko」のコード
図1:Africo デバイスをスキャンする「Neko」のコード

2019年7月29日、弊社が設置したハニーポットから、アップデートされたNekoの亜種(「Backdoor.Linux.NEKO.AC」として検出)が確認されました。今回確認されたNekoは、UPXでパックされていました。ただし、アンパックを防ぐためにマジックナンバ「UPX!)は変更されていました。

図2: UPXを利用して圧縮された「Neko」のコード、マジックナンバーが変更されている
図2: UPXを利用して圧縮された「Neko」のコード、マジックナンバーが変更されている

この新しい検体にはスキャナ機能は拡張されており、拡散手法としてさらなる脆弱性を利用することが判明しました。 興味深いことに、この亜種が利用する脆弱性一覧にはNetgear製のルータ「Netgear DGN1000 / DGN2200」が持つ脆弱性が含まれていました。これは、脆弱なAfrico製デバイスのスキャンと同様の構造を持つ脆弱性です。

図3: ルータ「Netgear DGN1000 / DGN2200」が持つ脆弱性をスキャンする「Neko」のコード
図3: ルータ「Netgear DGN1000 / DGN2200」が持つ脆弱性をスキャンする「Neko」のコード

このアップデートされたNekoの亜種は、複数のベンダが提供するCCTV-DVRやNetgear製のルータ「Netgear R7000およびR64002016-6277)」が持つ脆弱性もスキャンします。

図4:複数のCCTV-DVRが持つ脆弱性をスキャンする「Neko」のコード
図4:複数のCCTV-DVRが持つ脆弱性をスキャンする「Neko」のコード
図5:Netgear製ルータ「Netgear R7000およびR6400」が持つ脆弱性をスキャンする「Neko」のコード
図5:Netgear製ルータ「Netgear R7000およびR6400」が持つ脆弱性をスキャンする「Neko」のコード

このNekoの亜種は、Vacron製ネットワークビデオレコーダが持つRCE脆弱性と同様の脆弱性構造を持つ防犯カメラであると見られる製品に関連した文字列「awsec」もスキャンします。

図6:文字列「awsec」をスキャンする「Neko」のコード
図6:文字列「awsec」をスキャンする「Neko」のコード

さらに、Nekoは文字列「cisco」と「wap54g」のスキャンも試みます。ただし、弊社の解析結果から、両方のコマンドはどのような脆弱性も利用不可であることが判明しました。以下の図7の「cisco」をスキャンするコードは脆弱性「CVE-2018-15379」を利用しようとしていると見受けられます。この脆弱性は、ルータ、スイッチ、無線LANデバイスを統合管理・監視するエンタープライズネットワーク向け製品「Cisco Prime Infrastructure」が提供するHTTP Webサーバにおいて、ディレクトリのパーミッションが制限されていないことに起因するRCEを可能とします。ただし、この攻撃で利用されるペイロードは正しいURIパスを使用しないため、この脆弱性を突く攻撃による影響はないと考えられます。

図7:文字列「cisco」をスキャンする「Neko」のコード
図7:文字列「cisco」をスキャンする「Neko」のコード

一方、文字列「wap54g」をスキャンするコードのペイロードに含まれたHTTPヘッダとメッセージボディは不適切にフォーマットされていたため、ルータ「WAP54Gv3」のRCE脆弱性の利用に失敗する可能性があります。

図8:文字列「wap54g」をスキャンする「Neko」のコード
図8:文字列「wap54g」をスキャンする「Neko」のコード

■Miraiの亜種「Asher」について解説

2019年7月30日、トレンドマイクロが設置するハニーポットから別のルータを利用するマルウェアであるMiraiの亜種「Asher」(「Backdoor.Linux.MIRAI.VWIRC」として検出)が確認されました。典型的なMiraiの亜種の特徴を持つAsherは、Unix系ユーティリティを提供するソフトウェア「BusyBox」を利用してデバイスに感染します。 まず、Asherはコマンド「/bin/busybox<任意の文字列>」を実行してBusyBoxの存在を確認します。 対象となるデバイスのシステムが「<任意の文字列>applet not found」と応答した場合、Asherは操作を続行します。 この亜種の作成者は、「<任意の文字列>」部分を使用してマルウェアに「名前を付け」ました。 今回の事例では、「Asher」という名前が使用されました。

図9:「BusyBox」の存在を確認するコマンド
図9:「BusyBox」の存在を確認するコマンド

Miraiの亜種「Asher」は、以下の「telnet」ログイン認証情報を使用して辞書攻撃でルータに侵入します。

  • 12345
  • 2011vsta
  • 2601hx
  • 4321
  • admin
  • daemon
  • default
  • guest
  • OxhlwSG8
  • pass
  • password
  • root
  • S2fGqNFs
  • support D13hh[
  • synnet
  • t0talc0ntr0l4!
  • taZz@23495859
  • tlJwpbo6
  • vizxv
  • xc3511

トレンドマイクロは以下の図10に示されているルータの脆弱性をスキャンすることで、Asherが拡散することを確認しました。 また、Asherが狙う脆弱性2つがNekoが狙う脆弱性と類似することがわかりました。

図10:ボット型マルウェア「Asher」がスキャンするルータの脆弱性
図10:ボット型マルウェア「Asher」がスキャンするルータの脆弱性

図11:ボット型マルウェア「Asher」がDASAN製家庭用GPONルータの脆弱性「CVE-2018-10561」および「CVE-2018-10562」をスキャンするコード
図11:ボット型マルウェア「Asher」がDASAN製家庭用GPONルータの脆弱性「CVE-2018-10561」および「CVE-2018-10562」をスキャンするコード

図12:ボット型マルウェア「Asher」がDVR「MVPower」でシェルコマンドの実行が可能になる脆弱性をスキャンするコード図12:ボット型マルウェア「Asher」がDVR「MVPower」でシェルコマンドの実行が可能になる脆弱性をスキャンするコード

図13:ボットネット「Asher」がRealtek製 SDK搭載のデバイスが持つ脆弱性「CVE-2014-8361」をスキャンするコード図13:ボットネット「Asher」がRealtek製 SDK搭載のデバイスが持つ脆弱性「CVE-2014-8361」をスキャンするコード

■Bashlite の亜種「Ayedz」について解説

2019年8月6日、弊社のハニーポットはルータに感染するさらに別のボット型マルウェアBashliteの亜種「Ayedz」の検体(「Backdoor.Linux.BASHLITE.SMJC」、「Backdoor.Linux.BASHLITE.SMJC8」、および「Backdoor.Linux.BASHLITE.SMJC4」として検出)を確認しました。このBashliteの亜種は、ファイル名に「Ayedz」という文字列を使用していることから、自身を「Ayedz」と呼称していると見られています。 このマルウェアが実行されると、Ayedzは46216番ポートを介してホストIPアドレス「167[.]<省略> [.]231」に、感染デバイスに関する以下の情報を送り返します。

図14:Bashliteの亜種「Ayedz」がホストに情報を送信するために使用するコマンド
図14:Bashliteの亜種「Ayedz」がホストに情報を送信するために使用するコマンド

以下は送信される情報の内容です。

  • Device –「getDevice」関数は、「/usr/sbin/telnetd」にファイルが存在する場合は文字列「SSH」を返し、そうでない場合は文字列「Uknown Device」を返す。
  • Files – 対象となるデバイスが以下のファイルを保持するかどうかを返す。
  • /usr/bin/python
    • /usr/bin/python
    • /usr/bin/python3
    • /usr/bin/perl
  • distro(Linuxディストリビューション) – 感染したデバイスのLinuxディストリビューションが「openSUSE」、「Red Hat Enterprise Linux(REHL)」、「CentOS」、「Gentoo Linux」、「Ubuntu」、「Debian」、または不明であることを返す。
  • Port – 上記の4つのファイルが見つかった場合、「getPorz」関数は文字列「22」を返す。 それ以外の場合は、文字列「Unknown Device」を返す。

このAyedzの検体の解析により、Ayedz はDDoS攻撃のためのいくつかのバックドアコマンドを実行可能であることが判明しました。また、弊社はAyedzが以下のようなコマンドを持つことを確認しました。

  • CLOUDFLARE – CloudFlareによるDDoS保護を回避するHTTPフラッド攻撃
  • CNC – コマンド&コントロール(C&C)サーバを設定
  • HTTP – HTTP フラッド攻撃
  • RAID – STD + TCP フラッド攻撃
  • STD – STD フラッド攻撃
  • STOMP – STD + UDPフラッド攻撃
  • STOP – ボットの動作を停止
  • TCP – TCP SYNフラッド攻撃
  • UDP – UDPフラッド攻撃
  • UPDATE – コマンド&コントロールサーバから更新されたバイナリをダウンロード

■被害に遭わないためには

デバイスの製造を行うメーカーはルータやその他のデバイスを保護する上で重要な役割を果たしますが、ユーザや企業もまた、本記事で紹介したMirai、Neko、Bashliteなどのマルウェアの脅威を防ぐために以下のようなベストプラクティスを講じることが大切です。

  • 製品に一貫してパッチを提供する信頼できるメーカーを選択する。
  • ルータなどのデバイスのファームウェアとソフトウェア、およびそれにアクセスするために使用される認証情報を定期的に更新する。
  • デバイスが使用する接続の暗号化とセキュリティ保護
  • 侵入に対する耐性を高めるようにルータを設定する
  • デバイスの古いもしくは不要なコンポーネントを無効にし、信頼できるソースを介した正当なアプリケーションのみを使用する。
  • ホームネットワークとそれに接続されたデバイスに追加のセキュリティを提供する製品を利用する。

■トレンドマイクロの対策

家庭用ルータを中心に構成されるホームネットワークを保護する「ウイルスバスター for Home Network」では、接続されている各デバイスへの脆弱性を悪用する攻撃をネットワークレイヤでブロックします。
また、「Trend Micro Smart Home Network™」をご利用のお客様は以下のルールによって本記事で解説した脅威から守られています。

Asher

REALTEK Rule 2575: Command Injection via UPnP SOAP Interface – HTTP (Request)
JAWS Rule 2544: JAWS Remote Code Execution Exploit – HTTP (Request), Rule 2639: CVE-2018-10562 – GPON Remote Code Execution – HTTP (Request)

Ayedz

Linux Beta Rule 3272: BASHLITE – TCP (Request) – Beta
Official Rule 4180: BASHLITE – TCP (Request) 

Neko

ペイロード ルール
Netgear Official Rule 2547: NETGEAR DGN1000/DGN2200 Remote Code Execution – HTTP (Request)
NetgearR7064 Official Rule 4103: Daemon DD-WRT Unauthenticated RCE Exploit – HTTP (Request)
Crossweb Beta Rule 3268: CCTV-DVR Remote Code Execution – HTTP (Request)
Official Rule 2485: CCTV-DVR Remote Code Execution – HTTP (Request)
Cisco Official Rule 2452: Wget Commandline Injection
Beta Rule 3269: CVE-2018-15379 Cisco Prime Infrastructure Remote Command Execution – HTTP (Request)
Official Rule 4168: CVE-2018-15379 Cisco Prime Infrastructure Remote Command Execution – HTTP (Request)
Awsec/Vacron Official Rule 2543: VACRON Remote Code Execution Exploit- HTTP (Request)
WAP54G Beta Rule 3270: Linksys Remote Debug Root Shell- HTTP (Request)
Official Rule 4169: Linksys Remote Debug Root Shell- HTTP (Request)

■侵入の痕跡(Indicators of Compromise 、IoCs)

侵入の痕跡(Indicators of Compromise、IoCs)はこちらを参照してください。

【更新情報】

2019/08/23 15:34 「ウイルスバスター™️ for Home Network」を使用して本記事で紹介したマルウェアの脅威を防ぐことが可能であることが判明したため、本文の一部を修正しました。※調査協力:Augusto Remillano II

参考記事:

翻訳: 下舘 紗耶加(Core Technology Marketing, Trend Micro™ Research)