SOC Prime Bias: クリティカル

13 5月 2026 22:13

トレンドのHugging Faceリポジトリで発見されたマルウェア

Author Photo
Ruslan Mikhalov SOC Primeの脅威リサーチ責任者 linkedin icon フォローする
トレンドのHugging Faceリポジトリで発見されたマルウェア
shield icon

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 "

攻撃の流れ

シミュレーション実行

前提条件: テレメトリー&ベースラインの事前検査に合格していること。

理由: このセクションは、検出ルールをトリガーするために設計された敵技術(TTP)の正確な実行を詳述します。コマンドと物語は、識別されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的とします。抽象的または関連性のない例は誤診を招く可能性があります。

  • 攻撃の叙述とコマンド:
    攻撃者はWindowsワークステーションに足を踏み入れ、ユーザーに気づかれずに高い権限で悪意のあるペイロードを実行したいと考えました。

    1. 隠しCMDシェルを生成するPowerShellワンライナーを作成します(/k)そしてすぐにこれをエスカレートします Start-Process -Verb RunAs.
    2. 既存のPowerShellセッションからこのワンライナーを実行し、プロセスツリーに隠れたPowerShellインスタンスが含まれていることを確認します and 「Start-Process」で起動されたCMDインスタンス /k.
    3. このエスカレートされたCMDを使用して、最終ペイロードをダウンロードして実行することができます。
  • 回帰テストスクリプト:

    # ---------------------------------------------------------
    # シミュレートされた敵スクリプト – 隠れた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
    
    # (このシンプルなデモではなし)もし作成された場合、一時ファイルをオプションで削除