SophosLabs Uncut

BazarLoader ランサムウェアの新たな手法: Windows 10 アプリインストーラを悪用

Windows App Installer を起動してマルウェアを配信する新しい手法が確認されました。

** 本記事は、BazarLoader ‘call me back’ attack abuses Windows 10 Apps mechanism の翻訳です。最新の情報は英語記事をご覧ください。**

先日、Adam Williams という人物から送られた以下のようなメールが Sophos の社員のもとに相次いで届きました。Andrew Brandt さん、私は Sophos のオフィスに向かっています。なぜ顧客から PDF 形式で受け取った苦情について報告しなかったのですか?今すぐ電話をください。

後日、同僚の Chet 氏にも、Adam Williams という人物からメールが送られてきましたが、 ヘッダーの From には前回とは異なるメールアドレスが記載されていました。

また、送信者とされる「Sophos Main Manager Assistant」という役職はそもそも存在しません。攻撃者が作った架空の役職です。このペイロードは、BazarBackdoorBazarLoader などの名称で知られるマルウェアファミリーに属しているものですが、その配信手法は Windows 10 アプリのインストーラープロセスを悪用する斬新なものです。

このスパムは、世界中のユーザーを標的にしていました。悪意のあるスパムに騙されることなく、多くの顧客が Sophos に報告してくれました。攻撃の手順について調査するため、攻撃者の Web サイトがまだ稼働している間に (マイクロソフトは 11 月 4 日の夜に悪意のあるファイルをホストしているページを停止しました)、ファイルの検体をいくつかダウンロードし、同時にネットワークトラフィックの記録、マシンの動作データの収集、スクリーンショットの撮影を行いました。

その結果、以下のことがわかりました。

巧妙な手口

メッセージ自体はとても短いものでしたが、心理学に基づいた恐怖心をあおる文章が巧妙に書かれていました。また、件名と本文の両方には受信者の名前と標的となる組織の名前が記載されていました。その手口はこうです。まず受信者に向けた苦情がきていると語り、それを隠蔽しようとしていたのではないかと疑いをかけます。

メッセージは、受信者に、苦情が掲載されていると思われる Web サイトをクリックして確認するよう促します。

リンク先は ms-appinstaller のオブジェクト

しかし、このリンクには不自然な点があります。
https:// という一般的なプレフィックスではなく、 あまり一般的ではない ms-appinstaller: というプレフィックスでリンクが始まっているのです。実際に感染してみると、このような構造の URL は、ブラウザ (本記事では Windows 10のMicrosoft Edge ブラウザを使用) が AppInstaller.exe と呼ばれる Windows Store アプリケーションで使用されるツールを起動し、そのリンクの最後で指定されているファイルをダウンロードして実行することがわかりました。

興味深いのは、この攻撃には明らかに 2 つの段階があるということです。リンクは、 Adobe.appinstaller という 482 バイトのテキストファイルを示しています。このファイルの内容は、 xml 形式の単なるプレーンテキストで、マルウェアを含むより大きなファイル (Adobe_1.7.0.0_x64.appbundle) が置かれている URL を指しています。

攻撃者は、この偽の PDF ダウンロードページをホストするために、 常時 2 つの異なる Web アドレスを使用していました。どちらのページも Microsoft のクラウドストレージでホストされているために信頼してしまいそうになります。.appinstaller ファイルと .appbundle ファイルの両方が各 Web ページのストレージのルートにホストされていました。

また、ペイロードを構成するすべてのコンポーネントもこの Web サイトでホストされていた

攻撃の仕組みを調査するため、故意に「開く」をクリックしました。これは皆さんは、決して真似しないでください。

すると、 Edge から「このサイトは App Installer を開こうとしています」という警告が表示されました。このサイトのサブドメインは adobeview で、ルートドメインは windows.net だったので、 OS の難解な仕組みを知らないユーザーは、不用意にダイアログボックスの「開く」ボタンをクリックするだけでなく、「常に許可」チェックボックスにもチェックを入れてしまう可能性があります。

午前中いっぱいを使って、.appbundle ファイルを繰り返し直接取得し、いくつかの異なるバージョンを得ました。この攻撃の詳細を把握するためには実際に攻撃を受ける必要があると判断し、被害者が取るであろう手順を想定し、ページ内のリンクをクリックしました。

appinstaller の攻撃方法

Web ページで参照されていた最初のファイルは、この .appinstaller でした。このファイルには、実際のペイロードへのリンク ( 下部にある .appxbundleのURL ) だけでなく、発行者のデジタル署名に関する情報も含まれています。このケースでは、悪意のあるアプリインストーラは、.appxbundle が英国に拠点を置く Systems Accounting Limited と名乗る会社によってデジタル署名されていることを示しています。この証明書は、ほんの数ヶ月前に発行されたものです。Sophos は Sectigo 社に連絡を取り、同社が発行した証明書が悪用されていることを通報しました。

