ICMacOSの内部: 情報窃取型マルウェアから持続的なRATへ
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
ICMacOS、またの名をIcarus macOSは、新たに特定されたmacOSのマルウェア・アズ・ア・サービス(MaaS)で、資格情報窃盗機能から永続的なリモートアクセス木馬(RAT)に進化したものです。対象としているのは、ブラウザの資格情報、暗号通貨ウォレット、SSHキーやクラウド設定などの開発者の秘密情報などの高価値な情報です。このマルウェアは、ClickFixベースのソーシャルエンジニアリングを使った配信と、WebSocketsを使用したリアルタイムのコマンド&コントロールを行います。
調査
SOCRadar脅威リサーチユニット(STRU)は、テレメトリ分析と地下フォーラムの監視を通じてICMacOSを特定しました。研究者は、最初のBashドロッパースクリプトからMach-OバイナリとPythonベースの補助ペイロードの展開に至る感染チェーンを追跡しました。この調査は、データを盗むことに焦点を当てたバージョン1からRAT機能を備えたバージョン2への進展を記録するとともに、WebSocket分析を通じたC2インフラストラクチャのマッピングを行いました。
緩和策
組織はターミナルコマンド実行に関して厳格な制御を実施し、疑わしいLaunchAgentの変更を監視する必要があります。ディスク暗号化や無許可のLaunchAgentを制限するMDMポリシーを使ってmacOSシステムを強化することが推奨されます。セキュリティチームは、異常なアウトバウンドWebSocket接続やKeychainサービスの不正アクセスを監視し、侵害の指標として利用するべきです。
対応
ICMacOSの活動が検出された場合は、データ漏洩及びさらなるC2通信を阻止するために、ネットワークから影響を受けたmacOSホストを隔離してください。/tmpディレクトリ、LaunchAgents、ユーザーKeychain活動の包括的なフォレンジックレビュを行ってください。SSHキー、AWSやKubernetesの資格情報のようなクラウドプロバイダートークン、ブラウザに保存されたパスワードなど、潜在的に侵害された資格情報を変更してください。
攻撃フロー
この部分はまだ更新中です。
検知
IPルックアップドメイン通信の試みが確認されました(dns経由)
非標準パスからのLaunchctlブートストラップ(プロセス作成経由)
MacOSの疑わしい一時フォルダファイル権限の変更(コマンドライン経由)
手動のKeychainロック解除の試みの可能性(コマンドライン経由)
MacOSブラウザパスワードの検出試みの可能性(コマンドライン経由)
疑わしいCurlの実行試み [MacOS](コマンドライン経由)
MacOS一時フォルダでアーカイブが作成されました(ファイルイベント経由)
検知するためのIOC(HashSha256):ICMacOSの内部:情報窃盗者から永続的RATへの進化
悪意のあるリモート設定アクセスとペイロード取得の検知 [Webserver]
AppleScriptの利用とKeychainパスワード取得のmacOS ICMacOS感染における検知 [Windowsプロセス作成]
ICMacOSによる隠蔽活動と無許可データ集約の検知 [Linuxファイルイベント]
ターミナル難読化とプロセス列挙によるICMacOSスティーラーの検知 [Linuxプロセス作成]
シミュレーション実行
-
攻撃の説明とコマンド: 敵対者がmacOSワークステーションへの初期アクセスを取得し、ICMacOSスティーラーを展開しています。ユーザーに気づかれず、手動での観察の時間を最小限にするために、マルウェアはスクリプトを経由して実行されます。
zsh。このスクリプトはまずbasename $0を使用して自身のファイル名を特定し、ファイルシステム内での存在をより難読化します。恶意のあるペイロードを開始(ICMACOSプロセスの列挙によってシミュレーションされる)するとすぐに、スクリプトはユーザーのターミナルウィンドウをクラッシュさせるためにkillall Terminalを試み、ユーザーをアクティブセッションから追い出し、コマンド履歴を隠します。 -
回帰テストスクリプト:
#!/bin/zsh # ICMacOSスティーラー検知検証用シミュレーションスクリプト echo "[+] ICMacOSスティーラーのシミュレーション開始..." # 1. 'basename $0' 経由でselection_basename_killallをトリガー echo "[+] 難読化パターン実行中: basename $0" /bin/zsh -c "echo $(basename $0)" # 2. 'killall Terminal' 経由でselection_basename_killallをトリガー echo "[+] 隠蔽パターン実行中: killall Terminal" # メモ: 本物のターミナルで実行する際にシミュレーションスクリプト自体がすぐに終了しないようにサブシェルを使用しますが、ルールの目的ではコマンドが発火することを求めています。 /bin/zsh -c "killall Terminal" 2>/dev/null || echo "[!] killall失敗(ターミナルが実行されていないか、許可が拒否された)" # 3. 'pgrep ICMACOS' 経由でselection_pgrepをトリガー echo "[+] 列挙パターン実行中: pgrep ICMACOS" /bin/zsh -c "pgrep ICMACOS" echo "[+] シミュレーションコマンドが送信されました。" -
クリーンアップコマンド:
# シミュレーションスクリプトによって永続的なファイルは作成されませんでした。 # 使用した一時ファイルがある場合は、ここで削除されるべきです。 rm -f /tmp/icmacos_sim_test