世界を動かす技術を、日本語で。

GitHub MCPの悪用:MCPを通じたプライベートリポジトリへのアクセス

概要

  • Invariant がGitHub MCP統合に深刻な脆弱性を発見
  • 攻撃者が 悪意のあるGitHub Issue を使い、プライベートリポジトリのデータ漏洩を誘発
  • Toxic Agent Flow と呼ばれる新たな攻撃手法
  • 既存のモデルアラインメントや一般的な防御策では防げない
  • 対策として 権限制御継続的なセキュリティ監視 が推奨

GitHub MCP統合の重大な脆弱性:Toxic Agent Flow攻撃

  • GitHub MCP統合 (14,000スター超の人気プロジェクト)にて発見された脆弱性
  • 攻撃者は パブリックリポジトリ に悪意のあるIssueを作成し、エージェントを誘導
  • エージェントがIssueを参照するだけで プロンプトインジェクション が発生
  • プライベートリポジトリから機密情報を パブリックリポジトリのPR として漏洩
  • Invariant の自動セキュリティスキャナーが初めて検出した事例

攻撃シナリオ

  • ユーザーは Claude Desktop などのMCPクライアントを使用
  • 2つのリポジトリを所有:パブリック用とプライベート用
  • 攻撃者がパブリックリポジトリに プロンプトインジェクション を含むIssueを投稿
  • ユーザーが「open issuesを見て」とエージェントに依頼→攻撃が発動
  • エージェントが プライベート情報 をPRとしてパブリックに投稿、攻撃者が閲覧可能

実証デモ

  • ukend0464/pacman (パブリックリポジトリ)と複数のプライベートリポジトリを用意
  • パブリックリポジトリに 悪意のあるIssue を設置
  • Claude 4 Opusを使い、ユーザーの一言で攻撃成立
  • 「Always Allow」設定のユーザーは特に危険
  • プルリクエスト経由で 個人情報・機密情報 が流出

Toxic Agent Flowの検出と対策

  • この攻撃は MCPツール自体の脆弱性ではなく、エージェントシステムの設計上の問題
  • 信頼できるツール でも、外部プラットフォーム経由で情報汚染が可能
  • 手動の分析は困難で非効率、 Invariantの自動検出ツール が有効
  • MCP-scanGuardrails などの専用スキャナー・ガードレール導入を推奨

主な対策

  • きめ細かな権限制御 の実装
    • エージェントがアクセスできるリポジトリを 最小限 に限定
    • Invariant Guardrails のような動的コンテキスト制御の導入
    • 例:1セッションで1リポジトリのみアクセス許可するポリシー
  • 継続的なセキュリティ監視
    • MCP-scan のプロキシモードでリアルタイム監査
    • 監査証跡の確保、攻撃兆候の早期発見

モデルアラインメントだけでは防げない理由

  • Claude 4 Opus のような高度なAIモデルでも、この攻撃には無力
  • 一般的なプロンプトインジェクション検出器も 検知困難
  • セキュリティは システムレベル での実装が必須
  • モデル単体の安全性だけでは 運用環境ごとの脅威 に対応できない

結論・今後の展望

  • GitHub MCPサーバーを利用するすべてのエージェントが 潜在的な被害対象
  • 類似の攻撃は GitLab Duo など他の開発ツールでも報告
  • セキュリティスキャナーガードレール の導入が急務
  • インシデント未然防止のため、 Invariant の早期アクセスプログラム参加を推奨

参考・連絡先


著者: Marco Milanta、Luca Beurer-Kellner