Elastic Security Labs

嘆きの向こう側:BANSHEEインフォスティーラーの解体

BANSHEEマルウェアはmacOSベースの情報窃取プログラムで、システム情報、ブラウザデータ、暗号通貨ウォレットを狙います。

10分で読めますマルウェア分析
嘆きの向こう側:BANSHEEインフォスティーラーを紐解く

前文

In August 2024, a novel macOS malware named "BANSHEE Stealer" emerged, catching the attention of the cybersecurity community. Reportedly developed by Russian threat actors, BANSHEE Stealer was introduced on an underground forum and is designed to function across both macOS x86_64 and ARM64 architectures.

このマルウェアは、重要なシステム情報、ブラウザデータ、および暗号通貨ウォレットを標的とし、macOSユーザーに深刻なリスクをもたらします。

月額3,000ドルという高額なサブスクリプション価格で、BANSHEE Stealerは、特にAgentTeslaのような有名なスティーラーと比較して、市場で際立っています。

macOSがサイバー犯罪者の主要な標的になるにつれて、BANSHEE Stealerは、macOS固有のマルウェアの増加を強調しています。 この分析では、BANSHEE Stealer の技術的な詳細を探り、コミュニティがその影響を理解し、新たな脅威について常に情報を入手できるようにすることを目的としています。

重要なポイント

  • BANSHEE Stealerは、OSがサイバー脅威の標的となりやすくなるにつれ、macOSマルウェアのサンプル数が増加していることを強調しています。
  • BANSHEE Stealer の月額 3,000 ドルの価格は、Windows ベースのスティーラーと比較して著しく高いです。
  • BANSHEE Stealer は、さまざまなブラウザ、暗号通貨ウォレット、および 100 のブラウザ拡張機能を中心に標的としているため、非常に汎用性が高く危険な脅威となっています。

マルウェア分析

この調査で分析したマルウェアには、すべてのC++シンボルが含まれていましたが、下の図に示すように、これらのソースコードファイル名を知ることでプロジェクトのコード構造を推測できるのは興味深いことです。 C++ で生成されたグローバル変数初期化関数を調べると、ビルドプロセス中にユーザーが自動/手動で設定した値 (リモート IP、暗号化キー、ビルド ID など) を見つけることができます。

次の表は、リークした .cpp ファイル名をバイナリの記号でまとめたものです。

ファイル名説明
Controller.cppデバッグ対策、言語チェック、データ収集、流出など、主要な実行タスクを管理します。
Browsers.cppさまざまな Web ブラウザーからのデータの収集を処理します。
System.cppAppleScriptsを実行してシステム情報を収集し、パスワードフィッシングを実行します。
Tools.cpp暗号化、ディレクトリ作成、圧縮などのユーティリティ機能を提供します。
Wallets.cpp暗号通貨ウォレットからのデータ収集を担当します。

デバッガー、VM 検出、および言語チェック

BANSHEE Stealer は、基本的な手法を使用して検出を回避します。 sysctl API を使用してデバッグを検出します。

仮想化検出では、コマンド system_profiler SPHardwareDataType | grep 'Model Identifier' を実行して、仮想マシンを示唆するハードウェア モデル識別子に文字列 Virtual が表示されているかどうかを判断します。 これらの方法は比較的単純で、高度なサンドボックスやマルウェアアナリストによって簡単に回避できます。

さらに、 CFLocaleCopyPreferredLanguages API から返されたユーザー優先の正規化された言語を解析し、文字列 ruを探します。 この戦術により、マルウェアはロシア語が主要言語であるシステムに感染するのを防ぐことができます。

システム情報の収集

ユーザーパスワード

このマルウェアは、アプリケーションを起動するにはシステム設定を更新する必要があることを示すダイアログを含む Osascript パスワードプロンプトを作成します。 パスワードを入力してください。

ユーザーがパスワードを入力すると、 dscl コマンドを使用してパスワードが検証されます dscl Local/Default -authonly <username> <password>

有効な場合、パスワードは /Users/<username>/password-enteredファイルに書き込まれます。

これらの資格情報を利用して、システムに保存されているキーチェーンデータを復号化し、保存されたすべてのパスワードへのアクセスを許可できます。

ファイル、ソフトウェア、およびハードウェア情報の収集

