Linuxで動作するルーターを感染させるマルウェア「ムース」が出現したのは2015年の春のことだった。そのときはSNSの「フォロー」や「いいね」を勝手に増やすことで利益を得ようとして仕組まれたが、今、新たなバージョンが活動し始め、より発見されにくいように改良された。
この記事は、ESETが運営するマルウェアやセキュリティに関する情報サイト「Welivesecurity」の記事を翻訳したものである。
はじめに――ムースとは何か
Linuxマルウェア「ムース」(Moose)(*)は、もともとLinuxベースの消費者向けルーターを標的とするマルウェア・ファミリーだが、ルーターの経路上にある別のLinuxベースの埋め込み型システムにも、感染することができる。感染されやすくなっている機器は、暗号化されていないネットワーク・トラフィックを盗み取ったり、ボットネットの操作者にプロキシ・サービスを提供するのに悪用される。そうした機能は、実際には、人気のあるソーシャルネットワーク・サイトでHTTPのクッキーを盗んで、不当な「フォロー」や「ビュー」、「いいね」を表示させる詐欺行為を行うのに使われる。
* 編集部注 「ムース」は英語で「ヘラジカ」を意味する。ヘラジカはシカ科の中でも大きく平たい角を持ち、北米やユーラシア大陸の北部に生息する。
2015年5月、ESETは「Linux/Moose」と名付けたマルウェア・ファミリーに関するホワイトペーパーを発表した。その後「Linux/Moose」のC&Cサーバーが停止し、追跡の可能性を失った。しかし、それからまた2、3カ月たった2015年9月には「Linux/Moose」の新しいサンプルが手に入った。予想通りそのサンプルには、以前のバージョンよりも幾つかの改良が加えられていた。
2015年、ESETと企業向けのセキュリティサービスを提供するゴーセキュア(GoSecure)社は、それぞれのスキルを持ち寄り、「Linux/Moose」 をさらに詳しく研究した。ゴーセキュア社は、ソーシャルメディア詐欺の側面を調査し、「エゴマーケット」(The Ego Market」と呼ばれる、ある未知のマーケットの存在を明らかにした。このマーケットについては、ゴーセキュア社が公開した新しいホワイトペーパーに詳しく書かれている。以下では、ESETのホワイトペーパーで記述された「Moose」の亜種と2015年9月に登場した新しい亜種との間に見られる技術的変更点に着目する。
茂みに身を潜め、C&Cのアドレスを隠す「Moose」(アメリカヘラジカ) この新しいサンプルが手に入ったとき、一番最初に目に付いたのは、C&CのIPアドレスがバイナリー内部からなくなっている、ということだった。オペレーターたちはきっと、ESETとゴーセキュア社のレポートを丹念に読み、物事をもう少し厄介にしてやろうと決めたのに違いない。この新バージョンのC&CのIPアドレスは、以下に示すように、暗号化されたコマンドライン引数という形をとっている。
この新たな特徴が意味するのは、もはや作成者以外にはこのサンプルを動作させられない、ということである。C&CのIPアドレスの暗号を解読するためには、脅威をまき散らす埋め込み型のデバイスによって、テストマシンを危険な状態にさらすほかないのだ。注意深い読者ならお気付きだろうが、上のIPアドレスは32ビットの整数型のフォーマットで記述されている。
ここでIPアドレスを暗号化しようとしても、値が引数になっていないと、バイナリーだけでは使いものにならない。また逆に、バイナリーが引数を解読するための正しい値を持っていないと、値だけでは意味がない。値は、以下のコードに示されているように、ある統計値を備えた「排他的論理和」である。
デコンパイラ・アウトプット
2016年秋、ESETで調べた限りでは、この値は同じままである。以下は、C&Cの32ビット整数値を解読するための、Pythonの「スニペット」(=よく用いられる短いコード)である。
C&CのIPアドレスの解読
ネットワーク通信における「ムース」の衣替え
ネットワーク・プロトコルは変更されたが、プロトコルのベースはそのままであり、それに新たなレイヤーが付加されている。下図は、新旧両サンプルの「パケット・キャプチャ」(=実際に流れているパケットデータを採集したもの)の比較である。2つを比べてみて、まず目に付くのは、バイナリ・プロトコルからASCIIプリンタブル・プロトコルへの変更だ。下図の左側が古いネットワーク・プロトコルで、右側が新しいものである。
ネットワーク・プロトコルの違い
古いサンプルの設定は、C&Cサーバーによってマルウェアに送信され、どの機能を「可」にするかを決定するさまざまなフィールド(ビットフィールド、IPアドレスフィールド、ホワイトリスト・リストフィールド、パスワード・リストフィールドなど)を含んでいる。これらのフィールドは依然として、新バージョンにも残っているが、「PHPSESSID」「LP」「WL」の3つのキーに分解されている(下表を参照)。攻撃者はこれらの設定フィールドを送信するために、「Cookie」「Set-Cookie」「HTTP」といったヘッダを用いている。この設定は、第1バージョンと同じく、単純な「排他的論理和のループ」で暗号化されているが、新たに、以下に示す機能を使ってHTTPヘッダにプリント可能になるよう、コード化されている。
デコンパイラ・アウトプット
表1「Moose v.2」主要設定のキーと値
キー | 値 |
---|---|
PHPSESSID | main config (local/external scan, sniffer, kill process) |
LP | password list |
WL | whitelist list |
表にある「PHPSESSID」キーは、「Moose」の諸機能(ローカル/エクスターナル・スキャン、スニッファー、キル・プロセス)の「可/不可」を切り替えるためのビットフィールドの暗号化された値を含む。「LP」キーは、パスワード・リストを含む。「Linux/Moose」は相変わらず、Telnetの認証情報を力づくで突破して拡散を試みる。このリストでは、以下のように、およそ300(2015年)から10(2016年)へと、ログインとパスワード数の大きな変化が認められる。
ムースの第2バージョンのログインとパスワード
「WL」キーは、ホワイトリストを含む。リストはここでもまた、50から10のIPアドレスに短縮されている。先行亜種は、「TCPポート10073」を聞いていたが、「Linux/Moose」は引き続き、「TCPポート20012 」を聞き取ることで、プロキシ・サービスを動作させることができる。このプロキシ機能により、ホワイトリストから取り出されたIPアドレスは、マルウェアと連携して動作できる。
結論
「Linux/Moose」の作成者が、セキュリティベンダーの追及から逃れて、数多くの改良を行ったのは明らかである。彼らはこうして、C&Cサーバーのロケーションをより効果的に隠し、ネットワーク・プロトコルを変更した新バージョンを、満を持して世に送り出した。「Moose」はそのおかげで、ESETの2015年のホワイトペーパーが公開した「危殆化指標」(IoC、安全性に不安がどのくらいあるのかに関する目安を示したもの)を回避できた。ホワイトリストとパスワード・リストの短縮は、「Moose」に対する、よりデリケートなアプローチを示している。ただし、まだ幾つかの紛らわしい痕跡が、バイナリー内部に残っている。例えば、ストリング・リストの平文内に、偽ドメイン「www.challpok.cn」が見つかったし、「BitCoinMiner」やDDoS攻撃を行うマルウェアに相当する可能性のあるファイル名さえ、見受けられた。いずれにせよ「Linux/Moose」は、特別に記憶に残る脅威と言えるだろう。なお、埋め込み型デバイスをリブートすれば、ムースの実行は食い止めることができる。
危殆化指標(IoC)
ハッシュ値
version 0x1F (31)
c6edfa2bf916d374e60f1b5444be6dbbee099692
c9ca4820bb7be18f36b7bad8e3044b2d768a5db8
5b444f1ac312b4c24b6bde304f00a5772a6a19a4
f7574b3eb708bd018932511a8a3600d26f5e3be9
version 0x20 (32)
34802456d10efdf211a7d486f7108319e052cd17
0685cb1d72107de63fa1da52930322df04a72dbc
2876cad26d6dabdc0a9679bb8575f88d40ebd960
f94b6cc5aea170cee55a238eaa9339279fba962f
274ef5884cb256fd4edd7000392b0e326ddd2398
c3f0044ffa9d0bc950e9fd0f442c955b71a706b6
f3daea1d06b1313ec061d93c9af12d0fe746839a
version 0x21 (33)
7767c8317fb0bbf91924bddffe6a5e45069b0182
1caac933ae6ca326372f7e5dd9fff82652e22e34
5dea6c0c4300e432896038661db2f046c523ce35
e8dc272954d5889044e92793f0f637fe4d53bb91
0843239b3d0f62ae6c5784ba4589ef85329350fa
1d1d46c312045e17f8f4386adc740c1e7423a24a
d8b45a1114c5e0dbfa13be176723b2288ab12907
version 0x22 (34)
c35d6812913ef31c20404d9bbe96db813a764886
IPアドレス
プライマリC&Cサーバー
192.3.8.218
192.3.8.219
ホワイトリスト
155.133.18.64
178.19.111.181
151.80.8.2
151.80.8.19
151.80.8.30
62.210.6.34
「Moose」の危殆化指標はまた、ESET「malware-ioc Github repository」で閲覧可能であり、常にアップデートされている。