Mispadu (Ursa) C2Cの舞台裏のコミュニケーション

銀行の建物の外観のクローズアップ

Ursaとしても知られるMispaduは、メキシコ、コロンビア、アルゼンチン、チリ、ポルトガル、スペインなど、スペイン語およびポルトガル語圏の銀行をターゲットにしたリモート・オーバーレイ金融マルウェアです。簡単に言うと、リモート・オーバーレイ・マルウェアとは、詐欺師が被害者のライブ画面を見ている間に、マウスやキーボード・デバイスを操作して被害者のシステムを制御するように設計された悪意のあるプログラムです。

Mispaduは2019年に初めて登場し、2022年に再登場しました。一方、同種のMekotioや Grandoreiro と同様に、MispaduはDelphiプログラミング言語で書かれています。それとは異なり、中米、ラテンアメリカ、ヨーロッパのいくつかの国または地域で新しいキャンペーンが見られるようなった最近まで、現場ではあまり一般的ではありませんでした。Mekotioの詳細については、前回のブログ記事「 Mekotio Banking Trojan Targeting Latin America」をご覧ください。

Mispaduが再開した際には、コマンド・アンド・コントロール(C2C)通信エンコーディングなど、オペレーションにいくつかの変更が加えられました。これについては、こちらの記事で説明します。

C2C通信の事前初期化

C2C通信の目的

リモート・オーバーレイとして、マルウェアのオペレーターとの通信は攻撃を成功させるために極めて重要です。この通信は通常、詐欺師から被害者のシステム上で実行されている悪意のあるプログラムに送信される一連の運用コマンドです。

銀行口座を介して被害者のお金を盗むなど、多くのオーバーレイ攻撃は、詐欺師が被害者のライブセッションを観察、制御している間に実行されます。

被害者の画面をコントロールする詐欺師の画面の例
図1 - 被害者の画面をコントロールする詐欺師の画面
ニュースレターを表示しているスマホの画面

The DX Leaders

「The DX Leaders」は日本語でお届けするニュースレターです。AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。

C2C通信のタイミング

ユーザーが悪意のあるプログラムを実行するとすぐに詐欺師との通信が行われると直感的に思えるかもしれませんが、実際はそうでありません。このような通信は、ウイルス対策プログラムからのアラートをトリガーする可能性があるため、詐欺師にとって重大なリスクをもたらします。

他のリモート・オーバーレイを伴うシナリオやほとんどのケースでは、ユーザーがマルウェアのターゲットの1つ、特にスペイン語またはポルトガル語圏の国の銀行インターネット・サイトにアクセスした後にのみ通信が開始されます。

ターゲット・リストに対する反復
図2 - ターゲット・リストに対する反復

C2C通信の初期化

ユーザーがマルウェアのターゲット・リストの1つにアクセスすると、C2Cサーバーとの通信が確立されます。これは、このような通信に最も便利な方法を提供するWIN32ソケットAPIを使用して実現されます。

ソケットを設定する前に、マルウェアは宛先ポートやアドレスなどのソケットの情報を入力します。

アドレスとポートを使用してソケットを設定するコード
図3 – アドレスとポートを使用したソケットのセットアップ

ソケットが接続されると、「GFHHVG..」というメッセージがC2Cサーバーに送信されます。

接続とメッセージの送信を待っているログ
図4 - ソケットが接続されると、マルウェアはC2Cサーバーにメッセージを送信する

C2C通信の受信

ソケットが接続され、ビーコンがC2Cサーバーに送信された後、マルウェアはC2Cサーバーからの入力を待ちます。受信したメッセージは、受信したメッセージの順序に応じて、次の「読み取り」関数のいずれかによって処理されます。

読み取り関数のスクリーンショット(ライトピンク)
図5 - 読み取り関数(ライトピンク)

これらの関数は互いに類似しており、その目的はC2Cから受信したメッセージを解析することです。

最初の関数「TwYHJk1_wC51Read」を見てみましょう。

メッセージをデコードして文字列、<|SocketMain|>と比較するコードの製品の画面
図6 - メッセージを解読し、文字列<|SocketMain|>と比較する

マルウェアはC2Cからメッセージを受信すると、メッセージをデコードしてコマンドを表す文字列と比較することでメッセージを解析します。スニペットに見られる最初の「read」関数では、比較する最初のコマンドは「<|Socket Main|>」です。他の「読み取り」関数では、比較されるコマンドが異なります。

アドレス0x7364A8の関数に注意してください。

