Sapphire Sleetが展開する最新のmacOSキャンペーンでは、細工された.scpt形式のAppleScriptファイルをおとりとして用い、curlの出力を直接osascriptにパイプする手法を採用しています。これにより、Script Editor内で完結するコンパクトな多段階ペイロードチェーンが実現し、macOSに組み込まれた多くの保護機能を回避することが可能です。
感染の起点となるのは、ソーシャルエンジニアリングで作成された偽のSDKやアップデート用AppleScriptファイルです。「Zoom SDK Update.scpt」や「msteams sdk update.scpt」といったファイルがmacOSのScript Editorで開かれると、一見無害な長いコメントブロックが表示される一方、悪意のあるロジックは表示領域より下に隠されています。
被害者がファイルを開くと、スクリプトはcurlを呼び出してリモートのAppleScriptステージを取得し、取得したコンテンツをosascriptへ直接パイプします(curl | osascript)。
これにより連鎖的なAppleScriptステージが起動し、追加コンポーネントのダウンロード、C2へのホスト登録、バックドアおよびクレデンシャルハーベスタの展開が、初期ステージをディスクに書き込むことなく実行されます。

Microsoftの脅威インテリジェンスチームによると、この活動は北朝鮮系脅威アクターであるSapphire Sleetによるものと断定されています。同アクターは、ソーシャルエンジニアリングのおとり、配信インフラ、ステージングパターンを継続的に改善しており、最近ではTeamsをテーマにした亜種も確認されています。
このcurl→osascriptのチェーン手法には運用上の利点があります。ユーザーが起点となる実行コンテキストを保持することでGatekeeper・公証・検疫チェックを回避できるほか、mac-cur1からmac-cur5といった固有のユーザーエージェント識別子を使用することで、ステージごとに動的なペイロード選択が可能になります。
Sapphire Sleet macOSマルウェアの詳細
mac-cur1ステージはオーケストレーターとして機能し、ホスト監視コンポーネントを展開します(亜種によって「com.apple.cli」または「com.microsoft.helper」として確認されています)。
このサービスバックドアはlaunch plistを通じて永続化を確立します。また、mac-cur2およびmac-cur4はクレデンシャルハーベスタアプリ(systemupdate.app)を配信します。このアプリはネイティブアプリを装ったパスワード入力プロンプトを表示し、確認済みのクレデンシャルをTelegram Bot API経由でアクターに送信します。

データ収集を広範に展開するため、Sapphire SleetはmacOSの透明性・同意・制御(TCC)保護機能を、ユーザーのTCCデータベースをプログラム的に操作することで回避しています。
このキャンペーンでは、FinderにTCCフォルダへの読み書きアクセスを強制的に許可させ、Apple署名要件に紐付けられたsqlite3エントリ経由でosascriptにAppleEventsの許可を注入し、その後データベースを復元することで、osascriptにファイル収集と自動化に必要なサイレントなAppleEvents権限を付与します。
TCCの改ざんが完了すると、マルウェアはブラウザプロファイルおよびIndexedDBのウォレットデータ、キーチェーンファイル(取得したパスワードで復号可能)、Telegramのセッションデータ、デスクトップウォレットファイル(Ledger Live、Exodus)、SSHキー、Appleメモ、システムログといった高価値な情報資産を列挙・窃取します。窃取にはnohupを使用したアップロードと、デバイスUUIDに紐付けられた一貫したアップロードヘッダーが使用されます。

情報開示を受け、MicrosoftとAppleは連携して緩和策を講じました。Appleはワシントン州からXProtectシグネチャとSafe Browsingによる保護を展開し、MicrosoftはDefenderの検知を拡充するとともに、パイプ経由のcurl実行や不審なosascriptアクティビティを監視するためのハンティングクエリと行動ガイダンスを公開しました。
推奨される対策には、.scptの実行および未署名バイナリのブロックまたは監査、curlからインタープリタへのパイプ処理の制限またはアラート設定、Library/Application Support/com.apple.TCC/TCC.db操作の監視、機密アプリへの最小権限の徹底、そしてハードウェアウォレットの活用とクレデンシャルのローテーションによる暗号資産ワークフローの保護が含まれます。
類似インシデントを調査するセキュリティ担当者向けに、Microsoftのブログ記事には詳細な侵害の痕跡(IoC)、検知名、ハンティングガイダンスが掲載されています。また、セキュリティメディアの公開レポートは、連鎖するcurl→osascriptステージおよびTeams/Zoomをテーマにしたおとりの使用をまとめています。
セキュリティチームは、特にコンパイル済みAppleScript(.scpt)ファイルのダウンロードや実行を求める一方的なリクエストをすべて高リスクと判断し、実行前にベンダーの公式チャネルを通じてダウンロードを確認するようにしてください。
侵害の痕跡(Indicators of Compromise)
悪意のあるファイルハッシュ
| ファイル | SHA-256 |
| /Users/<user>/Downloads/Zoom SDK Update.scpt | 2075fd1a1362d188290910a8c55cf30c11ed5955c04af410c481410f538da419 |
| MSTeams SDK Update.scpt | 980bf65c703edae7b28a752207a84b80332be0dae4ee87f00928f82a011ab0ce |
| /Users/<user>/com.apple.cli | 05e1761b535537287e7b72d103a29c4453742725600f59a34a4831eafc0b8e53 |
| /Users/<user>/com.microsoft.helper | 3e6fcace412827b14d4af9fc7ca1b8867f75f40c589f3fdca50e988466f00279 |
| /Users/<user>/.google.doc | 5f457c492773b832054d007ba94d2e89c22dac8458dc9dc1b1d91896777c0c9f |
| /Users/<user>/.com.apple.helpers | 97ccc28808d2c21b83f24835744af754920a992e57216d2cbc8315664905b0e2 |
| /Users/<user>/Library/Services/services services / icloudz |
5fbbca2d72840feb86b6ef8a1abb4fe2f225d84228a714391673be2719c73ac7 |
| com.google.chromes.updaters | 5e581f22f56883ee13358f73fabab00fcf9313a053210eb12ac18e66098346e5 |
| com.google.webkit.service.plist | 95e893e7cdde19d7d16ff5a5074d0b369abd31c1a30962656133caa8153e8d63 |
| com.apple.identification.plist | fcd0c4f9d4311de6f400cc61f476dd60ae06f8d19568dbbaa1a118e1a0ff68ab |
| /private/tmp/SystemUpdate/systemupdate.app/Contents/MacOS/Mac Password Popup | 8fd5b8db10458ace7e4ed335eb0c66527e1928ad87a3c688595804f72b205e8c |
| /private/tmp/SoftwareUpdate/softwareupdate.app/Contents/MacOS/Mac Password Popup | a05400000843fbad6b28d2b76fc201c3d415a72d88d8dc548fafd8bae073c640 |
注意: IPアドレスおよびドメインは、誤った名前解決やハイパーリンク化を防ぐため、意図的に無効化された形式(例:[.])で記載しています。再有効化は、MISP、VirusTotal、SIEMなど管理された脅威インテリジェンスプラットフォーム内でのみ行ってください。
翻訳元: https://gbhackers.com/sapphire-sleet-macos-malware/