はじめに
CursorはAI駆動開発を強力に支援するツールですが、その便利さの裏にはセキュリティリスクが潜んでいます。コードがサーバーに送信される仕組み、外部MCPサーバーとの連携、ターミナルコマンドの自動実行など、適切に設定しなければ機密情報の漏洩や意図しない操作につながる可能性があります。
本記事では、Cursorを安全に使用するためのセキュリティ設定とベストプラクティスを解説します。この記事を読むことで、以下のことができるようになります。
- プライバシーモードを理解し、データ保護の設定を適切に行える
- MCPサーバーの信頼性を評価し、安全に導入できる
- APIキーと機密情報を安全に管理できる
- Auto-run設定のリスクを理解し、適切に制御できる
- 組織でCursorを安全に展開するための方針を策定できる
実行環境と前提条件
実行環境
| 項目 | 要件 |
|---|---|
| オペレーティングシステム | Windows 10以上、macOS 10.15以上、Ubuntu 20.04以上 |
| Cursor バージョン | 2.3以降(2026年1月時点の安定版) |
| インターネット接続 | 必須(AIモデル利用に必要) |
前提条件
- Cursorがインストールされ、アカウントでログイン済みであること
- Cursor Agentの基本操作を理解していること
- セキュリティに関する基本的な知識があること
期待される結果
本記事の内容を実践することで、以下の状態を達成できます。
- Cursorのセキュリティアーキテクチャを理解し、リスクを把握している
- 適切なプライバシー設定が有効化されている
- 機密情報が適切に保護されている
- 組織のセキュリティポリシーに準拠したCursor運用ができる
Cursorのセキュリティアーキテクチャ
Cursorのセキュリティを理解するには、まずデータがどのように処理されるかを把握する必要があります。
データフローの概要
Cursorを使用する際、以下のデータがサーバーに送信されます。
flowchart TD
A[Cursorクライアント] --> B[Cursorサーバー]
B --> C[AIモデルプロバイダー]
subgraph "送信されるデータ"
D[コードコンテキスト]
E[会話履歴]
F[ファイル構造]
end
D --> A
E --> A
F --> A
subgraph "AIプロバイダー"
G[OpenAI]
H[Anthropic]
I[Google]
J[Fireworks]
end
C --> G
C --> H
C --> I
C --> JAIリクエストには通常、以下の情報が含まれます。
- 直近で閲覧したファイルの内容
- 会話履歴
- Language Serverの情報に基づく関連コード
- コードベースインデックスからの検索結果
インフラストラクチャの構成
Cursorのインフラは主に以下のサービスで構成されています。
| プロバイダー | 役割 | データの扱い |
|---|---|---|
| AWS | メインインフラ(米国) | コードデータを処理・保存 |
| Cloudflare | リバースプロキシ | コードデータを通過 |
| Turbopuffer | ベクトルDB | 難読化されたコード埋め込みを保存 |
| Fireworks/Baseten/Together | カスタムモデルホスト | コードデータを処理 |
| OpenAI/Anthropic/Google | AIモデル | コードデータを処理 |
重要な点として、Cursorのインフラは中国国内には存在せず、中国企業をサブプロセッサーとして直接利用していません。
SOC 2 Type II認証
CursorはSOC 2 Type II認証を取得しています。これは、セキュリティ、可用性、処理の完全性、機密性、プライバシーに関する厳格な基準を満たしていることを示します。認証レポートは trust.cursor.com で確認できます。
プライバシーモードの設定
プライバシーモードは、Cursorのセキュリティにおける最も重要な設定です。
プライバシーモードとは
プライバシーモードを有効にすると、以下の保証が得られます。
- コードデータがモデルプロバイダーによって保存されない
- コードデータがAIモデルの学習に使用されない
- すべてのモデルプロバイダーとの間でゼロデータ保持契約が適用される
Cursorユーザーの50%以上がプライバシーモードを有効にしています。
プライバシーモードの有効化
個人アカウントでプライバシーモードを有効にする手順は以下のとおりです。
- Cursor Settingsを開く(
Ctrl + Shift + J/Cmd + Shift + J) - 「Privacy」セクションに移動
- 「Privacy Mode」をオンにする
プライバシーモードの種類
Cursorには複数のプライバシー設定があります。
| モード | 説明 | 推奨対象 |
|---|---|---|
| Privacy Mode | コードが保存・学習に使用されない | 機密性の高いプロジェクト |
| Privacy Mode (Legacy) | 従来のプライバシーモード | 既存ユーザー |
| Share Data | データ共有を許可(デフォルト) | 個人プロジェクト |
チームでのプライバシーモード強制
Business/Enterpriseプランでは、チーム管理者がプライバシーモードを強制できます。
- Cursor管理ダッシュボードにアクセス
- チーム設定を開く
- 「Enforce Privacy Mode」を有効化
チームに所属するユーザーは、デフォルトでプライバシーモードが強制的に有効化されます。クライアントは5分ごとにサーバーに確認し、チームのプライバシー設定を同期します。
プライバシーモードの技術的実装
Cursorは、プライバシーモードの保証を技術的に実現するために、以下の仕組みを採用しています。
- 各リクエストに
x-ghost-modeヘッダーを付与 - プライバシーモード専用のサーバーレプリカでリクエストを処理
- プライバシーモード用レプリカではログ出力がデフォルトで無効化
コードベースインデックスのセキュリティ
コードベースインデックスは、セマンティック検索を可能にする強力な機能ですが、セキュリティ面での考慮も必要です。
インデックスの仕組み
コードベースインデックスが有効な場合、以下の処理が行われます。
- ワークスペースのファイルがCursorサーバーと同期
- ファイルがチャンクに分割され、埋め込み(ベクトル)に変換
- 埋め込みがTurbopufferに保存
- ファイルパスは暗号化して保存
ファイルパスの難読化
ファイルパスは以下の方法で難読化されます。
- パスは
/と.で分割 - 各セグメントはクライアントに保存された秘密鍵で暗号化
- 決定的な短い6バイトのnonceを使用
この方法では、ディレクトリ階層の一部情報は漏洩する可能性がありますが、多くの情報は保護されます。
埋め込みからの情報復元リスク
学術研究では、場合によっては埋め込みから元のテキストを復元できることが示されています。ただし、現在の攻撃手法は特定の条件下でのみ有効であり、Cursorのケースでは実行が困難です。
それでも、攻撃者がベクトルデータベースに侵入した場合、インデックスされたコードベースについて何らかの情報を得る可能性はあります。
インデックス対象の制御
機密性の高いファイルをインデックスから除外するには、.cursorignore ファイルを使用します。
# 機密設定ファイル
.env
.env.*
*.pem
*.key
secrets/
# 認証情報
credentials/
auth/tokens/
# 内部ドキュメント
internal-docs/
confidential/
# 大きなデータファイル
data/
*.sql
*.dump
.cursorignore に指定されたファイルは、インデックスだけでなく、すべてのAIリクエストからも除外されます。
インデックスの無効化
コードベースインデックス自体を無効化することも可能です。
- Cursor Settingsを開く
- 「Indexing & Docs」セクションに移動
- インデックス機能をオフにする
ただし、インデックスを無効化すると、セマンティック検索が利用できなくなり、AIの回答精度が低下する可能性があります。
MCPサーバーの信頼性確認
Model Context Protocol(MCP)は、Cursorを外部サービスと連携させる強力な機能ですが、セキュリティリスクも伴います。
MCPサーバーのリスク
MCPサーバーは以下の操作が可能です。
- 外部APIへのアクセス
- ファイルシステムの操作
- コマンドの実行
- ユーザーに代わってのデータ送信
信頼できないMCPサーバーをインストールすると、機密情報の漏洩やシステムの侵害につながる可能性があります。
MCPサーバーの評価基準
MCPサーバーを導入する前に、以下の基準で評価してください。
| 基準 | 確認項目 |
|---|---|
| 提供元 | 信頼できる開発者・組織か |
| ソースコード | 公開されているか、監査可能か |
| 権限 | 必要最小限の権限か |
| 更新頻度 | 定期的にメンテナンスされているか |
| コミュニティ | ユーザーからのフィードバックはあるか |
安全なMCPサーバーの選定
以下の提供元からのMCPサーバーは、一般的に信頼性が高いと考えられます。
- Anthropic公式(@anthropic/mcp-server-*)
- Model Context Protocol公式リポジトリ
- 著名なオープンソースプロジェクト
MCPサーバーの権限制限
MCPサーバーには必要最小限の権限のみを付与します。
|
|
上記の例では、読み取り専用のGitHubトークンを使用しています。フルアクセスのトークンではなく、必要な権限のみを持つトークンを使用してください。
MCPツールの有効化・無効化
Agentパネルから、MCPツールを個別に有効・無効にできます。
- Agentパネルの「Available Tools」を確認
- 使用しないツールは無効化
- セッションごとに必要なツールのみを有効化
APIキーの安全な管理
APIキーやシークレットの管理は、セキュリティの基本です。
環境変数の使用
APIキーは直接設定ファイルにハードコードせず、環境変数を使用します。
|
|
環境変数の設定方法
OSごとの環境変数設定方法は以下のとおりです。
Windows(PowerShell)
|
|
macOS/Linux
|
|
シークレット管理ツールの活用
より安全な管理には、シークレット管理ツールを使用します。
| ツール | 特徴 |
|---|---|
| 1Password CLI | チーム間でのシークレット共有 |
| HashiCorp Vault | エンタープライズ向け |
| AWS Secrets Manager | AWS環境との統合 |
| Azure Key Vault | Azure環境との統合 |
.cursorignoreによる除外
機密情報を含むファイルをAIリクエストから除外します。
# 環境変数ファイル
.env
.env.local
.env.production
.env.*.local
# 認証情報
*.pem
*.key
*.p12
*.pfx
# 設定ファイル
config/secrets.yml
config/credentials.yml.enc
機密情報の誤送信防止
コードに機密情報が含まれていないか、定期的にチェックします。
|
|
Auto-run設定のリスクと制御
Auto-run設定は生産性を向上させますが、セキュリティリスクも伴います。
Auto-runのリスク
Auto-runを有効にすると、Agentが以下の操作を自動的に実行する可能性があります。
- ファイルの作成・変更・削除
- ターミナルコマンドの実行
- 外部APIへのリクエスト
悪意のある指示や誤った指示により、意図しない操作が実行されるリスクがあります。
Auto-run設定レベル
Auto-runには3つの設定レベルがあります。
| レベル | 説明 | リスク | 推奨シーン |
|---|---|---|---|
| Off | すべての操作に確認が必要 | 最低 | 機密プロジェクト |
| Safe | 安全な操作のみ自動実行 | 中 | 一般的な開発 |
| All | すべての操作を自動実行 | 最高 | 信頼できる環境のみ |
Safeモードの動作
Safeモードでは、以下の操作が自動実行されます。
- ファイルの読み取り
- コードベース検索
- Grep検索
- 安全なターミナルコマンド(lint、format等)
以下の操作は確認が必要です。
- ファイルの書き込み
- 破壊的なターミナルコマンド
- 外部APIへのリクエスト
許可リストと拒否リストの設定
Auto-runの動作をカスタマイズできます。
|
|
サンドボックス化されたターミナル
Cursor 2.0以降、macOSとLinuxでは、Agentのコマンドがデフォルトでサンドボックス内で実行されます。
サンドボックスの特徴は以下のとおりです。
- ワークスペースへの読み書きは可能
- インターネットアクセスは制限(設定で変更可能)
- ファイルシステムへの不正アクセスをブロック
Enterpriseでの管理者コントロール
Enterpriseプランでは、管理者が以下の設定を強制できます。
- サンドボックスの有効/無効
- Auto-runレベルの上限
- 許可/拒否リストの強制適用
機密情報の取り扱いベストプラクティス
機密情報を安全に取り扱うためのベストプラクティスを紹介します。
機密情報の分類
まず、プロジェクト内の機密情報を分類します。
| 分類 | 例 | 推奨対策 |
|---|---|---|
| 最高機密 | 本番DBパスワード、暗号化キー | .cursorignore、別リポジトリ |
| 機密 | APIキー、認証トークン | 環境変数、シークレット管理 |
| 内部 | 内部URL、設計ドキュメント | プライバシーモード |
| 公開可 | オープンソースコード | 通常設定 |
プロジェクト構成の工夫
機密情報を含むファイルを分離した構成にします。
project/
├── src/ # AIリクエストに含める
├── tests/ # AIリクエストに含める
├── docs/ # AIリクエストに含める
├── config/
│ ├── default.json # AIリクエストに含める
│ └── production.json # .cursorignoreで除外
├── secrets/ # .cursorignoreで除外
│ ├── .env.production
│ └── certificates/
└── .cursorignore
Rulesによるセキュリティ指示
Project Rulesを使って、Agentにセキュリティ方針を指示します。
|
|
コードレビューでのセキュリティチェック
AIが生成したコードは、以下の観点でレビューします。
|
|
アカウントの削除とデータ消去
Cursorを使用しなくなった場合や、データの完全消去が必要な場合の手順です。
アカウント削除の手順
- Settings dashboard にアクセス
- 「Advanced」をクリック
- 「Delete Account」をクリック
- 確認ダイアログで削除を実行
削除されるデータ
アカウント削除により、以下のデータが削除されます。
- アカウント情報
- インデックスされたコードベース
- チャット履歴
- 設定情報
データは30日以内に完全に削除されることが保証されています(バックアップからの削除を含む)。
注意事項
プライバシーモードが有効でない期間にデータがモデル学習に使用されていた場合、既存の学習済みモデルがすぐに再学習されるわけではありません。ただし、その後に学習される新しいモデルでは、削除済みのデータは使用されません。
組織でのセキュリティポリシー策定
組織でCursorを導入する際のセキュリティポリシー策定のポイントを紹介します。
ポリシーに含めるべき項目
|
|
チーム設定の展開
Business/Enterpriseプランでは、以下の設定をチーム全体に強制できます。
- プライバシーモード
- Team Rules
- 許可されたAIモデル
- Auto-run設定の上限
脆弱性報告
Cursorに脆弱性を発見した場合は、以下の連絡先に報告してください。
- セキュリティ脆弱性: security-reports@cursor.com
- セキュリティに関する質問: security@cursor.com
Cursorは脆弱性報告を5営業日以内に受領確認し、可能な限り速やかに対応することを約束しています。
まとめ
Cursorを安全に使用するためのポイントを振り返ります。
- プライバシーモード: 機密性の高いプロジェクトでは必ず有効化
- コードベースインデックス: .cursorignoreで機密ファイルを除外
- MCPサーバー: 信頼できる提供元のみから導入し、必要最小限の権限を付与
- APIキー管理: 環境変数またはシークレット管理ツールを使用
- Auto-run設定: Safeモード以下で運用し、許可/拒否リストを設定
- 組織ポリシー: Business/Enterpriseプランでセキュリティ設定を強制
AI駆動開発は生産性を大幅に向上させますが、セキュリティを軽視すると重大なリスクにつながります。本記事で紹介した設定とベストプラクティスを実践し、安全にCursorを活用してください。