この関数は、メッセージ全体をデコードする役割を担っています。文字列を受信し、いくつかの数学的操作を行った後、デコードされた文字列を返します。

その関数の内部を見てそのアルゴリズムを発見してみましょう

C2C通信エンコーディング

目的

通信のエンコードは、詐欺師の意図と運用方法を隠蔽するのに役立ちます。これは、既存の通信アルゴリズムまたはカスタムの通信アルゴリズムを使用して実現できます。前述したように、「GFHHV..」というメッセージは暗号化されたメッセージであるように見受けられます。その一見ランダムで意味をなさない性質から、暗号化が施されている可能性が疑われます。

導入

C2C通信デコード関数を調べると、デコード・メカニズムの実装は簡単で、C2Cサーバーから受信したメッセージをデコードするという目的を果たすことがわかります。この同じメカニズムは、C2Cサーバーに送信されるメッセージをエンコードするためにも使用されます。

デコード関数の内部
図7-デコード関数の内部

上記の例を解読してみましょう「GFHHVGCGEFUGAFOFUGCFMHVJ@」

デコード・プロセスを次のステップに分けてみましょう。

ステップ1:最初の文字を取る(「Ggfhhvgcgefugafugcfmfxhvfj@)を取り出し、ASCIIに変換すします。値は71です。この値から65(「A」のASCII値)を差し引きます。
成果は6です。6は、デコード・プロセス中の繰り返し値であり、後で戻ることができます。

エンコードされた文字列の1文字目の抽出
図8 - エンコードされた文字列の最初の文字の抽出

ステップ2:次の文字(「FGFHHVGCGEFUGAFOFUGCFMFXHVFJ@)を取得し、ASCIIに変換してください。値は70です。引き数65(「A」のASCII値)。

成果は5で、これを変数Xと仮定します。

アセンブリー・コードの2行は、次の方程式で表すことができます。(X + 4X)+(X + 4X)*4 => 25X = 25*5 = 125

エンコードされた文字列の2文字目の抽出
図9 - ステップ2

