Ploutus ATM マルウェアの新しい亜種がラテンアメリカの野生で観察されました

Code protected by Reactor news

序章

Ploutus は、ここ数年で確認された中で最も高度な ATM マルウェア ファミリの 1 つです。 2013 年にメキシコで初めて発見された Ploutus は、犯罪者がマシンに接続された外部キーボードまたはSMS メッセージを使用して ATM を空にすることを可能にしました。

FireEye Labs は最近、KAL の Kalignite マルチベンダー ATM プラットフォームと相互作用する Ploutus-D と呼ばれる、これまで観測されていなかったバージョンの Ploutus を特定しました。私たちが特定したサンプルは、ATM ベンダーの Diebold を標的にしています。ただし、Kalignite プラットフォームは 80 か国の 40 の異なる ATM ベンダーで実行されるため、Ploutus-D への最小限のコード変更により、ATM ベンダーのターゲットが大幅に拡大されます。

Ploutus-D を ATM に導入すると、マネー ミュールは数分で数千ドルを手に入れることができます。マネー ミュールには、ATM の上部を開く (または選択できる) ためのマスター キー、機械に接続するための物理的なキーボード、および (操作を担当するボスによって提供される) アクティベーション コードが必要です。 ATMからお金を引き出す命令。マネーミュールがカメラに捕まるリスクはいくらかありますが、操作が迅速に実行されるため、ミュールのリスクは最小限に抑えられます。

このブログでは、金融機関がこの脅威を特定して防御するのに役立つように、Ploutus-D の変更、改善、侵害の兆候 (IOC) について説明します。

Ploutus-D のこれまで観測されていなかった特徴

  • これは、Kalignite マルチベンダー ATM プラットフォームを使用しています。
  • Windows 10、Windows 8、Windows 7、および XP オペレーティング システムを実行している ATM で実行できます。
  • Diebold ATM を制御するように構成されています。
  • 異なる GUI インターフェイスを備えています。
  • 検出を回避するために、セキュリティ監視プロセスを特定して強制終了しようとするランチャーが付属しています。
  • Reactor と呼ばれるより強力な .NET 難読化ツールを使用します。

Ploutus と Ploutus-D の共通点

  • 主な目的は、ATM カードを必要とせずに ATM を空にすることです。
  • 攻撃者は、ATM に接続された外部キーボードを使用してマルウェアとやり取りする必要があります。
  • アクティベーション コードは攻撃者によって生成され、24 時間後に有効期限が切れます。
  • どちらも .NET で作成されました。
  • Windows サービスまたはスタンドアロン アプリケーションとして実行できます。

Ploutus-D の解剖

Ploutus-D (実際には「AgilisConfigurationUtility.exe」というファイル名で観察されます) は、スタンドアロン アプリケーションとして、またはランチャーによって開始された Windows サービスとして実行できます (実際には「Diebold.exe」として観察されます)。複数の機能が 2 つのコンポーネント間で共有されますが、主な違いは Ploutus-D がお金を分配する機能を持つコンポーネントであることです。

ランチャー – Diebold.exe (.NET)

MD5

C04A7CB926CCBF829D0A36A91EBF91BD

.NET難読化ツール

原子炉

ファイルサイズ

198キロバイト

ファイルの種類

Win32 EXE

タイムスタンプ

2016:11:16 04:55:56-08:00

コードサイズ

199168

ファイルのバージョン

0.0.0.1

内部名

Diebold.exe

法的著作権

著作権 © 2015

元のファイル名

Diebold.exe

商品名

ダイボールド

製品バージョン

0.0.0.1

表 1: ランチャーのプロパティ

今回、攻撃者は、.NET Confuser から Reactor に切り替えることで、コードを難読化し、リバース エンジニアリングから保護しようとする試みに力を入れています。保護されたコードがどのように表示されるかを簡単に図 1 に示します。

Code protected by Reactor
図 1: Reactor によって保護されたコード
ランチャーの検査

コードの難読化が解除されると、内部の仕組みを簡単に理解できます。 Launcher の実行が開始される前に、自身の整合性チェックを実行して、変更されていないことを確認します。

Launcher はコマンド ラインでさまざまな引数を受け取り、サービスとしてインストールするか、Ploutus-D を実行するか、マシンからアンインストールすることができます。サービスのプロパティを図 2 に示します。

ランチャーのサービス説明
図 2: ランチャーのサービスの説明
持続性

非常に一般的な永続化手法を使用して、マルウェアは「Userinit」レジストリ キーに自分自身を追加し、再起動のたびに実行できるようにします。キーは次の場所にあります。

HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogonUserinit

ランチャーとの対話

