マルウェア
Mac向けマルウェア「XCSSET」を追う:Telegramなど複数アプリからの情報窃取を解説
本部記事では、Mac利用者を狙うマルウェア「XCSSET」の攻撃キャンペーンの追跡調査から確認した攻撃手口を解説します。
トレンドマイクロではMac利用者を狙うマルウェア「XCSSET」の攻撃キャンペーンを追跡調査しています。前回2021年5月の記事では、最新のmacOS 11「Big Sur」を対象として追加された機能についての調査結果を報告しました。その後も同キャンペーンは攻撃ツールにさらなる機能を追加しつつ継続しています。トレンドマイクロは監視を継続する中で、XCSSETがさまざまなアプリから情報を窃取する手口を確認しました。情報窃取は弊社で最初にXCSSETを確認した時から存在している動作です。
図1:XCSSETが使用する不正スクリプト「telegram.applescript」の例
■マルウェア「XCSSET」が情報を窃取する手口
XCSSETは最初のバージョンから、さまざまなアプリから収集したデータをコマンド&コントロール(C&C)サーバに送信することが確認されていました。しかし、そのデータがどのように利用されるのかは分かっていませんでした。その後、データを窃取するメカニズムが判明し、窃取されるデータには多様な目的に利用できる貴重な機密情報が含まれていることが確認されました。
ここでは、XCSSETが使用する悪意のあるAppleScriptファイル「telegram.applescript」を例に解説します。名前が示す通り、これは「Telegram」を標的とする不正スクリプトです。主なロジックは、「~/Library/Group Containers/6N38VWS5BX.ru.keepcoder.Telegram」というフォルダをZIPファイルに圧縮し、そのファイルをC&Cサーバにアップロードするというものです。
このフォルダ上のファイルが窃取される目的を確認するために、2台のMacコンピュータを用いてテストを行いました。
- コンピュータAとコンピュータBの両方にTelegramをインストールする
- コンピュータAにて有効なTelegramアカウントでログインする。コンピュータBではTelegramを使用しない
- コンピュータAの「~/Library/Group Containers/6N38VWS5BX.ru.keepcoder.Telegram」フォルダをコンピュータBにコピーし既存のフォルダと入れ替える
- コンピュータBでTelegramを実行する。このとき、コンピュータAで使用したアカウントでログイン済みであることが確認される
つまり、該当のフォルダ上のファイルを入手できれば、異なるコンピュータ上でも感染コンピュータがログインしていたTelegramアカウントに不正アクセスすることができます。これが、攻撃者が当該フォルダ上のファイルを窃取する目的であると考えられます。
macOSでは、Application sandboxディレクトリの「~/Library/Containers/com.xxx.xxx」および「~/Library/Group Containers/com.xxx.xxx」は、一般ユーザでも読み取り・書き込み権限でアクセスすることが可能です。この点はiOSでの運用とは異なります。macOSでは、すべての実行ファイルがサンドボックス化されているわけではないため、簡単なスクリプトによってサンドボックスディレクトリに保存されているすべてのデータを窃取することが可能になります。アプリケーション開発者は、機密データ、特にログイン情報に関連するデータを、サンドボックスディレクトリに保存しないようにしてください。
■XCSSETが狙う機密データ
XCSSETは、攻撃対象アプリから重要な個人情報を大量に収集しており、そのほとんどがサンドボックスディレクトリに保存されていました。ここでは、それがChromeでどのように実行されるかを解説します。
Chrome では、収集されるデータにユーザが保存していたパスワードが含まれます。データをダンプするためにマルウェアは「security find- generic-password -wa 'Chrome'」というコマンドを使用して 「safe_storage_key」を取得する必要があります。しかし、このコマンドを利用するにはroot権限が必要です。マルウェアはこの条件をクリアするため、図2に示すようにroot権限を必要とするすべての操作を1つの関数にまとめています。
図2.:root権限(管理者権限)を必要とする操作
その後、偽のダイアログボックスが表示され、ユーザはこれらの権限を許可するよう促されます。マルウェアがChromeのsafe_storage_keyを取得すると、すべての機密データを復号してC&Cサーバにアップロードします。
図 3:Google Chromeから情報を窃取するコード
図 4:Google Chromeから情報を窃取するコード
また、同様のスクリプトで、以下のアプリケーションをターゲットにするものが確認されています。
- Contacts
- Evernote
- Notes
- Opera
- Skype
■新しいC&Cドメイン
2021年4月20日から22日にかけて、以下の新しいドメイン名が出現しましたが、それらはすべてXCSSETがそれ以前にも使用していたIPアドレス94.130.27.189に解決するものでした。
- atecasec.com
- linebrand.xyz
- mantrucks.xyz
- monotal.xyz
- nodeline.xyz
- sidelink.xyz
同様に、以下のドメイン名も正規のIPアドレスから上述の94.130.27.189に解決されるように変更されました。
- icloudserv.com
これらの新しいドメイン名にはすべて、2021年4月22日から7月21日まで有効な「Let's Encrypt」のHTTPS証明書がついています。
図 5:C&C サーバの HTTPS 証明書
2021年4月22日以降すべてのC&Cのドメイン名は、194.87.186.66に解決されるようになりました。5月1日、新しいドメイン名「irc-nbg.v001.com」が元のC&CのIPアドレス94.130.27.189に解決されました。この新しいドメイン名は、IRCサーバが同じIPアドレスに設置されていることを示唆していますが、今のところXCSSETとの関連は確認されていません。
2021年6月9日から10日にかけて、XCSSETのC&Cサーバに関連する既存のドメイン名はすべて削除され、代わりに以下の新しいドメイン名が追加されました。
- atecasec.info
- datasomatic.ru
- icloudserv.ru
- lucidapps.info
- relativedata.ru
- revokecert.ru
- safariperks.ru
しかし、6月24日、これらのサーバは攻撃者によって閉鎖されました。現在、XCSSETの新しいサーバは確認できていません。
■その他の動作の変更
- Bootstrap.applescript
bootstrap.applescriptの注目すべき変更点の一つ目は、最新のC&Cドメインが使用されていることです。
図6:bootstrap.applescript が使用するC&Cドメイン
利用可能なドメイン名のほかに、IPアドレスも含まれていることに注意してください。将来すべてのドメインが突然閉鎖されたとしても、IPアドレスでC&Cサーバに到達することができます。
図7:使用されているモジュール
また、Googleによる試験運用版ブラウザ「Chrome Canary」に対してクロスサイトスクリプティング(XSS)を実行するために、新しいモジュール「canary」が追加されていることがわかります。
図8:使用中のモジュール。削除されたモジュールがわかる
くわえて、前回のバージョンと比較すると"screen_sim "の呼び出しが削除されています。
- Replicator.applescript
ローカルのXcodeプロジェクトを感染させる最初の段階として、前回のバージョンから、注入されるビルドフレーズやビルドルールのIDがハードコードされたIDからランダムに生成されたIDに変更されました。ただし、IDの末尾6文字は「AAC43A」としてハードコードされたままです。最新バージョンでは、ハードコードされた末尾6文字が「6D902C」に変更されています。
図9:変更された末尾6文字
偽のビルドフェーズとビルドルールを注入する際のスクリプトのロジックについて、以前のバージョンでは感染したXcodeプロジェクト内の隠しフォルダにある不正なMach-Oファイルを呼び出していました。しかしながら、変更後のバージョンでは、curlコマンドを呼び出してC&Cサーバから「a」という名前のシェルスクリプトをダウンロードし、その内容を「sh」に渡して実行させます。この変化によって、最新バージョンに感染したXcodeプロジェクトには追加の不正ファイルが含まれません。
図10:シェルコードをダウンロードして実行するためのコード
以下は、C&Cサーバからダウンロードされたシェルスクリプトファイルの内容です。Mach-OコンポーネントPodをC&Cサーバからダウンロードし、/tmp/exec.$$として保存し、実行可能フラグを付加して実行しています。
図11:ダウンロードされたコード
以前のバージョンと同様に、SHCツールによって「Pods」というMach-Oファイルが生成されます。そこから抽出されたシェルスクリプトの主要なロジックは、以前使用されていたものと非常によく似ています。以下の図は注目すべき変更点のいくつかを示しています。
図12:作業フォルダが「GemeKit」から「GeoServices」に変更されている
図13: 偽アプリの名称がXcode.appからMail.appに変更されている
Figure 14:一時ファイルがデバッグ用に作成されている
■XCSSETによる被害に遭わないためには
確認されたXCSSETの変更点は、マルウェアの動作を根本的に変更するものではありませんが、戦術のいくつかが巧妙化していることが確認できます。今回確認された手口からは、XCSSETが多くのアプリをターゲットにして機密情報を積極的に窃取しようとする様子がうかがえます。
■トレンドマイクロの対策
XCSSETのようにMacを狙う脅威からシステムを保護するため、ユーザは、正規のマーケットからのみアプリをダウンロードしてください。
個人のお客様は、包括的なセキュリティを提供する「ウイルスバスター クラウド」を、またMacのみをご利用の場合は「ウイルスバスター for Mac」などのセキュリティソリューションをご利用ください。
法人のお客様は、XGenセキュリティを活用したUser Protectionソリューションが有効です。User Protectionソリューションは、ゲートウェイからエンドポイントに至るまで多層に渡る保護を提供し、ユーザへの影響を最小限に抑えます。
参考記事:
- 「Updated XCSSET Malware Targets Telegram, Other Apps」
by Mickey Jin, Steven Du
翻訳:室賀 美和(Core Technology Marketing, Trend Micro™ Research)