SOC Prime Bias: 重大

18 2月 2026 16:17

SmartLoaderがOura Ring MCPをクローンしてサプライチェーン攻撃を仕掛ける

Author Photo
Ruslan Mikhalov SOC Primeの脅威リサーチ責任者 linkedin icon フォローする
SmartLoaderがOura Ring MCPをクローンしてサプライチェーン攻撃を仕掛ける
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

要約

SmartLoaderは偽のGitHubアカウントとOura Ring MCPサーバーを使ってMCPレジストリを汚染しました。このトロイの木馬化されたサーバーは、開発者の認証情報、暗号資産ウォレットのデータ、および健康情報を盗むために設計されたStealCインフォスティーラーを配信しました。この活動は、AI対応の健康統合がサプライチェーンの足掛かりになる可能性を示しています。

調査

研究者は、実際のOura MCPリポジトリをフォークし、見分けがつかない類似品を公開した少なくとも5つの偽造されたGitHubプロファイルを特定しました。悪意のあるフォークは新しいアカウントの下で作成され、MCPレジストリに提出されました。動的分析により、ユーザーのAppDataフォルダーに段階的に配置されたLuaJITベースのペイロードと、Realtekオーディオドライバを装った予定タスクを介した持続性が発見されました。

軽減策

MCPサーバーの在庫を監査し、インストール前に来歴の確認を強制し、AppDataから実行ファイルを起動する予定タスクをアラートで通知します。Egress制御を適用し、既知の暗号資産とC2エンドポイントへのトラフィックをブロックします。GitHubの貢献者の履歴とリポジトリの系譜を承認時に検証します。

対応

検出時には、ワークステーションを分離し、悪意のあるタスクを終了し、権限のないAppData実行ファイルを削除し、公開された認証情報とAPIキーを回転させます。危険にさらされたMCPサーバーを法医学的にレビューし、再感染を防ぐために依存性の確認を強化します。

“graph TB %% クラス定義 classDef action fill:#99ccff classDef malware fill:#ffcc99 classDef process fill:#ff9999 classDef file fill:#cccccc classDef technique fill:#c0c0c0 %% ノード定義 action_supply_chain[“<b>アクション</b> – <b>T1195.001 サプライチェーン妥協</b><br /><b>説明</b>: 敵対者がソフトウェアサプライチェーンを妥協して悪意のあるコードを配布します。”] class action_supply_chain action malware_trojanized_server[“<b>マルウェア</b> – <b>名称</b>: トロイの木馬化されたOura MCPサーバー<br /><b>目的</b>: 妥協したパッケージを介して配信。”] class malware_trojanized_server malware action_developer_install[“<b>アクション</b> – <b>パッケージのインストール</b><br /><b>説明</b>: 開発者が妥協したMCPパッケージをインストールします。”] class action_developer_install action file_resource_txt[“<b>ファイル</b> – <b>名称</b>: resource.txt<br /><b>テクニック</b>: T1027 隠されたファイル, T1059 コマンドとスクリプトインタープリター”] class file_resource_txt file malware_luajit_script[“<b>マルウェア</b> – <b>LuaJIT スクリプト</b><br /><b>テクニック</b>: T1027, T1059”] class malware_luajit_script malware process_odmw[“<b>プロセス</b> – <b>名称</b>: ODMw.exe (LuaJIT インタープリター)”] class process_odmw process process_odmy[“<b>プロセス</b> – <b>名称</b>: ODMy.exe (LuaJIT インタープリター)”] class process_odmy process tech_T1053[“<b>テクニック</b> – T1053 スケジュールされたタスク/ジョブ<br /><b>説明</b>: 持続性のためにスケジュールされたタスクを作成します。”] class tech_T1053 technique process_task_odmw[“<b>プロセス</b> – <b>スケジュールされたタスク</b>: RealtekAudioManager_ODMw”] class process_task_odmw process process_task_odmy[“<b>プロセス</b> – <b>スケジュールされたタスク</b>: AudioManager_ODMy”] class process_task_odmy process malware_socket3[“<b>マルウェア</b> – <b>名称</b>: socket3.lua (C2ペイロード)”] class malware_socket3 malware tech_T1102[“<b>テクニック</b> – T1102 Webサービス<br /><b>説明</b>: コマンドとコントロールのためにHTTPベースのウェブサービスを使用します。”] class tech_T1102 technique tech_T1041[“<b>テクニック</b> – T1041 C2チャネル経由のデータ流出<br /><b>説明</b>: 盗まれたデータをC2チャネル経由で送信する。”] class tech_T1041 technique malware_stealc[“<b>マルウェア</b> – <b>名称</b>: StealC インフォスティーラー”] class malware_stealc malware tech_T1555_003[“<b>テクニック</b> – T1555.003 ファイル内の資格情報: ブラウザー パスワード/クッキー<br /><b>説明</b>: 保存されたブラウザーの資格情報を盗む。”] class tech_T1555_003 technique tech_T1552_001[“<b>テクニック</b> – T1552.001 ファイル内の資格情報: パスワードストア<br /><b>説明</b>: Discordトークン、暗号資産ウォレット、SSHキー、API認証情報を盗む。”] class tech_T1552_001 technique %% 攻撃の流れを示す接続 action_supply_chain u002du002d>|提供| malware_trojanized_server malware_trojanized_server u002du002d>|インストールによる| action_developer_install action_developer_install u002du002d>|作成| file_resource_txt file_resource_txt u002du002d>|含む| malware_luajit_script malware_luajit_script u002du002d>|ドロップ| process_odmw malware_luajit_script u002du002d>|ドロップ| process_odmy process_odmw u002du002d>|使用| tech_T1053 process_odmy u002du002d>|使用| tech_T1053 tech_T1053 u002du002d>|作成| process_task_odmw tech_T1053 u002du002d>|作成| process_task_odmy process_task_odmw u002du002d>|実行| process_odmw process_task_odmy u002du002d>|実行| process_odmy process_odmw u002du002d>|起動| malware_socket3 process_odmy u002du002d>|起動| malware_socket3 malware_socket3 u002du002d>|通信経由| tech_T1102 malware_socket3 u002du002d>|流出経由| tech_T1041 malware_socket3 u002du002d>|展開| malware_stealc malware_stealc u002du002d>|盗む| tech_T1555_003 malware_stealc u002du002d>|盗む| tech_T1552_001 “