攻撃者は、ATM の USB または PS/2 ポートにキーボードを接続してランチャーを操作する必要があります。以下の図 3 は、このセットアップの例を示しています。

ATM ポートに接続されたキーボード
図 3: ATM ポートに接続されたキーボード

Launcher が ATM にインストールされると、外部キーボードを介して攻撃者からの指示を読み取るために、キーボード フックが実行されます。 「F」キーの組み合わせを使用して、実行するアクションを要求します (図 4 を参照)。

キーボードによるランチャーの操作
図 4: キーボードを介したランチャーとの対話

サポートされている主なタスクは次のとおりです。

  • オンデマンドでプログラムを開始します。その一部は、ランチャーのリソース セクションから復号化されます。
    • C:Program FilesDieboldAgilis StartupAgilisShellStart.exe
    • メイン.exe
    • XFSConsole.exe
  • プロセスを強制終了:
    • NHOSTSVC.exe
    • AgilisConfigurationUtility.exe
    • XFSConsole.exe
  • ファイルを削除:
    • NetOp.LOG – 安全なリモート管理ソリューション
  • マシンの再起動:
    • 「wmic os where Primary=’TRUE’ 再起動」

図 5 に示すように、コマンド ラインから Ploutus-D (AgilisConfigurationUtility.exe) を実行するように要求が送信されています。

ランチャーから Ploutus-D を起動する
図 5: ランチャーによる Ploutus-D の起動

図 6 に示すように、正規の KAL ATM ソフトウェアが Ploutus-D とともにシステムにドロップされます。これは、マルウェアを適切に実行するために必要なすべてのソフトウェアとバージョンが同じフォルダーに存在することを確認するためです。依存関係の問題。 Ploutus の最初のバージョンでも同じ手法が使用されていました。

ランチャーによってドロップされたファイル
図 6: ランチャーによってドロップされたファイル

K3A.Platform.dll DLL は、Kalignite プラットフォームをロードして、Ploutus-D が ATM を制御できるようにします。

これは、攻撃者が標的の ATM ソフトウェアにアクセスできる可能性が高いことを示しています。彼らは、ベンダー ソフトウェアがプリロードされた認定再販業者から物理的な ATM を購入するか、銀行の施設から直接 ATM を盗むことができます。メキシコで報告された実際のインシデントの例を図 7 に示します。

ATM を物理的に盗む攻撃者
図 7: ATM を物理的に盗む攻撃者
Ploutus-D – AgilisConfigurationUtility.exe (.NET)

MD5

5AF1F92832378772A7E3B07A0CAD4FC5

.NET難読化ツール

原子炉

ファイルサイズ

274キロバイト

ファイルの種類

Win32 EXE

タイムスタンプ

1992:06:19 15:22:17-07:00

コードサイズ

29696

OS バージョン

4.0

イメージ バージョン

0.0

サブシステム バージョン

4.0

表 2: Ploutus-D のプロパティ

Launcher と同様に、このバイナリも Reactor 難読化ツールで保護されています (図 8 を参照)。

リアクターで保護
図 8: Reactor で保護

保護されていないコード (図 9 を参照) を見ると、ほとんどの関数の名前が最初のバージョンと同じであるため、Ploutus との関連性が明らかになりました。

保護されていないコード
図 9: 保護されていないコード

Ploutus-D は、実行を開始するために、「KaligniteAPP」という名前のミューテックスがシステムに存在しないことを確認します。ランチャーと同様に、Ploutus-D は攻撃者がキーボードを操作できるようにキーボードをフックします。ただし、「F」キーからのコマンドの受信とは別に、テンキー (数字) からも読み取ります。

以前のバージョンと同様に、GUI は「F」キーの組み合わせを入力することで有効になります。次に、お金を払い出せるように、有効な 8 桁のコードを GUI に入力する必要があります。 Ploutus-D では、攻撃者が引き出し金額 (billUnits – 4 桁) とサイクル数 (billCount – 2 桁) を入力して、支払い操作を繰り返すこともできます (図 10 を参照)。

解析量とサイクル
図 10: 解析量とサイクル

Ploutus-D GUI を図 11 に示します。これは、18 個のカセット (C1 ~ C18) のプロパティを一覧表示するように構成されています。文字「D」はカセットのステータスを示し、「CV」はレジストリから取得した値です。有効なコードが入力されている場合、「状態: アクティブ化」を意味するメッセージ「Estado:Activado」が表示されます。 ATM ID と HW_ID は、ATM に固有です。取得する金額は次のように表示されます: 「Cantidad: 500」 (GUI に金額が入力されていない場合のデフォルト値)。合計金額は通貨によって異なり、これもマルウェアによって計算されます。