ステップ3:次の文字(「H」)を選択します(「H」GFHHVGCGEFUGAFOGCFMHVFJ)、ASCII値:72。
「A」ASCII値:成果7を抽出します。その値に前のステップの成果を追加します。125 + 7 = 132。
その値から、2つの値(定数66(「B」)とステップ1の値(132 – 66 – 6 = 60)を差し引きます。ASCIIでは「<」。これはデコードされた文字列の最初の文字です。

エンコードされた文字列の3番目の文字の抽出
図10 - ステップ3

ステップ4:次の文字のペア(「H」と「V」GFHHVG..)でステップ2 + ステップ3を繰り返し、毎回次のデコード文字を追加することでデコードされた文字列を構築します。

ステップ5: @は文字列、GFHHVGCGEFUGAFOFUGCFMFXHVFJ@の末尾を表します
これで、エンコードされたテキストをデコードした結果を出力できます。<|PRINCIPAL|>
これは、マルウェアからC2Cサーバーに送信された初期の通信ビーコンを表します。

一つ注目すべき点...

このエンコードとデコードの方法論の結果の1つは、異なるエンコードされた文字が同じデコードされた文字を生成できることです。

たとえば、文字「GGC」「AFV」はどちらも同じ文字Pにマッピングされます。

もう1つの例として、より複雑なシナリオをご紹介します。文字列について話すと、「GFHHVGCGEFUGAFOFUGCFMHVFJ」と「AFBHPFVFOFTFIFOFVFGFRHPFD」の両方が同じ平文にデコードされます。

同じ平文にデコードされる2つの異なる暗号文を示す画像
図11 - 異なる暗号文、同じ平文

このようなエンコードおよびデコード・アルゴリズムのメリットの1つは、ネットワークが監視されている場合、デコード・アルゴリズムを取得せずにマルウェアのオペレーションを理解することがほぼ不可能であることです。これは、各コマンドで利用できる多種多様なエンコード・オプションにより、マルウェアによって実行される同じオペレーションがネットワーク・モニターには毎回異なって表示されるためです。

C2Cコマンド

導入

コマンドがデコードされると、サンプルの進むべき道は非常に簡単です。各コマンドには独自の操作機能があり、詐欺師は被害者のシステム上で画面の監視、マウスやキーボードの制御などを含むさまざまなタスクを実行できます。

コマンドが被害者のマウスの移動を担当するMousePosであるかどうかを確認します
図12 - コマンドが被害者のマウスの移動を担当するMousePosであるかどうかを確認する

メイン・コマンド

ここでは、詐欺師が被害者のシステム上でさまざまなタスクを実行できるようにする、マルウェアに実装されているコマンドについて詳しく説明します。

通信を確立すると、マルウェアは「<|PRINCIPAL|>」で示されるビーコンをC2Cサーバーに送信し、ネットワークの確立をシグナルします。

この最初のステップが完了すると、詐欺師は被害者のシステムを広範囲に制御できるようになり、さまざまなタスクを実行できるようになります。重要なコマンドの1つは、貴重なシステム情報の抽出です。これは、被害者のシステムに関する基本的な詳細をエクスポートするために使用される「<|Info|>」コマンドによって容易に実行されます。これらの詳細には、Windowsのバージョン、地理的な位置、現在アクティブなブラウザー、および現在表示されているwebページが含まれます。以下は、マルウェアからこのコマンドに対する応答例であり、C2Cサーバーに送り返されています。

"<|Info|>Win 10<|>Bank x<|>Chrome<|>4:04:12 PM<<"

  • このブログに実際の銀行の名前を記載することはできません

この応答は、被害者のシステムがWindows 10を実行し、Chromeを使用し、現在、午後4時04分12秒にBank xのwebページを表示していることを示しています。

この情報が盗まれる理由はいくつかあります。被害者のデバイスのオペレーティング・システムを知ることで、追加の悪意のあるツールを使用してシステムを侵害するプロセスが容易になります。各ツールは異なるシステム・バージョンをサポートしている可能性があるため、被害者のターゲットとなる銀行サイトがわかると、詐欺師は攻撃を成功させることができます。

まとめ

リモート・オーバーレイ攻撃は、現在、ユーザーの銀行口座に対する最も一般的な脅威の1つであり、銀行とその顧客の両方に重大なリスクをもたらしています。これらの攻撃のクリティカルな側面には、マルウェアとオペレーターとのコミュニケーションが含まれており、これは運用手法に不可欠です。このような攻撃を実行するには、直接的かつライブなコミュニケーションを確立することが不可欠です。このような通信をエンコードすることで、マルウェアは、プロセスを逆転させ、別の防御用レンガを使用することを困難にすることを目的としています。サイバーセキュリティーの専門家であるIBMの主な目的は、不正行為が成功しないように、これらの通信を監視、分析、ブロックすることです。

安全を保つために

身を守るために、ユーザーはインストールされているアプリケーションを定期的にレビューし、よく理解していないアプリケーションや疑わしいアプリケーションを迅速に削除する必要があります。

さらに、予期せぬログインの試みなどの異常なアクティビティーがないかEメール・アカウントを監視し、不正な取引や未知のアクションがないか、暗号通貨ウォレットを注意深く監視することが不可欠です。積極的かつ慎重にあることは、この進化する攻撃パラダイムによってもたらされるリスクを軽減するのに役立ちます。

IBM® Trusteerは、不正行為とマルウェアの検知、ユーザーの認証、オムニチャネルのカスタマー・ジャーニー全体でのIDの信頼の確立に役立ちます。500を超える大手企業が、お客様のデジタル・ジャーニーを保護し、ビジネスの成長をサポートするためにIBM® Trusteerを活用しています。

オフィスでミーティングをするビジネスチーム

IBMお客様事例

お客様のビジネス課題(顧客満足度の向上、営業力強化、コスト削減、業務改善、セキュリティー強化、システム運用管理の改善、グローバル展開、社会貢献など)を解決した多岐にわたる事例のご紹介です。

関連ソリューション
IBM Guardium

最もクリティカルなデータを保護—複数の環境にまたがる機密情報を検出、監視、保護しながら、コンプライアンスを自動化し、リスクを軽減します。

    IBM Guardiumの詳細はこちら
    データ・セキュリティー・ソリューション

    あらゆる場所のデータを保護 — 環境全体にわたって機密情報を検出、分類、監視し、セキュリティーを確保します。

      データ・セキュリティーソリューションの詳細はこちら
      データ・セキュリティー・サービス

      IBMは、エンタープライズ・データ、アプリケーション、AIを保護するための包括的なデータ・セキュリティー・サービスを提供します。

      データ・セキュリティー・サービスの詳細はこちら
      次のステップ

      監視の一元化とリスク低減の自動化により、ハイブリッド環境全体で、機密データのセキュリティーを確保し、プライバシー・コントロールを強化します。

      1. IBM Guardiumの詳細はこちら
      2. データ・セキュリティーソリューションの詳細はこちら