メインコンテンツへスキップ
現代のエージェントはその場でケイパビリティをインストールします:レジストリからの スキル、コミュニティ MCP サーバー、URL からのプラグイン。それぞれがマニフェスト、 ツールのセット、そして要求された権限のセットを同梱します — そして、それぞれが エージェントがロードした瞬間にサプライチェーンリスクとなります。shell.exec と 外部ネットワークスコープをひそかに要求するスキルは、まさに、インシデントで発見される のではなく、実行される前にレビューされるべき類のものです。 ファイアウォールのスキル統制が、そのレビューです。すべてのインストール可能な ケイパビリティはワークスペーススコープのレコードとして登録され、決定的なリスク エンジンによってスキャンされ、リスクバンドと強制モードを割り当てられ、そして — ランタイムで — そのモードがファイアウォールのルール判定の 上に乗ります。

1. ここでの「スキル」とは

スキルレコードはひとつのインストール可能なエージェントケイパビリティです。単一の モデルが 3 つの種類を一般化するため、ひとつのスキャン、スコアリング、承認の プレーンが、エージェントが自己インストールするすべてを統制します:
種類それが何か
skillパッケージ化されたケイパビリティ — マニフェストに加えて、ツールのセットとシステムプロンプトのフラグメント。
mcp_server統制されたアーティファクトとして登録された持ち込み MCP サーバー。
pluginプラグインスタイルの拡張。
各レコードはまたソースbuiltinregistryprivatebyo_mcpauto_detected — を持ち、それが信頼性評価に反映されます。

2. スキャナ

登録時(およびオンデマンド)に、スキャナはマニフェストと宣言されたスコープに対して、 決定的で依存関係のない一連のパスを実行します。各パスは infowarnerror の 重大度を持つ発見事項を発します:
パスフラグするもの重大度
prompt_injection指示を上書きしようとするマニフェストテキスト(ignore previous instructionsyou are now、先頭の system: …)。warn
tool_creepマニフェストが使用するallowed_tools宣言していないツール名。error
network_egressスキルのネットワークスコープで承認されていない、マニフェスト内の HTTP(S) ホスト。warn
fs_write_unsafe/tmp 外のパスに対する書き込みモードのファイルシステムスコープ(トラバーサルセーフ)。error
data_scope機密データスコープ(piifinancialcustomer)。info
unsigned署名のない registry スキル。warn
発見事項はスキャン判定にロールアップされます:いずれかの errorblocked; そうでなければいずれかの warnflagged;そうでなければ clean

3. リスクスコアとバンド

同じ発見事項が決定的なリスクスコア(0–100、カテゴリごとの上限つきで加算的)に 反映されます。最も重い寄与要因は危険なケイパビリティです:
ケイパビリティ重み
シェル実行+30
任意コードの eval+30
/tmp 外へのファイルシステム書き込み+25
シークレット読み取り+25
外部ネットワーク egress+20
tool-creep、prompt-injection、egress、data-scope の発見事項がその上に加算され (それぞれ上限つき)、署名のないレジストリスキルは +15 を加え、緩和策は減算します — 署名されたスキルは −10、error 発見事項のないマニフェストは −5。スコアは バンドにマップされます:
バンドスコア
low0–25
medium26–50
high51–75
critical76–100
これらの重みはドリフトガードテストによって固定されています — 意図的な仕様変更なしに 動くことはないため、バンドはすべてのワークスペースで同じことを意味します。

4. 強制モード

バンドと判定が一緒になって強制モード — このスキルが所有するツールが呼び出された ときにファイアウォールが実際に何をするか — を導出します:
モードランタイムでの効果
allowスキルは独自のものを何も課しません;ルール判定が決めます。
quarantinedeny 未満のものを pending_approval にエスカレートします — スキルのツールは人間が承認した後にのみ実行されます。
blockスキルのツールに deny を強制します。
導出は 2 つのシグナルのより厳しい方を取ります:バンド(low/medium → allow、 high → quarantine、critical → block)とスキャン判定(blocked → block、 flagged → quarantine)。判定を blocked にする単一の error 発見事項は、数値的な バンドが low であっても quarantine-or-block します — 慎重な方向です。オペレータは モードを明示的に設定できます;再スキャンではモードはより厳しくなる方向にしか ラチェットせず、設定した block や quarantine を緩めることは決してありません。

5. 信頼シグナル

静的スキャンを超えた 2 つのシグナルが、スキルがどう扱われるかに影響します:
  • 署名された発行者。 信頼された発行者からの署名を持つスキルは、より信頼できる ものとして扱われます(署名の緩和策がそのリスクスコアを下げます);署名のない レジストリスキルはペナルティを受けます。どの発行者をワークスペースが信頼するかは あなたが管理します。
  • リソースレピュテーション。 スキルの評価は、時間をかけたそのライブな挙動に よって調整され得ます — deny と異常はそのリスクを上げ、クリーンな連続記録は下げます — そのため、本番で不正に振る舞うアーティファクトは、そのマニフェストがクリーンに スキャンされていても、quarantine に向けてドリフトします。

6. 自動検出されたケイパビリティ