(好奇心から調べてみると、このファイルで参照されているデジタル証明書に記載されているのと同じ郡に、同じ名前で英国の Companies House に登録されている企業が実際に存在していました。しかし、この会社の登録住所は個人の住宅を指しており、同会社がこの攻撃に関係しているかどうかは疑問です。証明書に埋め込まれているドメイン systems-accounting.comは、ホストされている他のすべてのドメインの TLD が .ru である IP アドレスでホストされています)。

App Installer の警告ダイアログで「開く」をクリックすると、ブラウザから AppInstaller.exe が起動し、.appinstaller ファイルがダウンロードされ、さらにその中にリンクされている.appxbundle がダウンロードされます。

.appxbundle ファイルのダウンロードが完了すると、インストーラーはユーザーにインストールを開始するよう促します。このプロセスはわずか数秒で終了しました。

.appxbundle はいくつかのファイルが含まれる .zip アーカイブにすぎませんが、その中を詳しく見てみると、 AppsManifest.xml ファイルには、インストール画面に表示されているテキスト情報が含まれていることがわかります。また、 Systems Accounting Limited の証明書を明示的に参照していますが、フレームワークはこの画面でその証明書の情報を表示 ( または検証 ) していません。実際には、攻撃者は、プログラム名 (Adobe PDF Component)、発行者 (publisher)、およびサブフォルダに保存されている Adobe Acrobat のロゴグラフィックのための個別の表示プロパティを追加しているだけでした。

マニフェストファイルには、署名証明書の名前である Systems Accounting Limited と、発行者を Adobe と誤認させるプロパティ値が明示されている

.appxbundle ファイルには、その中に格納されている Adobe_1.7.0.0_x64.appx ファイルにネストされた悪意のある実行ファイルが含まれています。このファイルも .zip アーカイブで、同じ xml ファイルが多数含まれており、 同様に SecurityFix.exe というサブフォルダの中には悪意のあるペイロードである SecurityFix.exe が格納されています。

このファイルも .zip アーカイブで、同じ xml ファイルが多数含まれており、 同様に UpdateFix というサブフォルダの中には悪意のあるペイロードである SecurityFix.exe が格納されています。.appxbundle には Systems Accounting Limited に割り当てられた署名証明書が含まれていますが、 SecurityFix.exe のペイロードはそれ自体が署名されているわけではありません。

インジェクション攻撃

偽のインストーラーが実行された後、システムは SecurityFix の実行ファイルを実行しました。この実行ファイルは、 (.appxbundle ファイルをホストしているのと同じサーバーから) DLL を %temp% ディレクトリにダウンロードし、 regsvr32.exe を使って実行しました。数秒間実行された後、同様に実行される子プロセスを生成しましたが、コマンドの最後にランダムに見える関数呼び出しがありました。

SecurityFix.exe が悪意のある DLL の最初のインスタンスをプルダウンして実行する

Process Explorer などの別のタスクマネージャツールを使用していない限り、簡単にはわかりませんが、 DLL は数秒間実行された後、 Timeout.exe というプログラムを使用して、さらに別の子プロセスを生成しました。Timeout は、他のプログラムを開始する際の遅延時間を手動で設定するために使用される、正規の Windows コンソールアプリケーションです。今回のケースでは、 8 秒間待機した後、同じ regsvr32 コマンドを実行し、同じランダムな関数呼び出しを行い、コマンドの最後に 「“& exit”」を追加しました。そして、その実行によってさらに別の子プロセスが生成されますが、その子プロセスでは、攻撃者は異なるタイムアウト方法を使用して実行を遅らせています。choice.exe のコンソールコマンドでは、Timeout.exe と同様にタイムアウトを指定できます。7 秒間遅延して、すぐに連続して 5 回目の実行を行います。

この時までに、 DLL は終了し、 Edge ブラウザ (Chromium 版) のインスタンスが生成され、 msedge.exe のヘッドレスインスタンスにコードが注入されています。これでマルウェアは完全にインストールされ、コマンド&コントロールサーバーへのビーコンを開始しました。

クッキーを使った伝言ゲーム

最終的に BazarBackdoor がインストールされています。このように判断したのは、以下のような理由からです。このマルウェアによるコマンド&コントロールのトラフィックには明確なパターンがあり、ソフォスが開発したメモリ内の動作を読み取る検出機能によって、Mem/BazarLd-C というマルウェアが特定されています。