Ploutus-D GUI 対応
図 11: Ploutus-D GUI が有効になっている

すべてのアクションは、「Log.txt」という名前のファイルに記録されます。抜粋を図 12 に示します。

ログ ファイルの記録アクション
図 12: ログ ファイルの記録アクション

お金の分配

ラバがお金の支払いを開始できるようにするには、有効な 8 桁のコードを入力する必要があります。このコードは、操作を担当するボスによって提供され、ATM ごとに生成される一意の ID と、攻撃の現在の月と日に基づいて計算されます。

有効なアクティベーション コード (有効期限は 24 時間) が入力されると、外部キーボードから「F3」を押すと調剤プロセスが開始されます。

マルウェアはまず、次の場所にある Diebold Dispenser の論理名「DBD_AdvFuncDisp」からレジストリの金種テーブルを照会して、カセットの金種を識別します。

HKLMSOFTWAREXFSPHYSICAL_SERVICESDBD_AdvFuncDispDenomination テーブル

同様の戦略を使用して、カセットのステータスとタイプを取得し、それらが適切に機能していることを確認し、さらに重要なことに、少なくとも 1 つの請求書を引き出す必要があることを特定します。

Ploutus-D は、Kalignite プラットフォーム (K3A.Platform.dll) によって実装された「KXCashDispenserLib」ライブラリをロードして、XFS マネージャーと対話し、ディスペンサーを制御します (図 13 を参照)。

ディスペンサー クラスをロードしています
図 13: Dispenser クラスのロード

図 14 は、XFS マネージャーと、KXCashDispenserLib を介した Kalignite プラットフォームとの対話をグラフィカルに示しています。

XFS マネージャー
図 14: XFS マネージャー

ディスペンサーを制御するさまざまなクラスとメソッドをすべて適切に実装するためのコードに示されている知識は、マルウェアの開発者が開発中に実際の ATM にアクセスできるか、これらのマシンでコーディングの経験を持つ個人を雇ったことを示唆しています。

Ploutus を他の ATM ベンダーに拡大

Kalignite Platform は、40 の ATM ベンダーをサポートしていると言われています。お金を払い出すコードを見ると、Diebold をターゲットにするように調整されているのは、カセット (DBD_AdvFuncDisp) パラメーターを読み取るためのさまざまなレジストリ キーだけです (図 15 を参照)。

Diebold Cassette のパラメーターを取得する
図 15: Diebold Cassette パラメーターの取得

Ploutus-D は Kalignite プラットフォームとやり取りするため、世界中のさまざまな ATM ベンダーをターゲットにするために Ploutus-D コードをわずかに変更するだけで済みます。

結論

2017 年の予測レポートで予想されたように、ATM マルウェアの使用は、特に物理的なセキュリティ制御が脆弱な発展途上国で増加し続けるでしょう。 Kalignite プラットフォームを活用することで、Ploutus を簡単に変更して、さまざまな ATM ベンダーやオペレーティング システムを攻撃することができます。

よくある質問

  1. Ploutus-D が最初に発見されたのはいつですか?
    • Ploutus-D は、2016 年 11 月に VirusTotal にアップロードされました。
  2. Ploutus-D はカード所有者情報をターゲットにしていますか?
    • いいえ。ATM 内から現金を引き出すように設計されています。
  3. Ploutus-D は、実際に ATM に影響を与えていますか?
    • はい。ラテンアメリカで観察されています。
  4. どのタイプの ATM が影響を受けますか?
    • Ploutus-D は Diebold ATM に影響を与えます。
    • Kalignite プラットフォームを使用する他のベンダーに影響を与えるために、Ploutus-D にマイナーな変更を加えることができます。
  5. Ploutus-D はどのように ATM にインストールされますか?
    • ATM への物理的なアクセスを通じて。
  6. 攻撃者は Ploutus-D とどのようにやり取りしますか?
    • ATM に接続する必要がある外部キーボードを介して。

IOC

ファイルシステム:

[DZ]:DataP.bin
C:DieboldEDCedclocal.dat

次のファイルは、サービス Diebold.exe が置かれているのと同じ場所にあります。

ログ.txt
Log2.txt
P.bin – システムの Mac アドレスと文字列: 「PLOUTUS-MADE-IN-LATIN-AMERICA-XD」
PDLL.bin – P.bin のエンコードされたバージョン

ミューテックス名:

プルトス
ダイボルトPL
カリナイトAPP

サービス:

サービス名:DIEBOLDP

レジストリ:

HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogonUserinit=”Diebold.exe,%system32%/userinit.exe”

参照: https://www.mandiant.com/resources/blog/new-ploutus-variant

Comments

Copied title and URL