攻撃フロー

シミュレーションの実行

前提条件: テレメトリーとベースラインのプレフライトチェックが成功している必要があります。

理論的根拠: このセクションは、検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行を詳述しています。コマンドと説明は、特定されたTTPを直接反映し、検出ロジックによって予想される正確なテレメトリーを生成することを目的としています。

  • 攻撃の説明とコマンド:
    偽のGitHubリポジトリをホストする攻撃者(例: https://github.com/SiddhiBagul/MCP-oura) は正当なSmartLoaderペイロードをコピーし、そのブランドを変更し、公開可能にしました。その後、悪意のあるリポジトリを curl を使ってダウンロードするスクリプトを実行する内部のホストが妥協されます。このアクションにより、プロキシによって記録され、ルール内のインジケータURLの1つと一致するHTTP GETリクエストが生成されます。

  • リグレッションテストスクリプト:

    #!/usr/bin/env bash
    # SmartLoader偽GitHubダウンロードシミュレーション – Sigmaルールをトリガー
    
    MALICIOUS_URLS=(
        "https://github.com/SiddhiBagul/MCP-oura"
        "https://github.com/YuzeHao2023/MCP-oura"
        "https://github.com/punkpeye/MCP-oura"
        "https://github.com/dvlan26/MCP-oura"
        "https://github.com/halamji/MCP-oura"
        "https://github.com/yzhao112/MCP-oura"
    )
    
    for url in "${MALICIOUS_URLS[@]}"; do
        echo "[+] 悪意のあるリポジトリをフェッチしています: $url"
        # -Lフラグはリダイレクトをフォローします;-sは進行を黙らせます;-oは出力を無視します。
        curl -s -L -o /dev/null "$url"
    done
    
    echo "[+] シミュレーション完了。"
  • クリーンアップコマンド:

    # ファイルは永続化されませんでしたが、シェル履歴からURLをクリアします
    history -d $(history | grep -n "github.com" | cut -d: -f1)
    echo "[+] クリーンアップ完了 – 履歴からURLが削除されました。"