他の多くのマルウェアと同様に、 BazarBackdoor (および類似マルウェアの BazarLoader) は HTTPS を通じて通信していますが、命令を送受信する方法は独特です。BazarBackdoor は、無関係な Web サイト (下の画像の下部に表示されている Intel など) において、 存在しないページへのノイズのような不必要なトラフィックを大量に生成し、通常は末尾に 5 つか 6 つの数字を含むクエリ文字列を使用します。

簡単に説明すると、このマルウェアは、HTTPS の GET または POST ヘッダーに含まれるクッ キーを使用してサーバーに情報を送信し、C2 から 1 つ以上の Set-Cookie 応答ヘッダーの形でコマンドを受け取ります。

GET リクエストのヘッダーに送信されたクッキーデータにより、感染したデバイスから情報が流出する

この攻撃では、マルウェアは特定の URI パス (すべてのリクエストに同じもの) を使用しました。今回長期間に渡って調査した検体では /segment/billion が使用されていましたが、他の業界アナリストの調査では /recite/drink/mission/revolt/discreet/marble/note/actual といった URI パスも使用されることがわかっています。

C2 のチェックインからの応答ヘッダーの Set-Cookie 項目には、ボットへの指示が含まれる

今回の例では、 C2 は、感染したシステム上でさまざまなプロファイリング活動を行う一連のコマンドを連続して送信しました。ヘッドレスの Edge プロセスが PowerShell やその他のツールのインスタンスを生成し続けていたため、この現象を確認するのは非常に簡単でした。

Edge ブラウザに注入されたマルウェアが実行する一連の PowerShell コマンドは、感染したシステムのハードディスク、プロセッサ、マザーボード、 RAM をプロファイリングする

この 3 つのクエリは、システム上のハードディスク、プロセッサ情報、 RAM をプロファイリングしました。また、ヘッドレスの Edge プロセスのコンテキストで実行されたマルウェアは、net view /all などの他のコマンドを実行して、インストールされているネットワーク上のサーバーの詳細を確認しました。

PowerShell コマンドは、ランダムに 1 つまたは複数の Web サイトから、感染したコンピュータが実行されているネットワークの公開 IP アドレスを取得する

そして、この非常に長い PowerShell コマンドは、これらの URL のうち 1 つ以上をランダムに選択し、それを使ってシステムが設置されているネットワークの公開 IP アドレスを特定します。

公開 IP アドレスを特定するための PowerShell コマンド。このコマンドは長すぎたため上のプロセスエクスプローラーのスクリーンショットでは全体を表示できませんでした。

回避と検知

AppX パッケージを使ったマルウェアは新しいものですが、このプロセスが実証された今、今後定着する可能性は高いでしょう。これらのアプリは、証明書でデジタル署名されているはずですが、証明書に記載されている内容と、証明されるべきコードとの間で、健全性をチェックする仕組みはないようです。

Web ホストとマルウェアのペイロードの関係を示した図。データ元: VirusTotal

社内から発信されたと主張するランダムなアドレスからのメールを無視することである程度は攻撃を防ぐことができるかもしれませんが、攻撃者は From: アドレスを偽造することで防御をかいくぐってくるでしょう。送られてきたメールが怪しいと感じたら、人事部などの関連部署に確認するべきです。また、明らかな偽造の兆候がある場合は無視しましょう。

もちろん、マイクロソフト社は、コードに本物のデジタル証明書が含まれているかどうかだけでなく、その証明書とプログラムの背後にあるとされる組織との間に論理的なつながりがあるかどうかを検証するメカニズムを開発する必要があります。現状、この仕組みには何の保証もなく、むしろ攻撃者のなりすましを容易にしている恐れすらあります。

ソフォスのエンドポイント製品は、このマルウェアからプロセスのいくつもの段階でユーザーを保護します。SophosXL レピュテーションサービスは、ソースアドレスと C2 アドレスをブロックします。エンドポイントプロテクションは、Troj/Bazar-T、 Troj/Bazar-S、 Troj/DwnLd-TA、 Troj/DwnLd-TE、 Troj/MSIL-RYU、 Troj/MSIL-RYT、または Troj/MSIL-RXWなどのマルウェアのさまざまな要素を、ディスク上で発見された場合は実行前、静的検出を回避した場合は Mem/BazarLdr-C として、また、ブラウザプロセスのコンテキストで実行される予期せぬ PowerShell コマンドの行動検出を通じて、検出します。

SophosLabs は、 この攻撃に関連する IoC を Github ページで公開しています。この攻撃に迅速に対応した Microsoft と Sectigo に感謝申し上げます。

コメントを残す

Your email address will not be published.