メインコンテンツへスキップ
エージェントはあなたを害するためにデータを漏らす必要はありません。単に支出する だけでよいのです — 高価なモデルを叩くリトライループ、千のツール呼び出しに展開する プロンプトインジェクションされた指示、あるいは請求書が届くまで推論を積み上げる漏洩 した API キー。これが denial of wallet です:攻撃はコストそのものです。古典的な denial-of-service とは異なり、ゲートウェイは稼働し続け、すべてのリクエストは個別には 正当に見えます — 被害は集計された支出です。 OrcaRouter は、すべてアップストリームモデルの手前に座る 3 つの独立した天井を提供する ため、単一の暴走パスがあなたの請求を無制限に動かすことはできません。

1. denial of wallet AI の脅威

denial-of-wallet インシデントは通常、3 つの形のいずれかにたどり着きます:
エージェントが同じ失敗するツールをリトライするか、狭いループで再計画し、毎回の パスでトークンを再支払いします。悪意は不要です — 悪い停止条件で十分です。
プロンプトインジェクションが、エージェントを ツールのスパムや過大なリクエストの発行に誘導し、ターンごとの支出を倍増させます。
キーがあるべきでない場所 — コミットされた .env、共有ノートブック — に行き着き、 攻撃者が支出に気づかれるまであなたのアカウントで推論を実行します。
防御は 3 つのケースすべてで同じです:攻撃者が言い逃れできないハードな天井、 エージェントコードではなくゲートウェイで強制されるもの。

2. cap_cost による実行ごとのコスト天井

ファイアウォールの cap_cost 判定は、暴走ループのためのサーキットブレーカーです。 実行ごとのセント上限を持つルールとして記述します;エンジンはエージェント実行の累積 支出を合計し、実行が上限を越えると、判定を deny に解決します — その実行内の以降の すべてのツール呼び出しがブロックされます。 cap_costディスパッチ前の天井です:呼び出しがツールに到達する前に評価される ため、すでに行われた呼び出しを返金するのではなく、次の高価な呼び出しを止めます。 すべてのツールに対する典型的なキャッチオール上限:
{
  "priority": 50,
  "label": "cap runaway spend at $5 per run",
  "tool_name_glob": "*",
  "verdict": "cap_cost",
  "cap_cost_cents": 500
}
上限以下では呼び出しは許可されます;超えると、実行は HTTP 400 firewall_blocked で 拒否され — skip-retry とマークされるため、ループは拒否の周りを叩けません。天井は エージェント実行ごとで、ワークスペースポリシー全体にわたって合計されるため、 1 つの暴走会話が別の会話の予算に出血することはありません。
cap_cost はリクエストログから実行中の支出を読み取ります。実行中支出のロールアップに 合計する行があるよう、ワークスペースのリクエストログキャプチャをオンに保ってください — さもないと事前支出の推定は保守的に 0 になり、上限は実行がすでにいくらかかったかを 見られません。
完全なマッチング言語と、cap_cost が他の判定の中でどこに座るかについては、 ファイアウォールルールリファレンスを参照してください。

3. credit_limit_usd によるキーごとのハード予算

cap_cost単一の実行を制限します。キー — それが発行するすべての実行 — を 制限するには、API キーに credit_limit_usd を設定します。そのキーの生涯支出に対する ハードな USD 天井です:ゲートウェイはそれをキーの残りクォータに変換し、キーが割当を 使い切ると、それ以降のリレー呼び出しはクレジット不足で拒否されます。0 は無制限を 意味します。 漏洩したキーがすべての軸で一度に制限されるよう、キーの他のスコープとペアにします:

credit_limit_usd

キーのハードな USD 支出天井(0 = 無制限)。

expired_time

自動失効タイムスタンプ(-1 = 決して失効しない)。短命のキーは爆発半径の ウィンドウを制限します。

allow_ips

キーを既知のソース IP に固定 — 漏洩したキーはネットワーク外では無用です。

model_limits

キーを特定のモデルに制限し、最も高価なものに一切到達できないようにします。
各エージェントに、正当には決して超えないはずの credit_limit_usd を持つ独自の狭く スコープされたキーを与えてください。上限は予算であり、攻撃者の挙動の推測ではありません — 完全に侵害されたキーでも天井で止まります。
これらすべてを、あなたのセッション下でコンソールのキーエディタ(またはトークン API) から設定します — これらはキー設定であり、リレー呼び出しではありません。/v1/* 推論 リクエストだけが sk-orca-... キー自体を使います。上限の編集はキーの次のリクエストで 反映されます;再デプロイ不要。

4. 予測しなかったスパイクを捕捉する:コスト異常

静的な上限は、予期した支出を止めます。ファイアウォールの異常検出は、予期しなかった 支出を捕捉します。各ワークスペースの正常なツール使用の形を曜日内時間ベースライン (14 日間の移動平均)に対して学習し、Member が読めるフィードで逸脱を表面化します:
異常フラグするもの
burn_spikeツールのコストが学習されたベースラインコストをはるかに上回る — denial-of-wallet シグナル。
rate_spike呼び出しボリュームがベースラインをはるかに上回る — ファンアウトとフラッド。
retry_loop同じツールが同じ引数で狭いウィンドウで繰り返される — 古典的な暴走ループ。
そのため「このツールはこの時間にいつものコストの 40 倍を焼いた」が、各個別の呼び出しが ポリシーで許可されていても際立ちます。調査中、異常を最大 7 日間スヌーズできます。
異常検出はあなたの早期警告です;cap_costcredit_limit_usd はハードな停止 です。フィードを監視して実際の支出がどこにあるかを発見し、それからその周りに上限を 書いてください。

5. 組み合わせる

暴走が決して請求に到達しないよう、3 つを重ねます:
コントロールスコープ発火するとき
cap_cost ルール1 つのエージェント実行実行の累積支出がセント上限を越える
credit_limit_usd1 つのキー、生涯キーの総支出がその USD 天井に達する
burn_spike / retry_loopワークスペース、学習支出または繰り返しパターンがベースラインから逸脱
実践的なベースライン:* に対する実行ごとの cap_cost、すべてのエージェントキーへの credit_limit_usd、そして異常フィードを確認する習慣。新しい cap_cost ポリシーは まずシャドウモードでロールアウト してください — ブロックせずに [shadow] would deny をログするので、噛みつく前に実際の トラフィックに対して上限のサイズを決められます。
cap_cost と異常フィードは、ゲートウェイを横切るツール呼び出しと実行を制限します。 エージェントが完全に自身のプロセス内で実行するツールは、エンジンに決して到達しません。 モデル媒介と MCP のツール呼び出しをゲートウェイ経由でルーティングし — そしてすべての キーに credit_limit_usd を与えて — エージェントがどうループしても天井が保たれる ようにしてください。

6. 関連する脅威

denial of wallet が単独で到着することはめったにありません — 予算を焼くループは、しばしば 上流の何かによって駆動されます:
  • プロンプトインジェクション — インジェクションされた指示は、ファンアウトとツールスパムの一般的なトリガーです。
  • 過剰なエージェンシー — 自由度の高すぎる エージェントは支出する手段が多くあります。
  • 危険なツール呼び出し — 同じ ファイアウォールルールプレーンが、コストだけでなくツールが何をしてよいかを 制限します。
  • 脅威モデル — 暴走コストが完全なエージェント 攻撃サーフェスのどこに収まるか。

ファイアウォール概要

判定、異常検出、自律性レベル、可観測性。

スコープされたキーとポリシー

キー上限、ガードレール、ファイアウォールポリシーがキーごとにどう組み合わさるか。