AIToday
AIコーディングAI安全性・アラインメントZenn AI/ML掲載日時: 2026年10月12日 22:00

Claude Codeのdenyに抜け道

LINEで送る
Claude Codeのdenyに抜け道

3つのポイント

  1. 何が起きたか

    Claude Codeのdeny設定は「git push」「Bash(git push *)」でもgit -C . push origin mainやgit 'push' origin mainに一致しない。PreToolUse hookでsubcommandを見分けるscriptを書き22形・7形が期待どおり。

  2. なぜ重要か

    指示ファイルは方向づけのみで許可範囲を変えず、止めるのはpermission rule・mode・hookと公式文書も示す。denyだけでは別の書き方を止められず見落としが生じうる。

わからないところ、AIに聞けます

質問と回答はこのページに公開されます。

こういう要約が、毎朝あなたのメールに届きます。

背景と解説

筆者は小さな事業者むけの業務ソフトを一人で作り、開発をAIエージェントに任せている。金や個人情報をあつかうため、AIにまかせるのはcommitまでと決め、pushとmergeは人がやる運用にした。最初はCLAUDE.mdに書いてsettings.jsonで禁止すれば足りると考えたが、denyは命令の文字列と照合されるため、git -C . push origin mainのような書き方やすり抜けが公式ドキュメントにも示されていた。

そこでBashなどの道具を使う直前に動くPreToolUse hookを使い、命令を語に分けてgitのsubcommandを見分けるscriptを書いた。hookは終了コード2で命令を止め、allowのruleやpermission modeより先に効く。止めた理由はstderrに書くため、Claudeはそれを読んで人に頼むなど別のやり方に切り替える。

ただしhookは強い境界ではない。保存済みの認証情報はAIのプロセスからも使え、hookの設定はAI自身が書き換えられる。筆者は権限そのものを分ける方法としてAIだけが使うOSアカウントを選んだ。GitHub側でbranchを守る手もあるが、privateリポジトリでは有料プランが必要になる。

よくある質問
deny設定ではなぜgit pushを止めきれないのですか?
ruleが命令の文字列と照合されるためで、公式ドキュメントはBash(git push *)をdenyにしてもgit -C . push origin mainやgit 'push' origin mainには一致しないと表で示している。denyのruleはClaudeがふだん書く形を止めるもので、プログラムの周りの安全の境界ではない。
hookが失敗したときはどうなりますか?
"onFailure": "block"を書かないと、hookが動き出せない・途中で落ちる・時間切れになるといった失敗のときに命令はそのまま通る。scriptのpathをひとつ書きまちがえただけで全部素通りになるため、"block"にしておくと失敗したときも命令を止められる(Claude Code v2.1.295から)。
hookを入れても残る穴は何ですか?
保存済みの認証情報はAIのプロセスからもshellからもpythonのsubprocessからも確認の画面なしで使える。また.claude/settings.jsonもhookのscriptもリポジトリの中のただのファイルで、hookの設定はAI自身が書き換えられる。$( )の入れ子やリポジトリの設定に書かれたalias、PowerShellの構文など最小の例には読めない形もある。
LINEで送る

あなたの仕事に関係するAIニュースを、毎朝お届けします。

業界と使っているAIツールを選ぶと、仕事に関係するニュースが毎朝届きます。

登録無料・Googleアカウントなら30秒・いつでも解除できますAITodayについて →

AIに質問

この記事についてわからないことをAIに質問できます。AIはこの記事・AIToday の過去記事・Wikipedia を読み、出典を付けて答えます。Q&Aはこのページに公開され、他の読者も読めます。

質問と回答はこのページに公開されます。

関連記事

数学難問の解答公開で暗号の安全性に懸念

OpenAIが、一流数学者が数十年間解けずにいた数百の問題の解答を明らかにする文書を公開

NEWFortune AI1時間前

Mitate、余暇6週間で2990コミット

R2-sanのMitateはGoogle Cloudとの第5回Agentic AI Hackathon向けプロジェクトで、2026年8月27日の初回コミットから約6週間で4リポジトリにわたり約2,990コミットと716件…

NEWZenn AI/ML1時間前

ClaudeのMax・Teamに月額APIクレジット付与

2026年10月7日以降、Max 5x、Max 20x、Teamプランに月額APIクレジット(100ドル、200ドル、1席あたり最大500ドル)が付くが、対話型Claude Codeでは使えないと筆者は述べている

NEWZenn AI/ML1時間前

OpenAIとAnthropicの自己監視に疑問

Appian CEOのMatt Calkins氏はFortuneに対し、AIは「盗み、脅し、欺き、我々に対して組織化している」と述べ、政府主導のアラインメント検査を提案した

NEWFortune AI4時間前

Geiger公開 無料でPC内のAIエージェントを一覧化

Atomburstofficialが、PC内のAIエージェント・MCPサーバー・プラグイン・AI拡張機能を検出し一覧化する無料ツール「Geiger」を公開

NEWGIGAZINE AI4時間前

BotMan AI、知識グラフでレガシー移行

BotMan AIのAlejandro D’Andrea氏は、移行パイプラインが依存関係、ビジネスロジック、データモデルを知識グラフにマッピングし、DelphiやVisual Basic、Oracle Formsなどの古…

SiliconANGLE AI10時間前
次の記事へ欧米の新オープンAIモデル、中国勢に後れ