PamStealer、サーバー側のデクリプションチェーンでSwiftへ移行
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
新しいPamStealerのmacOS情報盗取型マルウェアのバリアントは、RustからSwiftへの主要なアーキテクチャシフトを導入します。更新されたマルウェアは、というカスタムユーティリティによって駆動されるサーバー側復号チェーンに依存しています。 pkgunpack、アクティブなC2相互作用を必要とし、セカンドステージペイロードを復号して実行します。また、ブラウザのクレデンシャル、キーチェーンデータ、広範なシステムメタデータを標的としながら、層状の持続メカニズムを使用します。
調査
Jamf Threat Labsは、偽の暗号通貨ウォレットインストーラーであるWavelの中に識別された後、新しいPamStealerバリアントを分析しました。調査で、コンパイルされたJXAドロッパーから始まり、ライブのキー交換を行うzshベースのステージで続き、クレデンシャル盗難とシステムフィンガープリンティングを担当するSwiftベースのセカンドステージに至る多段式実行チェーンが明らかになりました。
緩和策
ユーザーは、非公式ソースからのアプリケーションのダウンロード、特に暗号通貨ウォレットを装うソフトウェアを避けるべきです。組織は、疑わしいmacOSバックグラウンド項目や、以下のようなシェル構成ファイルへの無許可の変更を監視するべきです。 .zshrc。動的コード署名の検出、異常なプロセス再親化、不審なシェル実行を検出可能なエンドポイントセキュリティコントロールが、更なる露出の削減に役立つでしょう。
対応策
PamStealerの活動が検出された場合、さらなるコマンド&コントロール通信およびデータ流出を防ぐために、影響を受けたmacOSエンドポイントをネットワークから隔離します。ブラウザデータとmacOS Keychainに特に注意を払いながら、クレデンシャル盗難の範囲を特定するために法医学分析を実施します。無許可のLaunchAgentの作成、疑わしいバックグラウンド項目、予期しないシェル活動についてシステムログを見直します。
攻撃フロー
この部分はまだ更新中です。
検出
変更されたアプリケーションバンドルの強制コード署名(cmdlineを使用)
MacOSアーカイブユーティリティが疑わしいディレクトリを指している(cmdlineを使用)
Dittoの疑わしい使用によるmacOSでのファイルアーカイブとエクスフィルトレーション(process_creationを通じて)
Curlの疑わしい実行試行 [MacOS](cmdlineを使用)
アーカイブがMacOSの一時フォルダに作成された(file_eventを通じて)
ブラウザヘルパープロセスの終了によるクレデンシャルの解除 [Windows Process Creation]
PamStealerバリアントでのバイパステクニックのためのxattrとcodesignの使用を検出 [Linux File Event]
PamStealer JXAスクリプトのZshによる実行 [Linux Process Creation]
シミュレーション実行
-
攻撃のナラティブとコマンド: 攻撃者は、ディスク検出を回避するペイロードを展開しようとしています。これを達成するために、Base64エンコードされた文字列をデコードし、
zshをサブシェル内でパイプします。-sフラグを使用します。調査員が容易に悪意のあるプロセスを元のシェルセッションにリンクするのを防ぐために、攻撃者はペイロードをdaemon_functionという名前の関数にラップし、&を使用してバックグラウンドで実行し、プロセスツリーのリンクを断ち切るためにすぐに現在のシェルを終了します。 -
回帰テストスクリプト:
#!/bin/bash # zshを介してPamStealer JXA実行のシミュレーション # 「悪意のある」ペイロードを関数名として定義しコマンドを付与 # ペイロードはTTPを模倣するためにzsh -sにパイプされる PAYLOAD="daemon_function() { echo '[!] 悪意のあるペイロードが実行された'; }; daemon_function & ; exit 0" # 検出ルールが期待する通りにペイロードを実行 echo "$PAYLOAD" | zsh -s -
クリーンアップコマンド:
# コマンドはパイプされ、永続ファイルを作成しないためクリーンアップは最小限。 # シミュレーションからバックグラウンドプロセスがまだ動作していないことを確認するだけです。 pkill -f "daemon_function"