SmartLoaderがOura Ring MCPをクローンしてサプライチェーン攻撃を仕掛ける
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サーバーを法医学的にレビューし、再感染を防ぐために依存性の確認を強化します。
攻撃フロー
検出
疑わしいスケジュールされたタスク(監査経由)
表示
サプライチェーン攻撃を展開するためにSmartLoaderがOura Ring MCPをクローンすることを検出するためのIOCs(DestinationIP)
表示
サプライチェーン攻撃を展開するためにSmartLoaderがOura Ring MCPをクローンすることを検出するためのIOCs(SourceIP)
表示
AppData内の疑わしいLuaJITインタープリター実行[Windowsプロセス作成]
表示
SmartLoader偽GitHubエコシステムの検出[Webサーバー]
表示
シミュレーションの実行
前提条件: テレメトリーとベースラインのプレフライトチェックが成功している必要があります。
理論的根拠: このセクションは、検出ルールをトリガーするために設計された敵の技術(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が削除されました。"