トレンドのHugging Faceリポジトリで発見されたマルウェア
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
HiddenLayerの研究者は、Hugging FaceリポジトリOpen-OSS/privacy-filterで、正規のOpenAIプロジェクトを模倣する悪意あるコードを発見しました。リポジトリには、jsonkeeper.comからPowerShellコマンドを取得するloader.pyスクリプトが含まれており、これにより2段階目のバッチファイルとRustベースの情報スティーラーがダウンロードされました。ペイロードは、資格情報、ブラウザデータ、暗号通貨ウォレットファイル、スクリーンショットを送信し、一度だけ実行されるスケジュールタスクの完了後に自己削除します。
調査
分析では、初期の魅惑から最終的なRust情報スティーラーまでの6つのステージが特定されました。その中には、隠れたPowerShellの実行、api.eth-fastscan.orgからupdate.batを取得するダウンローダー、そして一時的なランナースクリプトと一時的なスケジュールタスクを作成するバッチファイルが含まれています。C2ドメインrecargapopular.comおよび関連ドメインwelovechinatown.infoへのネットワークトラフィックが観察されました。ユーザーanthfuの複数のHugging Faceリポジトリが、同じローダーとC2 URLを再利用していることが発見されました。
緩和策
ネットワークの境界でリストされた悪意あるドメインとURLをブロックし、エンドポイントで署名されていないPowerShellスクリプトの実行を無効にします。侵害されたリポジトリからダウンロードしたすべてのファイルを削除し、収集された可能性のある認証情報を無効にします。不審なスケジュールタスクの作成や異常なPowerShellコマンドラインに対する厳重な監視を実施します。
対応策
loaderまたはstart.batを実行したホストを隔離し、完全に侵入されたものとして扱い、システムを再構築します。保存されたすべてのパスワード、セッションクッキー、OAuthトークン、および暗号通貨ウォレットの資格情報を変更します。悪意あるドメインへの履歴的な接続を探索し、指定されたファイルパスやスケジュールタスク名の存在を調査します。
"graph TB %% Class Definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef credential fill:#ccffcc classDef exfil fill:#c0c0c0 classDef operator fill:#ff9900 %% Node definitions malicious_repo["<b>リソース</b> – <b>Hugging Face リポジトリ</b><br/>悪意のある start.bat と loader.py を含む"] class malicious_repo file action_user_execution_link["<b>アクション</b> – <b>T1204.001 ユーザー実行: 悪意のあるリンク</b><br/>被害者が悪意のあるリポジトリへのリンクをクリックする"] class action_user_execution_link action file_start_bat["<b>ファイル</b> – start.bat<br/>被害者によって呼び出されるバッチスクリプト"] class file_start_bat file file_loader_py["<b>ファイル</b> – loader.py<br/>チェックサムを確認しSSL検証を無効にするPythonローダー"] class file_loader_py file action_user_execution_file["<b>アクション</b> – <b>T1204.002 ユーザー実行: 悪意のあるファイル</b><br/>被害者がloader.pyを実行する"] class action_user_execution_file action action_proxy_execution["<b>アクション</b> – <b>T1127 信頼できる開発者ユーティリティプロキシ実行</b><br/>loader.pyがPowerShellをバイパスして隠しウィンドウで起動する"] class action_proxy_execution action process_powershell["<b>プロセス</b> – PowerShell<br/>リモートのコマンドラインを実行する"] class process_powershell process action_taint_shared_content["<b>アクション</b> – <b>T1080 共有コンテンツの汚染</b><br/>PowerShellワンライナーがapi.eth-fastscan.orgからupdate.batをダウンロードする"] class action_taint_shared_content action file_update_bat["<b>ファイル</b> – update.bat<br/>Defenderの除外を追加しスケジュールタスクを作成するバッチスクリプト"] class file_update_bat file action_hide_artifacts["<b>アクション</b> – <b>T1564.012 アーティファクトの隠蔽: ファイル/パスの除外</b><br/>ペイロードファイルのMicrosoft Defender除外を追加する"] class action_hide_artifacts action action_hijack_execution["<b>アクション</b> – <b>T1574 実行フローの乗っ取り</b><br/>MicrosoftEdgeUpdateTaskCoreスケジュールタスクを作成し、SYSTEMとしてペイロードを実行する"] class action_hijack_execution action process_scheduled_task["<b>プロセス</b> – スケジュールタスク<br/>SYSTEM権限でRustペイロードを実行する"] class process_scheduled_task process malware_rust_payload["<b>マルウェア</b> – Rustペイロード<br/>解析防止チェックを行いAMSI/ETWを無効化する"] class malware_rust_payload malware action_credential_collection["<b>アクション</b> – <b>T1555 パスワードストアからの資格情報</b><br/>情報スティーラーがChromium、Firefox、Discordおよびウォレットの資格情報を抽出する"] class action_credential_collection credential action_credential_files["<b>アクション</b> – <b>T1552.001 安全でない資格情報: ファイル内の資格情報</b><br/>SSH、FTP、VPNおよびウォレットのシードファイルを収集する"] class action_credential_files credential action_os_credential_dump["<b>アクション</b> – <b>T1003 OS資格情報のダンプ</b><br/>暗号化されたブラウザキーを取得する"] class action_os_credential_dump credential action_screen_capture["<b>アクション</b> – <b>T1113 スクリーンキャプチャ</b><br/>複数のモニタからスクリーンショットを撮る"] class action_screen_capture malware action_data_encoding["<b>アクション</b> – <b>T1132 データエンコーディング</b><br/>データをgzip圧縮JSONにパッケージする"] class action_data_encoding malware action_exfiltration["<b>アクション</b> – <b>T1567.002 ウェブサービス経由の漏洩</b><br/>HTTPS経由でエンコードされたデータをrecargapopular.comにポストする"] class action_exfiltration exfil %% Connections malicious_repo –>|contains| file_start_bat malicious_repo –>|contains| file_loader_py action_user_execution_link –>|leads_to| file_start_bat action_user_execution_link –>|leads_to| file_loader_py file_start_bat –>|executed_by| action_user_execution_file file_loader_py –>|executed_by| action_user_execution_file action_user_execution_file –>|triggers| action_proxy_execution action_proxy_execution –>|launches| process_powershell process_powershell –>|downloads| file_update_bat file_update_bat –>|executes| action_hide_artifacts action_hide_artifacts –>|creates| action_hijack_execution action_hijack_execution –>|spawns| process_scheduled_task process_scheduled_task –>|runs| malware_rust_payload malware_rust_payload –>|performs| action_credential_collection malware_rust_payload –>|performs| action_credential_files malware_rust_payload –>|performs| action_os_credential_dump malware_rust_payload –>|performs| action_screen_capture malware_rust_payload –>|encodes| action_data_encoding action_data_encoding –>|exfiltrates| action_exfiltration "
攻撃の流れ
検出
Powershellから疑わしい.NETメソッドの呼び出し(PowerShellを介して)
表示
IOCs (HashSha256) の検出: 注目されているHugging Faceリポジトリ「Open-OSS/privacy-filter」に発見されたマルウェア
表示
IOCs (SourceIP) の検出: 注目されているHugging Faceリポジトリ「Open-OSS/privacy-filter」に発見されたマルウェア
表示
IOCs (DestinationIP) の検出: 注目されているHugging Faceリポジトリ「Open-OSS/privacy-filter」に発見されたマルウェア
表示
Hugging Faceリポジトリにおける悪意のあるC2コミュニケーションの検出 [Windowsネットワーク接続]
表示
悪意ある実行のための隠れたPowerShellとCMDアクティビティ [Windowsプロセス作成]
表示
シミュレーション実行
前提条件: テレメトリー&ベースラインの事前検査に合格していること。
理由: このセクションは、検出ルールをトリガーするために設計された敵技術(TTP)の正確な実行を詳述します。コマンドと物語は、識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的とします。抽象的または関連性のない例は誤診を招く可能性があります。
-
攻撃の叙述とコマンド:
攻撃者はWindowsワークステーションに足を踏み入れ、ユーザーに気づかれずに高い権限で悪意のあるペイロードを実行したいと考えました。- 隠しCMDシェルを生成するPowerShellワンライナーを作成します(
/k)そしてすぐにこれをエスカレートしますStart-Process -Verb RunAs. - 既存のPowerShellセッションからこのワンライナーを実行し、プロセスツリーに隠れたPowerShellインスタンスが含まれていることを確認します and 「Start-Process」で起動されたCMDインスタンス
/k. - このエスカレートされたCMDを使用して、最終ペイロードをダウンロードして実行することができます。
- 隠しCMDシェルを生成するPowerShellワンライナーを作成します(
-
回帰テストスクリプト:
# --------------------------------------------------------- # シミュレートされた敵スクリプト – 隠れたPowerShell + RunAs CMD # --------------------------------------------------------- $maliciousCmd = "cmd.exe /k echo 攻撃者がエスカレートしました && ping -n 5 127.0.0.1" $psCommand = "-ExecutionPolicy Bypass -WindowStyle Hidden -Command `"Start-Process -FilePath 'powershell.exe' -ArgumentList `"$maliciousCmd`" -Verb RunAs`"" # 隠れたPowerShellを起動し、その中で昇格されたCMDを実行 Start-Process -FilePath "powershell.exe" -ArgumentList $psCommand -WindowStyle Hidden -
クリーンアップコマンド:
# テストによって生成された残った昇格されたCMDプロセスを終了 Get-Process -Name "cmd" -ErrorAction SilentlyContinue | Where-Object { $_.StartInfo.Arguments -match "/k echo 攻撃者がエスカレートしました" } | Stop-Process -Force # (このシンプルなデモではなし)もし作成された場合、一時ファイルをオプションで削除