この関数は、システム情報を収集し、それを JSON オブジェクトにシリアル化 System::collectSystemInfo 。 コマンドを実行します system_profiler SPSoftware DataType SPHardwareDataType、システムのソフトウェアとハードウェアに関する詳細を提供します。 マシンのパブリックIPは、組み込みのmacOScURLコマンドを使用してfreeipapi.comにリクエストすることで取得します。

JSONファイルは、 <temporary_path>/system_info.json

BANSHEE スティーラーは AppleScript を実行します。興味深いことに、AppleScriptsを同じファイルに書き込みます /tmp/tempAppleScript

最初に実行されるスクリプトは、 osascript -e 'set volume with output muted' コマンドでシステムサウンドをミュートします。 次に、以下にリストされているさまざまなファイルをシステムから収集します。

  • Safariのクッキー
  • Notes データベース
  • 拡張子が .txt.docx.rtf.doc.wallet.keys、または Desktop フォルダと Documents フォルダから .key されたファイル。

キーチェーンパスワードをダンプする

システム/Library/Keychains/login.keychain-dbのキーチェーンを<temporary_path>/Passwordsにコピーします

ブラウザコレクション

BANSHEEは現在、 9 つの異なるブラウザから、ブラウザの履歴、Cookie、ログインなどを含むデータを収集しています。

  • クロム
  • Firefoxの
  • 勇ましい
  • Edge
  • Vivaldi
  • Yandex
  • オペラ
  • オペラGX

Safariについては、現在のバージョンのAppleScriptスクリプトによってCookieのみが収集されます。

さらに、約 100 のブラウザプラグインからのデータがマシンから収集されます。 これらの拡張機能 ID の一覧は、ブログ投稿の最後にあります。

収集されたファイルは <temporary_path>/Browsersに保存されます。

ウォレットコレクション

  • Exodus
  • エレクトラム
  • Coinomi
  • Guarda
  • わさびウォレット
  • アトミック
  • 台帳

収集されたウォレットは <temporary_path>/Walletsの下に保管されます。

抽出

マルウェアは、データの収集が終了したら、まず ditto コマンドを使用して一時フォルダをZIP圧縮します。 次に、zip ファイルは XOR 暗号化され、base64 でエンコードされ、組み込みの cURL コマンドを使用して POST リクエストを介して URL: http://45.142.122[.]92/send/ に送信されます。

動作検出

YARAルール

Elasticセキュリティは、このアクティビティを識別するためのYARAルールを作成しました。 以下は、BANSHEEマルウェアを識別するためのYARAルールです。

rule Macos_Infostealer_Banshee {
    meta:
        author = "Elastic Security"
        creation_date = "2024-08-13"
        last_modified = "2024-08-13"
        os = "MacOS"
        arch = "x86, arm64"
        category_type = "Infostealer"
        family = "Banshee"
        threat_name = "Macos.Infostealer.Banshee"
        license = "Elastic License v2"

    strings:
        $str_0 = "No debugging, VM, or Russian language detected." ascii fullword
        $str_1 = "Remote IP: " ascii fullword
        $str_2 = "Russian language detected!" ascii fullword
        $str_3 = " is empty or does not exist, skipping." ascii fullword
        $str_4 = "Data posted successfully" ascii fullword
        $binary_0 = { 8B 55 BC 0F BE 08 31 D1 88 08 48 8B 45 D8 48 83 C0 01 48 89 45 D8 E9 }
        $binary_1 = { 48 83 EC 60 48 89 7D C8 48 89 F8 48 89 45 D0 48 89 7D F8 48 89 75 F0 48 89 55 E8 C6 45 E7 00 }
    condition:
        all of ($str_*) or all of ($binary_*)
}

まとめ

BANSHEE Stealer は macOS ベースのマルウェアであり、システム、ブラウザー、暗号通貨ウォレット、および多数のブラウザー拡張機能から広範なデータを収集できます。 その潜在的に危険な機能にもかかわらず、マルウェアには高度な難読化がなく、デバッグ情報が存在するため、アナリストは分析して理解することが容易になります。 BANSHEE Stealer は、その設計が過度に複雑ではありませんが、macOS システムに焦点を当て、収集するデータの幅が広いため、サイバーセキュリティ コミュニティの注意が必要な重大な脅威となっています。

Observables

すべてのオブザーバブルは、ECS形式とSTIX形式の両方で、結合されたzipバンドルで ダウンロード することもできます。

この研究では、次の観測量について議論しました。

Observableタイプ名前参考
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782SHA-256のバンシースティーラー
45.142.122[.]92IPv4-アドレスバンシースティーラー C2

この記事を共有する