shell.exec と
外部ネットワークスコープをひそかに要求するスキルは、まさに、インシデントで発見される
のではなく、実行される前にレビューされるべき類のものです。
ファイアウォールのスキル統制が、そのレビューです。すべてのインストール可能な
ケイパビリティはワークスペーススコープのレコードとして登録され、決定的なリスク
エンジンによってスキャンされ、リスクバンドと強制モードを割り当てられ、そして —
ランタイムで — そのモードがファイアウォールのルール判定の
上に乗ります。
1. ここでの「スキル」とは
スキルレコードはひとつのインストール可能なエージェントケイパビリティです。単一の モデルが 3 つの種類を一般化するため、ひとつのスキャン、スコアリング、承認の プレーンが、エージェントが自己インストールするすべてを統制します:| 種類 | それが何か |
|---|---|
skill | パッケージ化されたケイパビリティ — マニフェストに加えて、ツールのセットとシステムプロンプトのフラグメント。 |
mcp_server | 統制されたアーティファクトとして登録された持ち込み MCP サーバー。 |
plugin | プラグインスタイルの拡張。 |
builtin、registry、private、byo_mcp、
auto_detected — を持ち、それが信頼性評価に反映されます。
2. スキャナ
登録時(およびオンデマンド)に、スキャナはマニフェストと宣言されたスコープに対して、 決定的で依存関係のない一連のパスを実行します。各パスはinfo、warn、error の
重大度を持つ発見事項を発します:
| パス | フラグするもの | 重大度 |
|---|---|---|
| prompt_injection | 指示を上書きしようとするマニフェストテキスト(ignore previous instructions、you are now、先頭の system: …)。 | warn |
| tool_creep | マニフェストが使用するが allowed_tools で宣言していないツール名。 | error |
| network_egress | スキルのネットワークスコープで承認されていない、マニフェスト内の HTTP(S) ホスト。 | warn |
| fs_write_unsafe | /tmp 外のパスに対する書き込みモードのファイルシステムスコープ(トラバーサルセーフ)。 | error |
| data_scope | 機密データスコープ(pii、financial、customer)。 | info |
| unsigned | 署名のない registry スキル。 | warn |
error → blocked;
そうでなければいずれかの warn → flagged;そうでなければ clean。
3. リスクスコアとバンド
同じ発見事項が決定的なリスクスコア(0–100、カテゴリごとの上限つきで加算的)に 反映されます。最も重い寄与要因は危険なケイパビリティです:| ケイパビリティ | 重み |
|---|---|
| シェル実行 | +30 |
| 任意コードの eval | +30 |
/tmp 外へのファイルシステム書き込み | +25 |
| シークレット読み取り | +25 |
| 外部ネットワーク egress | +20 |
| バンド | スコア |
|---|---|
low | 0–25 |
medium | 26–50 |
high | 51–75 |
critical | 76–100 |
4. 強制モード
バンドと判定が一緒になって強制モード — このスキルが所有するツールが呼び出された ときにファイアウォールが実際に何をするか — を導出します:| モード | ランタイムでの効果 |
|---|---|
allow | スキルは独自のものを何も課しません;ルール判定が決めます。 |
quarantine | deny 未満のものを pending_approval にエスカレートします — スキルのツールは人間が承認した後にのみ実行されます。 |
block | スキルのツールに deny を強制します。 |
blocked にする単一の error 発見事項は、数値的な
バンドが low であっても quarantine-or-block します — 慎重な方向です。オペレータは
モードを明示的に設定できます;再スキャンではモードはより厳しくなる方向にしか
ラチェットせず、設定した block や quarantine を緩めることは決してありません。
5. 信頼シグナル
静的スキャンを超えた 2 つのシグナルが、スキルがどう扱われるかに影響します:- 署名された発行者。 信頼された発行者からの署名を持つスキルは、より信頼できる ものとして扱われます(署名の緩和策がそのリスクスコアを下げます);署名のない レジストリスキルはペナルティを受けます。どの発行者をワークスペースが信頼するかは あなたが管理します。
- リソースレピュテーション。 スキルの評価は、時間をかけたそのライブな挙動に よって調整され得ます — deny と異常はそのリスクを上げ、クリーンな連続記録は下げます — そのため、本番で不正に振る舞うアーティファクトは、そのマニフェストがクリーンに スキャンされていても、quarantine に向けてドリフトします。
6. 自動検出されたケイパビリティ
スキャナは、手動で何かを登録したときにのみ実行されるわけではありません。エージェントが ケイパビリティを自己インストールし、そのツールが初めてゲートウェイを横切ると、 ファイアウォールはそれを自動検出し(ホットパスから外れて、非同期に)、観測した ものからマニフェストを合成し、同じスキャン、スコア、モード導出を実行します —source = auto_detected で。
自動検出されたケイパビリティは、レビューされるまで隔離されます。 そうでなければ
allow に解決されるであろう自動検出されたものは、人間がレビューするまで
quarantine に下限設定されます(critical は block のままです)。誰も承認して
いないケイパビリティは、無害にスキャンされたというだけでフリーパスを得ることは
ありません — あなたがそれを見た後にのみ実行されます。7. ランタイム強制
ツール呼び出しがファイアウォールエンジンに到達すると、 それは所有スキルに帰属され、その後スキルのモードがルール判定の上に適用されます:- 帰属。 呼び出しは、宣言された
allowed_toolsによって、次にmcp_server名前空間プレフィックスによって、次にワークスペース全体の最も制限的な強制 フォールバックによって、スキルにマッチされます。 - ルール判定。 ポリシーのルールが通常どおり実行されます — そしてルールの
skill_name_globにより、ルールを 特定のスキルにスコープできます。 - モードオーバーライド。
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/skills | Member | スキル一覧(リダクト済み;?kind= と ?source= でフィルタ)。 |
GET /api/workspace/firewall/skills/:id | Developer+ | 完全なスキルレコード。 |
POST /api/workspace/firewall/skills | Developer+ | 登録 + スキャン(重複名で 409)。 |
PUT /api/workspace/firewall/skills/:id | Developer+ | 更新 + 再スキャン。 |
POST /api/workspace/firewall/skills/:id/rescan | Developer+ | 再スキャン;低下時にイベントを発する。 |
DELETE /api/workspace/firewall/skills/:id | Developer+ | ソフト削除。 |
名前はワークスペースごとに種類をまたいで一意です —
skill という名前の
github と mcp_server という名前の github は、同じワークスペース内で衝突します。
アーティファクトごとに別個の名前を選んでください。FAQ
これはルール DSL とどう違いますか?
これはルール DSL とどう違いますか?
ルールは、名前と引数によってツール呼び出しを
ゲートします。スキルは、エージェントがロードするケイパビリティ — パッケージ、
そのマニフェスト、そして要求された権限 — を、そのツールのいずれかが実行される
前にゲートします。スキルのモードはその後ルールが決めるものの上に乗るため、
両者は構成されます:ルールは一般に
http.fetch を allow できる一方、それを
所有する隔離されたスキルは依然として保留されます。悪意あるスキルがクリーンなマニフェストを宣言するのを何が止めますか?
悪意あるスキルがクリーンなマニフェストを宣言するのを何が止めますか?
いくつかのものです。Tool-creep 検出は、使用されているが宣言されていないツールを
フラグします;自動検出は、主張されたマニフェストだけでなく、実際にゲートウェイを
横切ったものから再スキャンします;モードは再スキャンでより厳しく(緩くではなく)
ラチェットします;リソースレピュテーションは、時間をかけて不正に振る舞う
アーティファクトを quarantine に向けてドリフトさせます;そして帰属は、ツールが
宣言されたスキルに紐付けられないときにフェイルクローズします。
すべてのスキルを手動で登録しなければなりませんか?
すべてのスキルを手動で登録しなければなりませんか?
いいえ。事前承認したいものを登録します;残りは初回使用時に自動検出され、レビュー
するまで隔離されます。観察モードをオンにすれば、エージェントがインストールする
すべてをブロックすることなく表面化でき、その後実データから厳格化できます。
関連項目
エージェントセキュリティをさらに深く知りたいですか? エージェントを保護する(ゼロトラスト) のガイドが、この機能をゼロトラストワークフローの中に位置づけます。セキュアエージェント ベースライン
すべてのエージェントケイパビリティにゼロトラスト姿勢をひとつのスイッチで適用します。
エージェント向けガードレール
自律的にツールを使うエージェントのために作られたガードレール。
