ガードレールと安全な既定値

エージェント行動の多層防御:入力スクリーニング、権限ゲート、サンドボックス、不可逆スイッチの「既定は安全」設計。

intermediate · Claude / GPT-5
#ガードレール#セキュリティ#信頼性

魔法のフィルタではなく多層防御

単一のガードレールは必ず突破されます。信頼できるシステムは独立した検査を重ね、どの一層が破れても致命傷にならないようにします:

層捕まえるもの実装
入力スクリーニング明白な注入試行軽量分類器またはパターン列
権限ゲート権限外の操作エージェントごとの許可リストをコードで強制
サンドボックス許可操作による被害FS・通信・タイムアウトの制限
人間確認不可逆な結果危険操作の前の明示確認
監査ログ事後復元決定と操作の追記専用記録

原則はこれです:権限はモデルにお願いするのではなく、コードで強制する。 エージェントの自制に依存してはいけません。丁寧な依頼はアクセス制御ではありません。

プロンプト注入はプロンプトでは解決しない

エージェントが読むあらゆるテキストに指示が紛れ得ます。検索文書、ツール戻り値、アップロードされたファイル、Web ページ。後続の指示を無視させる確実なプロンプトは存在しません。

価値の高い順の現実的対策:

  1. 信頼できない内容を明確に分離。 検索・ツール結果を命令ではなくデータとしてタグ付け。
  2. 理解ではなく能力を制約。 完全に注入されても、ツールが許す範囲しかできない。読み取り専用エージェントは削除できない。
  3. 状態変更には確認を要求——特に信頼できない内容が起点の場合。
  4. 不可逆操作には人間を承認経路に残す。

実際に底を支えるのは 2 番です。他はハードルを上げるだけで、能力制限だけが天井を設定できます。

不可逆操作は既定を安全に

実害はここで起きます。削除、公開、送信、決済、デプロイ。やったら戻りません。

具体ルール:

UI コードには鋭い罠があります。undefined の真偽フラグが「実行する」側に評価されることです。公開を mode === 'push' で判定している場合、フラグの設定漏れがそのまま本番公開になります。肯定値を判定し、否定の不在に依存しない。

サンドボックスの要点

信頼したエージェントでも制限下で動かします:

ツールの戻り値はすべて、次のステップへの信頼できない入力として扱います。

監査は犯人探しではなく学習のために

判断を再現できるだけ記録します。入力、選んだ操作、理由、結果。追記専用で。「先週の火曜に何が起きたか」に答えるため、そしてパターンを見つけるためです。40% 失敗しているツール、全員が無意識に承認している確認ダイアログ。

後者の発見こそ行動に値します。人間が常に承認するガードレールは装飾であり、設計を見直すべきです。