スキャナは、手動で何かを登録したときにのみ実行されるわけではありません。エージェントが ケイパビリティを自己インストールし、そのツールが初めてゲートウェイを横切ると、 ファイアウォールはそれを自動検出し(ホットパスから外れて、非同期に)、観測した ものからマニフェストを合成し、同じスキャン、スコア、モード導出を実行します — source = auto_detected で。
自動検出されたケイパビリティは、レビューされるまで隔離されます。 そうでなければ allow に解決されるであろう自動検出されたものは、人間がレビューするまで quarantine に下限設定されます(criticalblock のままです)。誰も承認して いないケイパビリティは、無害にスキャンされたというだけでフリーパスを得ることは ありません — あなたがそれを見た後にのみ実行されます。

7. ランタイム強制

ツール呼び出しがファイアウォールエンジンに到達すると、 それは所有スキルに帰属され、その後スキルのモードがルール判定の上に適用されます:
  1. 帰属。 呼び出しは、宣言された allowed_tools によって、次に mcp_server 名前空間プレフィックスによって、次にワークスペース全体の最も制限的な強制 フォールバックによって、スキルにマッチされます。
  2. ルール判定。 ポリシーのルールが通常どおり実行されます — そしてルールの skill_name_globにより、ルールを 特定のスキルにスコープできます。
  3. モードオーバーライド。 block スキルは deny を強制します;quarantine スキルは deny 未満のものを pending_approval にエスカレートします;allow は 判定をそのままにします。
スキル帰属はフェイルクローズします。 ツールが帰属できない場合(キャッシュの ない DB エラー、またはキュレーションされたソースの下の未宣言ツール)、呼び出しは 許可されるのではなくレビューのために保留されます。そしてスキルモードはシャドウ モードから独立しています — 隔離またはブロックされたスキルは、ポリシーがシャドウ ロールアウト中であっても、依然として強制されます。

8. ライフサイクル

  • 登録POST /skills は同期的に検証しスキャンし、スキルとその発見事項および 判定を返します。モードが導出されます(または明示的なモードが尊重されます)。
  • 更新 — 新しいマニフェストを再スキャンします;悪化したスキャンではモードが より厳しくラチェットしますが、保存された block/quarantine を緩めることは決して ありません。
  • 再スキャンPOST /skills/:id/rescan はスキャンを再実行します;判定が flagged または blocked に新たに低下した場合、ファイアウォールイベントを発する ため、ドリフトがフィードに表示されます。
  • 削除 — ソフト削除し、再登録のために名前スロットを解放します。

API リファレンス

ワークスペーススコープ;リスト読み取りは任意のメンバーに開放(そしてシークレットを 持つフィールドをリダクト)、それ以外はすべて Developer+ が必要です。
メソッドとパスロール目的
GET /api/workspace/firewall/skillsMemberスキル一覧(リダクト済み;?kind=?source= でフィルタ)。
GET /api/workspace/firewall/skills/:idDeveloper+完全なスキルレコード。
POST /api/workspace/firewall/skillsDeveloper+登録 + スキャン(重複名で 409)。
PUT /api/workspace/firewall/skills/:idDeveloper+更新 + 再スキャン。
POST /api/workspace/firewall/skills/:id/rescanDeveloper+再スキャン;低下時にイベントを発する。
DELETE /api/workspace/firewall/skills/:idDeveloper+ソフト削除。
登録/更新/再スキャンは次を返します:
{
  "skill": { "id": 7, "name": "creepy", "risk_band": "high", "mode": "quarantine", "...": "..." },
  "findings": [
    { "kind": "tool_creep", "target": "shell.exec", "severity": "error" }
  ],
  "scan_verdict": "blocked"
}
名前はワークスペースごとに種類をまたいで一意です — skill という名前の githubmcp_server という名前の github は、同じワークスペース内で衝突します。 アーティファクトごとに別個の名前を選んでください。

FAQ

ルールは、名前と引数によってツール呼び出しを ゲートします。スキルは、エージェントがロードするケイパビリティ — パッケージ、 そのマニフェスト、そして要求された権限 — を、そのツールのいずれかが実行される 前にゲートします。スキルのモードはその後ルールが決めるものの上に乗るため、 両者は構成されます:ルールは一般に http.fetchallow できる一方、それを 所有する隔離されたスキルは依然として保留されます。
いくつかのものです。Tool-creep 検出は、使用されているが宣言されていないツールを フラグします;自動検出は、主張されたマニフェストだけでなく、実際にゲートウェイを 横切ったものから再スキャンします;モードは再スキャンでより厳しく(緩くではなく) ラチェットします;リソースレピュテーションは、時間をかけて不正に振る舞う アーティファクトを quarantine に向けてドリフトさせます;そして帰属は、ツールが 宣言されたスキルに紐付けられないときにフェイルクローズします。
いいえ。事前承認したいものを登録します;残りは初回使用時に自動検出され、レビュー するまで隔離されます。観察モードをオンにすれば、エージェントがインストールする すべてをブロックすることなく表面化でき、その後実データから厳格化できます。

関連項目

エージェントセキュリティをさらに深く知りたいですか? エージェントを保護する(ゼロトラスト) のガイドが、この機能をゼロトラストワークフローの中に位置づけます。

セキュアエージェント ベースライン

すべてのエージェントケイパビリティにゼロトラスト姿勢をひとつのスイッチで適用します。

エージェント向けガードレール

自律的にツールを使うエージェントのために作られたガードレール。