マルウェア
新たに独自の通信プロトコルを持ったIoTマルウェア「Miori」、ソースコードも販売
トレンドマイクロでは常に日本国内へのサイバー攻撃の監視と対応を行っていますが、その対応の中で「モノのインターネット(Internet of Things、IoT)」を狙うマルウェア「Mirai」の新しい亜種の可能性があるマルウェア検体を入手、解析を行いました。
トレンドマイクロでは常に日本国内へのサイバー攻撃の監視と対応を行っていますが、その対応の中で「モノのインターネット(Internet of Things、IoT)」を狙うマルウェア「Mirai」の新しい亜種の可能性があるマルウェア検体を入手、解析を行いました。この新たなIoTマルウェア検体では、ファイル名や不正コード内の文字列に「Miori」の文字列の使用が見られました。同じ「Miori」を名乗る「Mirai」亜種のIoTマルウェアに関して、トレンドマイクロでは2019年1月のブログ記事でも報告しています。しかし今回確認された新しい亜種は、従来の「Mirai」亜種とは異なる方法で遠隔操作のためのサーバ(C&Cサーバ)と通信を行うことがわかりました。
■「Miori」の新たな通信プロトコル
従来の Mirai やその亜種では、バイナリベースのプロトコルを用いてC&Cサーバとの通信を行うこと、およびC&Cサーバの通信先ポートが攻撃者用の操作コンソールへのログインプロンプトを兼ねていることが特徴でした。このためマルウェアの接続先であるC&Cサーバにtelnet で接続しEnterを入力すると、操作用コンソールへの攻撃者からの接続とみなし、ユーザ名とパスワードの入力を求めます。
図1:従来のMiraiのC&Cサーバコンソールのログインプロンプトの表示例
しかし今回の検体のC&Cサーバに同様にtelnetで接続しEnterを入力したところ、リサーチャによる調査の接続と判断したか”F**k off researcher” と接続を拒否するメッセージが出力され、ユーザ名とパスワードを入力するプロンプトが出ることはありませんでした。
図2:今回の検体が接続するC&Cサーバにtelnet接続した際の表示例
そこで今回の検体の通信プロトコルの解析を行ったところ、従来のMiraiやその亜種で使用されているプロトコルとは異なり、最初に特定の文字列を送るプロトコルになっていることがわかりました。また、攻撃コマンドは暗号化した形で受信しますが、ここも従来のMiraiの用いるプロトコルとは異なっています。詳細の流れを以下に示します。
- C&Cサーバのポート10019に接続し、特定の文字列を送信する
- C&Cサーバは1.を受信後、攻撃を行う意図があるときに、攻撃コマンドを暗号化した文字列をクライアントへ送る
- 受信したコマンドを複号し、DDoS攻撃を実行する。もしくは脆弱なtelnetホストのスキャンを行い、発見したtelnet ホストのIPアドレスとアカウント情報をC&Cサーバのポート25346へ送信する
図3:C&Cサーバと通信を行うための不正コードの一部
攻撃コマンドの送信に用いる暗号化形式は、単純な換字暗号方式であり、検体内にハードコードされている文字の対応表を用いて復号を行うものでした。これに対し、設定データの一部、およびtelnet やssh のブルートフォースに用いるアカウント名/パスワードのリストは、従来の Mirai と同じくxorで暗号化されて格納されていました。ただし、設定情報は分割して格納されており、一部従来とはデコード方法が異なるものもありました。その一方でC&Cサーバの接続情報は検体中に直接ハードコードされていました。
図4:今回の検体の不正コード内に存在する換字暗号の対応表例
また設定情報には、従来のMirai亜種に存在する「<亜種名>: applet not found」という文字列が存在しませんでした。一部ではこれらの文字列などの設定情報を元に亜種を分類する試みもあるため、リサーチに対する妨害を意図した変更である可能性もあります。なお、従来のMirai亜種ではこの文字列を侵入成功の判定のために用いていましたが、今回の検体では別の設定情報により侵入成功を判断していました。
図5:今回の検体が侵入成功の判定に使用するechoコマンドとその出力結果
またさらに解析を進めた結果、暗号化された攻撃コマンドの確認にも成功しました。このような文字列を含む通信は、今回の検体のIoTマルウェアに対してC&Cサーバから送られた攻撃コマンドである可能性があります。
図6:解析により確認された攻撃コマンドの文字列
この上図例の攻撃コマンドは、IoTマルウェアにUDP Flood攻撃の実行を命ずるコマンドであるものと分かりました。コマンド内には、攻撃先IP、ポート、攻撃時間、攻撃パケットのサイズが指定可能であると考えられます。また、同様に「TCP Flood攻撃の実行」や「実行中の攻撃の終了」、「自身のプロセスの終了」などのコマンドも確認できました。
■新たな「Miori」の拡散スクリプト
今回の検体では上述の通り、telnetホストのスキャンを行い、発見した脆弱なtelnet ホストのIPアドレスとアカウント情報をC&Cサーバへ送信する機能があります。従来のMiraiでは、このように発見した脆弱なtelnetホストに対して不正スクリプトを送り込んで実行することにより、自身の感染を拡大する手法を取っており、今回の検体を使用した攻撃でも同様と考えられます。今回の検体に対する更なる調査の中で、この感染拡大に使用されると考えられる不正スクリプトも確認できました。この不正スクリプトでは、実行ホストのアーキテクチャにあったマルウェアをダウンロードし実行することがわかりました。また、実行時には引数も指定できるため、マルウェアの実行時に与える任意の引数によって攻撃キャンペーンを区別するなどの操作も可能と考えられます。
図7:脆弱なtelnet ホストにIoTマルウェアを感染させるためのスクリプトの一部
■「Miori」内部にソースコード販売サイト情報を発見
解析の過程で今回の検体中の文字列を検証したところ、ソースコードを販売するサイトのURLが記述されているメッセージがありました。当該サイトを確認したところ、ソースコードは$110で販売するとの記述がありました。
図8:検体中に埋め込まれていた「ソースコード販売サイト」へ誘導するメッセージ
図9:「ソースコード販売サイト」の表示例
この「販売サイト」は Selly という正規のEコマースサービスを利用して構築されているようでした。ただし、攻撃者による詐欺などの可能性もあり、実際にソースコードが入手できるかどうかは不明です。 IoTマルウェアの元祖とも言える「Mirai」はソースコードがインターネット上に出回っていることもあり、多くの攻撃者が多くの亜種を生み出し続ける状況となっています。今回の検体では、従来の Mirai 亜種と通信プロトコルや設定情報の格納方式にかなりの相違点があり、もしかするとMiraiと関連しているように見せかけている可能性もあるかもしれません。特に通信プロトコルの変化は、C&Cサーバにtelnet接続を試みた際の”F**k off researcher”のメッセージも含め、IoTマルウェアの活動発覚を妨げると共に解析を困難化させるための変化と言えます。いずれにせよ、脆弱なIoT機器に感染を広めてDDoS攻撃の踏み台とする活動は変わっておらず、今後もこのようなIoTマルウェアの変化を捉えて対策を行っていく必要があります。
■被害に遭わないためには
Miraiもしくはその亜種となるIoTマルウェアは、IoT機器の脆弱性、もしくは脆弱な認証情報を利用して感染を広めます。自身が管理するIoT機器については、必ず認証情報を初期設定から変更してください。パスワードにはなるべく推測され難い文字列を使用して辞書攻撃や総当たり攻撃による不正アクセスを防いでください。正規ベンダからの更新プログラムは必ず適用し、攻撃に利用可能な脆弱性が存在しないようにしてください。またインターネットに露出させる必要のない機器はルータ配下に設置するなどにより、そもそも外部からアクセスできない状態で運用することを推奨します。
■トレンドマイクロの対策
トレンドマイクロの「Trend Micro Smart Home Network™」を搭載したルータや、家庭用ルータを中心に構成されるホームネットワークを保護する「ウイルスバスター for Home Network」では、接続されている各デバイスへの脆弱性を悪用する攻撃をネットワークレイヤでブロックします。
■侵入の痕跡(Indicators of Compromise、IoCs)
侵入の痕跡はこちらを参照してください。 ※調査協力:嶋村 誠 (Trend Micro Research) ※本記事内の画像について、不正サイトのURLなど利用者がアクセスした場合に直接の危険に繋がりかねないと判断される部分には修正を施しています