Linux / Remaitenの 3つのバージョン-2.0、2.1、2.2を確認しました。 コードで検出されたアーティファクトに基づいて、作成者自身がこのマルウェアを「KTN-Remastered」または「KTN-RM」と呼んでいることがわかりました。 この調査では、Remaiten分析データを公開するとともに、攻撃者が選択した独自の配布メカニズムについて説明します。 このメカニズムは、ボットのバージョンによって異なります。
Linux / Gafgytと呼ばれる他の悪意のあるプログラムのファミリの特徴は、ポート番号23(Telnet)への接続のためにさまざまなIPアドレスをスキャンすることです。 そのような被害者が検出されると、悪意のあるプログラムは、悪意のあるプログラムの本体に配線されたリストから資格情報を取得しようとします。 ログインに成功すると、ボットは被害者のコマンドを送信して、さまざまなマイクロプロセッサアーキテクチャ用の悪意のあるプログラムの実行可能ファイルをダウンロードします。
Linux / Remaitenマルウェアは、Gafgytが使用するアプローチを改善しました。 サポートされているすべてのアーキテクチャの実行可能ファイルをデバイスのメモリにロードする代わりに、特別なダウンローダーのみがロードされ、対応するアーキテクチャのコンポーネント(MIPSまたはARM)がプルアップされます。 ローダーは、リモートC&Cサーバーに接続して、対応するアーキテクチャのボットファイルをダウンロードし、その後実行します。
ブートローダーのテクニカル分析
Linux / Remaitenブートローダーは、ボット自体のファイルに埋め込まれた小さな実行可能なELFファイルです。 被害者のサーバーでファイルを実行する場合、ブートローダーとボットは同じC&Cサーバーに接続されますが、ポートは異なります。 この場合、次のコマンドのいずれかがそこに送信されます。
- 「ミップ」
- 「ミプセル」
- 「アルメアビ」
- 「アルメベアビ」
C&Cサーバーは、要求されたプラットフォームの実行可能なELFファイルでこれらのコマンドに応答します。
図 1.ブートローダーは、マイクロプロセッサアーキテクチャMIPSの制御C&CサーバーにELFファイルを要求します。
図 2. C&Cサーバーへのブートローダー接続コード。
ブートローダーは「 mips 」署名をC&Cサーバーに送信し、応答をstdoutストリームに送信します。
図 3.ブートローダーはC&Cサーバーにボットファイルを要求します。
ボット自体は、デフォルトでサービスまたはデーモンとしてシステムで実行されます。 「 -d 」スイッチを使用してボットを起動すると、通常のアプリケーション(フォアグラウンド)としてアクティブになるように指示されます。 このモードでの起動後、そのプロセスの名前は、「- bash 」や「 -sh 」などの標準的な正当なプロセスの名前に変更されます。 バージョン2.1では「 -bash 」、バージョン2.2では「 -sh 」という名前が使用されています。
図 4.ボットを開始するコード。
create_daemonという関数は、このデーモンの事前定義ディレクトリの1つに「 .kpid 」というファイル名を作成し、そこにそのプロセスの識別子(PID)を書き込みます。
図 5.ボットのファイルディレクトリ。
「 .kpid 」ファイルが存在する場合、マルウェアはそこからPIDを読み取り、このIDを持つプロセスが終了し、ファイルが削除されます。
図 6. PIDを使用してデーモンファイルを作成します。
C&Cサーバーとの相互作用
次に、ボットはIPアドレスの固定リストから制御C&Cサーバーのアドレスをランダムに選択し、特定のポートに接続します。
図 7.ボットをC&Cサーバーに接続するプロセス。
その後、ボットはIRCサーバーに登録し、追加の指示とともにウェルカムメッセージを受信します。 これらの命令はボットによって分析され、感染したデバイスで実行されます。
図 8. C&Cサーバーがボットに送信するウェルカムメッセージ。
チーム
ボットは、制御するC&CサーバーにさまざまなIRCコマンドで応答できます。 これらは、悪意のあるプログラムの本体の特別な配列に、ハンドラーとともに示されます。
図 9.ボットがサポートするIRCコマンド。
これらのチームの中で最も興味深いのは、 PRIVMSGチームです。 C&Cサーバーは、フラッディング、ファイルのダウンロード、IPアドレスのスキャン、telnetを介した接続など、さまざまな悪意のあるアクションを実行するようボットに指示するために使用します。PRIVMSGでサポートされるコマンドは、特別なマルウェアの本体の配列。
図 10.ボットがサポートする侵入者チーム。
ご覧のとおり、ボットの上記機能のほとんどは、 Linux / TsunamiマルウェアとLinux / Gafgytから借用されました。 以下のスクリーンショットは、悪意のある動作を示す悪意のあるプログラムファイル内の行の例を示しています。 行は、ボットが実行する機能を詳細に説明し、ボットの理解を容易にします。
図 11.洪水の可能性。
図 12.開いているtelnetポートをスキャンし、ファイルをダウンロードし、他のボットを殺す機能に関連する行。
ブートローダー
前述したように、Linux / Remaitenボットは独自の方法を使用して他のデバイスに感染します。 その実行可能ファイルには、異なるアーキテクチャ用の複数のコンパクトローダーが含まれており、それぞれが対応するアーキテクチャの犠牲者に感染するために使用されます。 デバイスでの起動後、ブートローダーはC&Cサーバーからボット実行可能ファイルをダウンロードしようとします。
図 13.組み込みデバイス用のさまざまなアーキテクチャのブートローダーへのポインター。
図 14.格納されたブートローダーのプロパティを記述するボットの本体の構造。
Telnetスキャナー
telnetスキャナーをアクティブにするために、サイバー犯罪者はQTELNETコマンドをボットに送信します。 スキャナーは、Gafgytマルウェアで使用されているのと同じコンポーネントの改良版です。 スキャンプロセスはいくつかの段階に分かれています。
- 最初の段階では、IPアドレスが任意に選択され、ボットはポート番号23に接続しようとします。
- 第二に、ボットは正しいユーザー名/パスワードのリンクを選択してサービスを正常に入力しようとします。
- 3番目に、被害者のデバイスのマイクロプロセッサアーキテクチャが決定されます。
図 15.ボットがtelnetアカウントを入力するためのログイン/パスワードペアを選択するプロセス。
最後の手順を実行するには、侵害されたデバイスで実行される「 cat $ SHELL 」コマンドを使用し、結果を分析します。 SHELL環境変数には、コマンドラインインタープリタープロセスを装った実行可能ELFファイルへのパスが含まれています。 ボットはELFファイルのヘッダーを分析して、そのアーキテクチャを決定します。
図 16. 8番目と9番目のケースは、被害者のプラットフォームを判別し、被害者のブートローダーの可用性を確認する責任があります。
図 17. ELFヘッダーの解析に特化した関数のコードの一部。
次に、ボットは被害者に適したペイロードを選択します。
図 18.適切なアーキテクチャのペイロードを選択することに特化したボット機能。