Claude Codeは安全か|承認したコマンドがどこまで届くかを調べた
自分のパソコンでコマンドを実行させる以上、不安になるのは当然です。許可の仕組みがどこまで守ってくれて、どこからは守らないのかを、公式の記載を確認したうえで整理します。
結論:守られる範囲と、守られない範囲がある
「許可を求めてくるから安全」ではありません。
許可の仕組みは確かにあります。しかしどこまでが仕組みで守られていて、どこからが自分の判断なのかを分けて理解しないと、危ない使い方になります。
| 守られるか | |
|---|---|
| 勝手にファイルを書き換える | 仕組みで止まる(許可が要る) |
| 作業フォルダの外を読み書きする | 確認が入る |
| 承認したコマンドが外まで届く | 止まらない |
| 外部から読み込んだ内容に指示が混ざる | 対策はあるが完全ではない |
| MCPサーバーの中身 | 審査されていない |
下の3つが、日本語ではあまり書かれていない部分です。 ここを順に説明します。
許可の仕組み:2つのモード
まず土台です。セッションには許可モードがあり、何を聞かずに実行してよいかが決まります。
Auto モード(ターミナルやVS Codeで始めたときの標準)
あなたの代わりに別の判定用モデルが行動を審査し、危険と判断したものを止めます。 自分で決めた許可・拒否のルールはそのまま効きます。
Manual モード
読み取り専用から始まります。 ファイルを変更したりコマンドを実行したりするときは、その都度あなたに聞きます。 一度だけ許可するか、以後ずっと許可するかを選べます。
ls cat git status のような読むだけのコマンドは、聞かずに実行されます。
設定は /permissions で確認・変更できます。
守られない点①:承認したコマンドは外まで届く
ここが最も重要です。
Manualモードでは、作業フォルダの外を読み書きしようとすると確認が入ります。 一見、フォルダの中に閉じ込められているように見えます。
しかし公式にはこう書かれています。
この境界は「許可の確認」であって、承認したBashコマンドは、あなたのユーザー権限で届く範囲ならどこにでも書き込めます。
つまりフォルダの壁は、OSレベルの壁ではありません。 確認画面を出しているだけです。
「このフォルダで作業しているから、外には影響しない」という理解は誤りです。 承認した瞬間、そのコマンドはあなたと同じ権限で動きます。
本当に閉じ込めたいなら
サンドボックスを使ってください。 /sandbox で、ファイルシステムとネットワークをOSレベルで隔離できます。
確認を減らしながら安全性を保てるので、不安なら最初に設定する価値があります。
守られない点②:外部の文章に指示が混ざる
プロンプトインジェクションと呼ばれる問題です。
Webページやファイルの中に「これまでの指示を無視して〜しろ」という文章が仕込まれていると、それを指示として読んでしまう可能性があります。
対策は入っています。
curlやwgetのようにWebから取ってくるコマンドは、標準では自動承認されません- Webページを取得するとき、生のページをそのまま読むのではなく、別のモデルが要約したものを受け取ります
- 解析しきれないコマンドは、実行前に必ず確認が入ります
- 信頼していないフォルダで起動すると、確認画面が出ます
それでも公式はこう書いています。
これらの保護でリスクは大きく下がるが、あらゆる攻撃に完全に耐えるシステムは存在しない。
実務上の結論は1つです。信頼できない文章を、そのまま渡さないこと。
守られない点③:MCPサーバーは審査されていない
見落とされやすい点です。
Claude CodeはMCPサーバーという仕組みで外部サービスとつながります。便利ですが、ここが最も無防備な入口になり得ます。
公式の記載です。
AnthropicはMCPサーバーのセキュリティ監査も管理も行っていない。
ディレクトリに載っているものは掲載基準の確認を受けていますが、それは安全性の保証ではありません。
さらに、プロジェクトの .mcp.json を見ても、使われているサーバーが全部分かるわけではありません。 別の場所で設定されたものやプラグインが追加したものがあるためです。
勧められているのは次の2つです。
- 自分で書いたMCPサーバーを使う
- 信頼できる提供元のものだけを使う
私自身も外部のMCPサーバーを接続していますが、接続したものを把握しているかは定期的に見るようにしています。
実際に使っている設定方針
仕組みの話だけでは使えないので、私の運用を書きます。
判断は操作の取り返しのつきやすさで分けています。
| 操作の性質 | 設定 | 理由 |
|---|---|---|
| 読むだけ(一覧・検索・表示) | 許可する | 危険がなく、確認の回数が大幅に減る |
| 書き換える(上書き・削除) | 都度確認 | 間違いに気づく機会を残す |
| 外に出す(公開・送信・課金) | 必ず確認 | 取り消しても、見た人には届いている |
一番大事なのは3行目です。
当サイトでは公開の操作を必ず確認する側に残しています。間違ったものを公開すると、取り消しても手遅れだからです。
「楽だから」で全部許可すると、事故に気づく機会がなくなります。 確認の煩わしさは、事故を検出する仕組みでもあります。
認証情報の保管
APIキーやトークンがどこに置かれるかも確認しました。
| OS | 保管場所 |
|---|---|
| macOS | キーチェーン |
| Linux | 権限600のファイル(本人だけが読める) |
| Windows | ユーザープロファイルの権限を引き継ぐファイル |
平文でそのへんに置かれるわけではありません。
不安なら、この順で試す
いきなり本番の環境で使わないでください。
- 読むだけの作業から始める — 「このフォルダに何が入っているか説明して」
/permissionsで現在の設定を見る- サンドボックスを設定する — OSレベルで隔離される
- 小さい書き換えを試す — 結果を自分の目で確認できる規模で
- 慣れてから、繰り返し作業に広げる
大事なコードを扱うなら、プロジェクトごとに許可設定を分け、定期的に /permissions で見直すことが公式にも勧められています。
よくある質問
Claude Codeは勝手にファイルを書き換えますか?
作業フォルダの外は触られませんか?
MCPサーバーは安全ですか?
許可を毎回聞かれるのが面倒です
APIキーはどこに保存されますか?
まとめ
- 許可の仕組みはある。 ただし万能ではない
- 承認したコマンドは、作業フォルダの外まで届く。 境界は確認であってOSの壁ではない
- 本当に隔離したいなら
/sandbox - プロンプトインジェクション対策はあるが、完全ではないと公式も書いている
- MCPサーバーは審査されていない。 ここが最も無防備な入口
- 許可は「読むだけ」を広げ、「消す・出す」は残す
- 確認の煩わしさは、事故に気づく機会でもある
コマンドと許可設定の操作はClaude Codeのコマンドに、何ができて何ができないかはできること・できないことにまとめています。
※2026年10月4日時点の公式ドキュメントに基づいています。仕様は変わるため、重要な判断の際は最新の情報をご確認ください。