一覧に戻る

ブログ

リモート AI コーディングのセキュリティベストプラクティス

AI エージェントがコードベースへの書き込み権限を持ち、ネットワーク経由で制御する場合のセキュリティ判断について。

公開日 タグ: セキュリティ / ガイド / ベストプラクティス / seo
ブログ

このカテゴリのプロダクト/開発アップデートを確認できます。

カテゴリを見る

AI コーディングエージェントをリモートで運用すると、デスクに座っている時には存在しないセキュリティ上の考慮が必要になります。エージェントはコードベースにアクセスし、コマンドを実行し、ファイルを変更できます。そしてスマホと Mac の間のネットワークパスは、信頼できないネットワークを通る可能性があります。

リモート AI コーディングを避ける理由ではなく、脅威モデルを理解し、適切な判断を行う理由です。

脅威モデル

保護対象:

  • ソースコード(知的財産、設定ファイル内のシークレット)
  • 開発環境(コマンド実行能力)
  • Mac 上の git 認証情報と SSH キー
  • 利用サービスの API キー

脅威アクター:

  • インターネット上のサービスを探索する攻撃者
  • 共有 WiFi でのネットワーク盗聴者
  • 端末を発見・窃取した人物
  • ツールのサプライチェーン攻撃

攻撃面:

  • スマホと Mac 間のネットワーク接続
  • 認証メカニズム
  • AI エージェントのファイルシステム権限
  • Mac 上のサーバープロセス

レイヤー 1: ネットワークセキュリティ

暗号化接続を使用する

  • LAN モード (ws://): トラフィックは暗号化されない。自宅 WiFi では許容できるが、公共ネットワークでは不可。
  • Cloudflare Tunnel (wss://): TLS で暗号化。インターネットを経由する接続にはこちらを使用。

判断基準: 自分が管理するネットワーク(自宅、オフィス)なら LAN モード。それ以外は Cloudflare Tunnel。

ポートを直接公開しない

ルーターでポート 8765 を Mac に転送しないでください。Cloudflare Tunnel は Mac からのアウトバウンド接続のみで、インバウンドポートは不要です。

レイヤー 2: 認証

API キーの設定

  • LAN 接続: API キーはオプション。ローカルネットワークが信頼境界として機能。
  • Cloudflare Tunnel 接続: API キーは必須。未認証の接続は拒否される。

API キーのベストプラクティス

  1. 生成されたキーを使用。 Mac アプリが生成する 32 文字のランダムキーを使う。
  2. 安全に転送。 QR コード機能で直接転送。メールや Slack では送らない。
  3. 定期的にローテーション。 漏洩の疑いがあれば新しいキーを生成。
  4. 再利用しない。 他のサービスの認証情報として使わない。

レート制限

サーバーは認証失敗に対してレート制限を実施します。32 文字のランダムキーに対するブルートフォースは計算上不可能ですが、多層防御として機能します。

レイヤー 3: アクセス制御

パス制限

CLAUDE_REMOTE_ALLOWED_PATH 環境変数で Claude Code がアクセスできるディレクトリを制限できます:

export CLAUDE_REMOTE_ALLOWED_PATH=/Users/you/code

Claude Code の権限モード

  1. 標準モード: claude — リスクのある操作前に承認を求める
  2. 権限スキップモード: claude --dangerously-skip-permissions — 承認なしで実行

リモート利用の推奨: 常に標準モードを使用してください。承認プロンプトは iPhone から Y/N をタップするだけで、リモートでも特に価値があります。

サーバーサイド検証

lib/validators.js がコマンド形式、パストラバーサル、入力長をチェックします。lib/execSafe.js は安全チェック付きでコマンド実行をラップします。

レイヤー 4: 物理・デバイスセキュリティ

Mac のセキュリティ

  • FileVault(フルディスク暗号化)を有効化
  • 強力なログインパスワードを設定
  • 自動画面ロック(5分以内)を有効化
  • サーバー稼働中は Mac を物理的に安全な場所に設置

iPhone のセキュリティ

  • Face ID または強力なパスコードを有効化
  • iOS を最新に保つ
  • ロック解除状態で放置しない

レイヤー 5: 運用セキュリティ

プロンプトに含めるべきでないもの

  • パスワードや API キー → 環境変数名で参照する
  • データベース認証情報
  • ユーザーの個人情報

承認前に確認する

Y/N プロンプトが表示されたら、必ず内容を読んでから承認してください。ファイル削除、シェルコマンド実行、パッケージインストールなどが含まれます。

イベントログを監視する

Mac アプリのイベントログを定期的に確認し、自分のセッションとコマンドのみが記録されていることを検証してください。

脅威シナリオと対応

スマホの紛失・盗難

  1. Mac で新しい API キーを即座に生成(旧キーを無効化)
  2. 状況が解決するまでサーバーを停止
  3. 端末をリモートワイプ

API キーの漏洩

  1. Mac アプリで新しい API キーを生成
  2. Tunnel URL も漏洩した場合は cloudflared を再起動
  3. イベントログで不正アクセスを確認
  4. git 履歴で予期しないコミットを確認

信頼できない WiFi ネットワーク

設計で対処済み。Cloudflare Tunnel は TLS を使用するため、侵害されたネットワークでも攻撃者が見えるのは暗号化された WebSocket フレームのみです。

Claude Code による意図しない変更

  1. iPhone から Ctrl+C で中断
  2. git diff で変更を確認
  3. 必要なら git checkout . または git reset で元に戻す

セキュリティチェックリスト

  • インターネットアクセスには Cloudflare Tunnel を有効化
  • API キーを設定(32文字以上のランダム文字列)
  • API キーは QR コードで転送
  • Mac のファイアウォールを有効化
  • Mac の FileVault を有効化
  • Mac の自動ロックを設定
  • iPhone のパスコード/Face ID を有効化
  • Claude Code は標準モードで実行
  • CLAUDE_REMOTE_ALLOWED_PATH でファイルシステムアクセスを制限
  • 作業開始前に直近の git commit をリカバリポイントとして確保

Tactic Remote を試す

スマートフォンからコーディングエージェントを操作

Mac、Windows、Linux 上の Claude Code や Codex などに接続。iPhone や iPad で進捗を確認し、次の指示を送れます。