前文
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.cpp | AppleScriptsを実行してシステム情報を収集し、パスワードフィッシングを実行します。 |
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/
に送信されます。
動作検出
- 未署名または信頼できないバイナリによる暗号ウォレットファイルへのアクセス
- 署名されていないプロセスまたは信頼されていないプロセスによってアクセスされたWebブラウザの資格情報データ
- Osascript ペイロードのドロップと実行
- Osascriptによる潜在的な資格情報フィッシング
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 | タイプ | 名前 | 参考 |
---|---|---|---|
11aa6eeca2547fcf807129787bec0d576de1a29b56945c5a8fb16ed8bf68f782 | SHA-256の | バンシースティーラー | |
45.142.122[.]92 | IPv4-アドレス | バンシースティーラー C2 |