APT&標的型攻撃
攻撃グループ「Iron Tiger」によるマルウェアファミリ「SysUpdate」が再浮上:Linuxを攻撃
攻撃グループIron Tigerによる標的型攻撃(APT)に関連して、カスタムマルウェアファミリ「SysUpdate」のアップデートの詳細が明らかにされました。このアップデートでは、Linuxシステムへの侵害を行うコンポーネントも確認されました。
「Iron Tiger」は、標的型攻撃(APT:Advanced Persistent Threat)を展開するグループとして知られ、サイバースパイを中心とする活動を10年以上に渡って続けてきました。2022年のトレンドマイクロによる調査では、Iron Tigerが独自に用いるマルウェアファミリ「SysUpdate」に新しい機能が追加された他、Linux系プラットフォームも攻撃できるようにアップデートされていたことが判明しました。
上記アップデート版に相当する検体の中で、最も古いものが見つかったのは、2022年7月のことです。この時点で、弊社はその検体をIron Tigerのものと判断しましたが、最終段階のペイロードについては未確認のままでした。Iron Tigerとの繋がりがより明確になったのは2022年の10月下旬のことです。当時、似たような挙動を示すペイロードが複数発見され、それを解析した結果、2021年に発見されたマルウェアファミリ「SysUpdate」との間に一定の類似性が見られました。2022年10月に発見された新バージョンは、2021年のバージョンと同様、セキュリティソリューションの回避策として、読み込み時のロジックを複雑化する細工が施されています。
両バージョンとも類似した機能を持ちますが、新バージョンでは、2021年のバージョンに見られたC++のRTTI(実行時型情報:Run-Time Type Information)クラスが削除され、さらに非同期処理ライブラリ(ASIO)を用いたコード構成に変更されています。いずれの修正も、検体の解析に要する時間を長期化させる効果があります。本攻撃キャンペーンの標的となった業界に属する企業や組織、個人ユーザの方は、システムやデータを保護するため、セキュリティ対策の強化やこの攻撃キャンペーンの情報収集について検討することを推奨します。
攻撃キャンペーンの進展に関するタイムライン
今回のIron Tigerによる攻撃キャンペーンを時系列的に理解する上では、下記事項が特に重要です。
- 2022年4月2日:Windows用SysUpdateについて、弊社で把握している最古の検体と紐づくドメイン名が、この日に登録されていた。
- 2022年5月11日:コマンドコントロール(C&C:Command and Control)のインフラが整備された。
- 2022年6月8日:Windows用SysUpdateについて、弊社で把握している最古の検体がこの日にコンパイルされていた。ただし、当該の日付は改ざんされている可能性もある。
- 2022年7月20日:最も古いWindows用の検体がマルウェア解析サイト「Virus Total」にアップロードされた。
- 2022年10月24日:最も古いLinux用の検体がVirus Totalにアップロードされた。
上記の通り、攻撃者は、最古のドメイン名を登録してから一ヶ月後にC&Cの設定作業を行い、さらに一ヶ月間空けた後、当該ドメイン名に紐づく不正な検体をコンパイルしました。2つの空白期間は、作戦の準備に充てがわれたと考えられます。
ロード時の処理
マルウェアをロードする際の処理として、下記のステップを踏むことが判明しました。
- 攻撃者はMicrosoft社の署名が付与された正規のリソースコンパイラ「rc.exe」を起動する。この際、本ファイルに潜む「DLLサイドローディング」の脆弱性を使用し、不正なファイル「rc.dll」をロードさせる。
- rc.dllは、ファイル「rc.bin」の内容をメモリ内にロードする。
- rc.binは、第一段階のコンポーネントをメモリ上で展開してロードするシェルコードであり、アルゴリズム「Shikata Ga Nai」の方式でエンコードされている。第一段階では、コマンドライン引数の個数に応じて、下記の通り異なった処理を行う。
- 引数なし、または2個の場合:マルウェアをシステム内に「インストール」する。この後、第一段階のコンポーネントを4つの引数付きで再度呼び出す。呼び出しに際しては「プロセスハロウイング」の手口が使用される。
- 引数が1個の場合:上と同じだが、「インストール」は行わない。
- 引数が4個の場合:DESのアルゴリズムで暗号化された「設定情報」、および「Shikata Ga Nai」でエンコードされた第二のシェルコードを、メモリ上に用意する。第二のシェルコードは、第二段階用コンポーネントを展開してロードし、さらにこれをプロセスハロウイングの手口で起動する。
上述した「インストール」の処理内容は単純であり、まず、マルウェアのファイルを、ハードコーディングされたディレクトリ側に移動します。次に、移動後の実行ファイル「rc.exe」が1個の引数付きで自動起動するように、プロセスの権限に応じてレジストリキーまたはサービスを作成します。これにより、端末が再起動された際にもマルウェアが自動起動し、「インストール」以外の処理が実行されるようになります。
上述したDLLサイドローディングを行う正規な実行ファイルや、サイドロードされるDLLファイル名、そのDLLに呼ばれるバイナリファイル名には、さまざまなバリエーションが見られました。具体例を下表に示します。
「Wazuh」の署名付き実行ファイルがサイドローディング攻撃に不正利用されたのは、弊社が把握している限り、今回が初めてのことです。Wazuhはフリーで提供されるオープンソースのセキュリティプラットフォームであり、今回被害に遭ったユーザの中には、その正規なプラットフォームを実際に使用していたケースも見られました。従って、Iron Tigerは、標的の環境内で正規なアプリケーションになりすますことを念頭に、当該プラットフォームの脆弱性を探っていた可能性が高いと考えられます。トレンドマイクロでは、本件について影響を受けた被害者に連絡しましたが、回答はありませんでした。
マルウェアの機能
SysUpdateの最新バージョンと以前のバージョンを比較したところ、下記の機能についてはほぼ同様であることが判明しました。
- サービスの管理(サービスの一覧取得、開始、停止、削除)
- スクリーンショットの取得
- プロセスの管理(プロセスの一覧取得、停止)
- ドライブ情報の取得
- ファイルの管理(ファイルの検索、削除、リネーム、アップロード、ダウンロード、およびディレクトリ内外の探索)
- コマンドの実行
一方、最新バージョンには、以前のバージョンにはなかった新規の機能も追加されていました。その1つが、「DNS TXTリクエストによるC&C通信」です。本来DNSは、任意のデータを送受信するプロトコルとして用いるものではありません。しかしIron Tigerは、それを逸脱する形でDNS TXTを不正使用する手段を講じました。
DNS TXTリクエストの送信に先立ち、本マルウェアは、まずAPI「GetNetworkParams」を呼び出し、リスト形式の「DnsServerList」を取得します。次いで、このリストを解析し、標的システム内に設定されたDNSサーバを特定します。処理に失敗した場合は、Googleが提供するDNSサーバ「8.8.8.8」を代替として使用します。
DNS TXTによる最初のリクエストとして、マルウェアは、ランダムな32ビットの数値を生成し、それに「0x2191」を付加します。この結果、データ長は6バイト(ランダムな数値:4バイト、付加した0x2191:2バイト)となります。次に、そのデータをBase32の方式で、英数字「abcdefghijklmnopqrstuvwxyz012345」の表記にエンコードします。図2に挙げた「TXT」以降のドメイン名を見ると、最初の4文字のみはレコード毎に異なりますが、それ以降は全て同じであることが分かります。これは、乱数値が毎回変化するのに対して、終端部の「0x2191」は変化しないためです。以上の結果、最初に送信するDNSリクエストの終端部は、必ず「reeaaaaaa.<C&Cのドメイン>」の形式で表記されます。マルウェアがC&Cサーバから期待される形式の応答を受け取ると、後続の処理用に複数のスレッドを作成し、追加のコマンドに応じた処理を行う他、感染端末からの情報窃取や送信を行います。
なお、DNSによってC&C通信を行うようなコードは、実際にその機能を用いる検体以外からは、一切発見されませんでした。このことは、マルウェアのビルドに際して、検体ごとに必要な機能を選定した構成が用いられていることを意味します。従って、まだ報告されていない機能を備えた検体が出回っている可能性も考えられます。トレンドマイクロでは、他のC&C通信プロトコルを用いた亜種が出現する可能性を踏まえ、Iron TigerやSysUpdateへの監視を継続的に進めていきます。
今回のマルウェアは、その全バージョンにおいて、感染端末から窃取した情報をDESアルゴリズムで暗号化してC&Cサーバに送信します。窃取対象の情報として、下記が挙げられます。
- ランダムに生成されたGUID(識別子)
- ホスト名
- ドメイン名
- ユーザ名
- ユーザの権限情報
- プロセッサの構成
- 現在のプロセスID
- オペレーティングシステムのバージョン情報
- 現在のファイルパス
- ネットワークへのパケット送信時に使用されるローカルIPアドレスとポート番号
本マルウェアは、DES鍵で暗号化された「設定情報」に基づいて各種処理を行います。DES鍵はハードコーディングで埋め込まれています。個々の設定情報は長くても数十バイト程度であり、その具体的な内容については、下表の通りです。
※GUIDはMicrosoft社のフォーマットに準拠
なお、この設定情報は、第二段階用のファイル中には含まれず、第一段階側からメモリー上でのコピーによって引き渡されます。例外的なケースとして、メモリ上で復号される段階が1つしか存在せず、設定情報がハードコーディングされているパターンも、1件のみながら確認されました。
特記事項として、以前のバージョンではC&Cのアドレスが「IPアドレス」で表記されていたのに対し、新しいバージョンでは、その全検体において、「ドメイン名」で表記されていました。C&Cアドレスの表記法が変わった理由として、新バージョンによるDNS TXTレコードを介した通信では、「ドメイン名」が必要になるためと考えられます。
Linuxを狙うSysUpdateの検体
トレンドマイクロでは、SysUpdateのインフラを調査していた際に、C&Cサーバと紐づくELF形式のファイルを発見しました。これらのファイルを解析した結果、Linuxのプラットフォームを狙うSysUpdateの亜種であると判断しました。このLinux版の検体を、先述したWindows版と比較すると、双方ともC++で開発され、ライブラリ「ASIO」を利用し、通信時の暗号鍵も同一であるなど、さまざまな共通点が見られました。機能面でも同様であり、例えばファイルを扱う関数についてはほとんど同一であることが確認されました。新バージョンでライブラリ「ASIO」が使用された理由は、その優れたプラットフォーム移植性にあったのではないかと考えられます。
下表の通り、ELFのバイナリはいくつかのパラメータを受け取ります(表中の「Boolean値」は、後述するC&Cサーバへの送信対象データに含まれる)。
永続化の手順として、まず、あるスクリプトファイルを、元と類似した名前で以下のディレクトリ配下にコピーします。
/usr/lib/systemd/system/
次に、作成したコピーへのシンボリックリンクを、以下のディレクトリ配下に作成します。
/etc/ystem/system/multi-user.target.wants/
この方式は、プロセスがルート権限で稼働している場合にのみ有効です。スクリプトの内容を下記に示します。
[Unit]
Description=xxx
[Service]
Type=forking
ExecStart=<現在のファイルへのパス> -x
ExecStop=/usr/bin/id
[Install]
WantedBy=multi-user.target
表3のパラメータ「-f」によるGUIDが未指定の状態でマルウェアが起動すると、ランダムなGUIDを生成します。次に、元のファイル名に「d」を付加した別のファイルに、その値を書き込みます。この後、侵害した端末から情報を窃取し、これをDES CBCのアルゴリズムによって暗号化した上で、C&Cサーバに送信します。なお、DESの暗号鍵はハードコーディングによって埋め込まれています。
C&Cサーバに送信する情報は下記の通りです。
- GUID
- ホスト名
- ユーザ名
- リクエストの送信に使用するローカルIPアドレスとポート番号
- 現在のPID(プロセスID)
- カーネルのバージョンおよび端末のアーキテクチャ情報
- 現在のファイルパス
- Boolean値(起動時のパラメータが1つの場合は「0」、それ以外の場合は「1」が設定される)
C&C通信にDNSを用いるバージョンでは、ファイル「/etc/resolv.conf」を参照して端末に設定されたDNSサーバを特定するか、または、Googleが提供するDNSサーバ「8.8.8.8」を使用します。
トレンドマイクロでは2022年の時点で、Iron TigerがLinuxやMac OSを標的とするマルウェアファミリ「rshell」を使用するなど、Windows以外のプラットフォームへの攻勢を強めている状況について報告してきました。そのため、将来的にはMac OSのプラットフォームを標的としたSysUpdateの検体が発見される可能性も、十分に考えられます。補足として、今回弊社が発見したLinux版の検体では、その殆ど全てにおいて、図2で挙げたDNSトンネリングの新技術が使用されていました。一方、Windows版で同技術を用いる検体は、1件のみしか確認されませんでした。
証明書の不正使用
本攻撃キャンペーンで注目すべきもう1つの特徴は、不正なファイルの一部に、「Permyakov Ivan Yurievich IP」という署名者の署名証明書が付与されていることです。当該の名前を検索エンジンで調べると、「VMProtect」の公式Webサイトが結果一覧に上がりました。さらに、不正なファイルからデジタル署名「authenticode」の証明書を抽出し、その内容を解析したところ、VMProtectのドメイン名に紐づくメールアドレスが発見されました。VMProtectは、標準と異なるアーキテクチャによる独自仕様の仮想マシンを構築することで、コードの解析を大幅に難化させる商用ソフトウェアです。本ソフトウェアはこれまでにも、複数のAPTグループやサイバー犯罪グループによって、マルウェアの難読化に使用されてきました(参考:1件目、2件目、3件目、4件目)。
上記と同一の証明書で署名されたファイルをマルウェアのリポジトリから検索したところ、「VMProtectDemo.exe」、「VMProtect.exe」、「VMProtect_Con.exe」などの名前を持つファイルが複数見つかりました。この点より、VMProtectの公式なデモ版にも、同じ証明書による署名が付与されていると考えられます。以上を踏まえると、今回の攻撃者は何らかの方法で署名用の秘密鍵を入手し、それを用いて不正なコードに署名を付与したと推測されます。なお、当該の証明書は、本稿執筆時点ですでに失効しています。
盗み出した証明書によって不正なコードを署名する手口は、Iron Tigerがよく用いる手段の1つです。実際に弊社では、この点について2015年および近年(参考:1件目、2件目)の報告で述べてきました。興味深いこととして、今回の攻撃者は、不正な実行ファイルの署名にVMProtectの証明書を盗用しただけでなく、これら実行ファイルを難読化させるためにも、VMProtect自体の機能を利用しました。
2023年1月、同じ証明書で署名された情報窃取ツール「Redline Stealer」で以下のハッシュ値の検体がアップロードされました。
トレンドマイクロでは「TrojanSpy.Win32.REDLINE.YXDA1Z」として検知、SHA256:e24b29a1df287fe947018c33590a0b443d6967944b281b70fba7ea6556d00109
同じ証明書が使用されましたが、弊社では、Redline StealerとIron Tigerの間に関連はないと考えています。理由として、まず、両者では使用しているネットワークインフラが異なります。さらに、Redline Stealerの目的は、データの盗用というよりもサイバー犯罪の実行自体にあることが、過去の報告から示されています。以上を踏まえると、別のユーザが何らかの手で同じ秘密鍵をVMProtectのデモ版から盗み出したか、または、秘密鍵がIron Tigerなどアンダーグラウンドの別組織に売り払われた可能性が考えられます。
感染経路
今回、感染経路を特定するには至りませんでした。しかし、VMProtectで圧縮され、盗まれた証明書で署名された実行ファイルの1つが、「youdu_client_211.9.194.exe」という名前を持つことが判明しました。「Youdu」は、企業顧客向けに提供される中国系インスタントメッセージアプリの1つです。このアプリのWebサイトには、さまざまな業界に属する数多くの顧客が紹介されています。当該の業界として、行政、エネルギー、ヘルスケア、金融といった基幹産業の他、ゲーム、IT、メディア、建設、小売販売なども含まれます。さらに、全ての顧客は中国国内に存在すると考えられます。
上述したyoudu_client_211.9.194.exeのプロパティ情報を確認したところ、特に数値の形式が、正規なYouduのファイルに合致することが判明しました。しかし、正規なファイルは、「VMProtect」ではなく「Xinda.im」の証明書で署名されていました。
不正なファイルのプロパティ内に記載された製品名「i Talk」について、該当しそうな製品を検索しましたが、関連するものは見つかりませんでした。しかし、被害に遭った端末の情報を解析した際、「Xinda.im」の署名が付与された正規なYouduのファイルが、「i Talk」という名前のディレクトリに移動された形跡が見つかりました。この点より、「i Talk」という名前のチャットアプリが、Youduの公式なクライアントに含まれるコンポーネントを再構成して利用し、その際に不正な実行ファイルも紛れ込ませている可能性が考えられます。総じてチャットアプリは、標的のユーザに不正なファイルを開かせるための餌として用いられているようです。Iron Tigerは過去の攻撃キャンペーンでも、こうした手口に相当するTTPs(Techniques:テクニック、Tactics:戦略、Procedures:プロシージャ)を用いてきました。当該の過去事例として、モンゴル政府によって広く使用されるチャットアプリを狙った攻撃(2020年)や、東南アジアで使用されるチャットアプリ「Mimi」を狙ったサプライチェーン型攻撃(2021年)が挙げられます。
侵入後に使用された攻撃ツール
調査時、Chromeのパスワードやクッキー情報を窃取する不審なマルウェアが発見されました。本マルウェアがコンパイル、アップロードされたのは2022年9月のことです。先述したVMProtectの証明書によって署名されているものの、難読化はされていませんでした。その機能自体は簡潔であり、保存されたパスワードを復号して「password.txt」に、クッキー情報を「cookies.txt」に書き出します。
具体的な動作として、本マルウェアは、まずファイル「Local State」からクッキー情報やパスワードの暗号化に使用されるAES鍵を抽出します。次に、ファイル「Local Data」を一時ファイル「chromedb_tmp」にコピーします。次いで、SQLクエリを発行して、当該コピーファイル中のURLやログインID、パスワードに相当するデータを抽出します。さらに、抽出したデータを先のAES鍵で復号し、その結果をファイル「password.txt」に書き出します。
次に本マルウェアは、ファイル「Cookies」を一時ファイル「chromedb_tmp」にコピーします。続いて、SQLクエリを使用してコピーファイルからさまざまなデータを抽出し、AES鍵で復号した上で、結果をファイル「cookies.txt」に書き出します。この際、一部のGoogleドメイン名に紐づくクッキー情報は処理の対象外とされます。当該のクッキー情報はGoogle固有の機能またはトラッキングに用いるものであり、攻撃者からは不要なものと認識されている可能性があります。
本情報窃取ツールに属する検体として、上記以外にも2つの亜種が発見されました。コンパイル情報に基づくと、1つ目のビルド日は2020年11月、2つ目のビルド日は2021年12月となりますが、その日付自体が改ざんされている可能性もあります。2つの検体がアップロードされた日付はそれぞれ2021年11月、2022年8月のことです。従って、遅くとも2021年後半から本情報窃取ツールが存在していたと考えられます。
標的
今回の攻撃キャンペーンによる被害者として、フィリピンにあるギャンプル関連会社が特定されました。また、この社名に類似するドメイン名が攻撃者によって登録され、C&Cに利用されたことも判明しました。しかし、これ自体は驚くべきことではありません。Iron Tigerがギャンブル関連業界を狙っていたことは、トレンドマイクロによる過去の調査からも示されていためです。具体例として、2019年に実施した「DRBControl」の調査や、2021年のSysUpdateに関する報告が挙げられます。弊社では今回の攻撃について、当該のギャンブル関連会社が公示する全チャネル宛てに連絡しましたが、回答は得られていません。
「感染経路」の章で述べたように、被害者を誘導する手段としてチャットアプリ「Youdu」が使用されたと考えられます。ここで注目すべき点は、そのYouduの公式Webサイトに記載されている顧客の全てが中国国内に存在することであり、攻撃者が中国関連の標的に強い関心を持っていることが示唆されます。
結論
今回の調査により、Iron Tigerは、ツール類を定期的にアップデートすることで新しい機能を追加し、恐らくはプラットフォームの移植性も高めようとしていることが判明しました。こうした動きは、当該グループがLinuxやMac OSに寄せる関心の強さを裏付けるものです。また、2020年および2021年の事例と同様、同グループが東南アジアのギャンブル業界を狙っていることが改めて確認されました。
本攻撃キャンペーンは、チャットアプリを感染経路として用いるIron Tigerの手口を示す一例と言えるでしょう。将来的には、他のプラットフォームやアプリケーションに適用したバージョンも出現すると推測されます。
注意すべきこととして、Iron Tigerの攻撃対象は、これまでの調査によって確認されているものより、さらに広範に及ぶ可能性があります。2022年にトレンドマイクロは、台湾とフィリピンを標的とする攻撃キャンペーンについて解説しました。この攻撃では、「HyperBro」と呼ばれるマルウェア(トレンドマイクロでは「Backdoor.Win32.HYPERBRO.ENC」として検知)が使用され、当該ファイルを署名するために、Cheetahの証明書が盗用されました。また、ドイツの行政機関「BfV」は2022年1月、先と同じ証明書で署名されたHyperBroによってドイツの会社が攻撃された事例を報告しました。さらに2022年10月にはIntrinsecが、フランスの会社への攻撃にHyperBroが使用された事例を報告しました。ここで用いられた検体は、弊社が2021年に調査したものと同じ構造を有していることが分かりました。こうした傾向より、Iron Tigerは今後、上述のツールを再利用しながらも、これまでとは異なる地域や業界を狙った攻撃キャンペーンを、長期的または短期的に展開していくと推測されます。本マルウェアの攻勢が強まっていることや定期的に機能強化が行われている実態を踏まえ、企業や組織では、現在利用中のセキュリティ対策を強化し、Iron Tigerが使用する感染経路への警戒を強めることを推奨します。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)はこちらで確認してください。
参考記事:
Iron Tiger’s SysUpdate Reappears, Adds Linux Targeting」
By: Daniel Lunghi
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)