Trang này nói về các điều khiển gateway giới hạn bán kính nổ. Ngữ cảnh
mô hình đe dọa ở thượng nguồn — lý do tại sao agent là mục tiêu giá trị
cao và cách injection hoạt động — nằm trong Mô hình đe dọa.
Để tìm hiểu điều khiển tương ứng quản trị các lời gọi tool nguy hiểm
riêng lẻ, xem Lời gọi tool nguy hiểm.
1. Điều gì khiến một agent có quá nhiều khả năng
Khi mọi agent trong một workspace dùng chung một key, hoặc khi một key được phát hành một lần và không bao giờ được xem xét lại, khả năng tích lũy dần dần:- Model không bị hạn chế — agent có thể gọi bất kỳ model nào trong workspace, kể cả những model đắt tiền hay có khả năng cao mà nó không bao giờ cần.
- Không có giới hạn chi tiêu — một vòng lặp mất kiểm soát, một injection được kích hoạt, hoặc một cuộc tấn công billing có thể làm cạn kiệt số dư workspace trước khi bạn kịp chú ý.
- Không có ngày hết hạn — một key được phát hành trong một sprint vẫn còn hiệu lực một năm sau, lâu hơn nhiều so với thời gian agent được tạo ra cho nó đã bị ngừng hoạt động.
- Không có ràng buộc IP — credential hoạt động từ bất kỳ đâu, nên một key bị rò rỉ không có giới hạn địa lý.
- Không có tool allow-list — agent có thể gọi bất kỳ tool nào, kể cả những tool không liên quan đến chức năng của nó.
2. Pattern confused deputy
Confused deputy là một dạng chuyên biệt của excessive agency. Agent không bị chiếm quyền điều khiển; nó bị thuyết phục. Một payload prompt-injection trong một trang web được truy xuất, tài liệu, hoặc kết quả tool yêu cầu agent thực hiện một hành động mà nó được phép hợp pháp thực hiện — chuyển tiền, xóa một bản ghi, gửi một tin nhắn — thay mặt kẻ tấn công. Agent hành động. Nó được ủy quyền làm chính xác điều đó. Kiểm tra ủy quyền vượt qua. Thiệt hại đã xảy ra. Phòng thủ đòi hỏi hai thứ hoạt động cùng nhau:- Phạm vi hẹp — agent không thể bị lừa để làm điều gì đó mà nhiệm vụ của nó không bao giờ có ý định, vì nó không được ủy quyền làm điều đó ngay từ đầu.
- Phê duyệt của con người cho các hành động không thể đảo ngược — ngay cả trong phạm vi được ủy quyền, một lời gọi cổ phần cao cần một con người xác nhận trước khi nó thực thi.
3. Phòng thủ theo chiều sâu: bốn lớp
OrcaRouter thực thi least agency qua bốn điều khiển độc lập kết hợp trên một API key duy nhất. Không cái nào yêu cầu thay đổi code trong agent của bạn.Lớp 1 — Key có phạm vi (danh tính + giới hạn cứng)
Mỗi agent nên có API key riêng của mình. Key mang các giới hạn cứng mà gateway thực thi bất kể agent yêu cầu gì:| Trường | Nó hạn chế gì |
|---|---|
model_limits | Tập chính xác các model mà key này có thể gọi. Một request cho bất kỳ model nào khác bị từ chối trước khi rời khỏi gateway. |
allow_ips | Các request từ bất kỳ địa chỉ nào không có trong danh sách này bị từ chối ở tầng xác thực. Để trống nghĩa là không hạn chế IP. |
credit_limit_usd | Giới hạn chi tiêu trọn đời tính bằng USD. 0 nghĩa là không giới hạn. Gateway thực thi điều này đối với chi tiêu tích lũy trên key. |
expired_time | Timestamp hết hạn tuyệt đối. -1 nghĩa là key không bao giờ hết hạn. Đặt giá trị này theo vòng đời triển khai của agent. |
environment | Một nhãn (prod, staging, dev) để tổ chức key và lọc audit log. |
Lớp 2 — Chính sách firewall (tool allow-list)
Gắn một chính sách firewall vào key quafirewall_policy_id. Chính sách quản trị mọi lời gọi tool mà key đó
phát ra:
- Viết các quy tắc allow tên tool mà agent hợp pháp sử dụng (glob
tên tool được hỗ trợ — vd:
db.query*). - Đặt
default_verdictcủa chính sách thànhdenyđể bất kỳ thứ gì không được liệt kê tường minh đều bị block. - Thêm argument predicate để hạn chế ngay cả các tool được phép — vd:
chỉ cho phép
db.querykhi đối sốdatabasekhớp với một schema cụ thể.
Lớp 3 — Phê duyệt của con người cho các hành động cổ phần cao (pending_approval)
Đối với các lời gọi tool không thể đảo ngược hoặc giá trị cao — một
giao dịch thanh toán, xóa bản ghi, gửi email — thêm một quy tắc
pending_approval. Luồng xử lý:
- Agent phát ra lời gọi tool. Firewall giữ lại và trả về phản hồi “held” mang theo một approval id. Lời gọi không đến được tool.
- Một reviewer phê duyệt hoặc từ chối ngoài luồng — từ console (Developer+) hoặc qua webhook ký HMAC tới hệ thống phê duyệt của riêng bạn.
- Agent của bạn poll approval id. Một khi được phê duyệt, nó gửi lại
lời gọi gốc với một header dùng một lần
X-OrcaRouter-Firewall-Approval. Gateway cho nó đi qua đúng một lần.
Lớp 4 — Giới hạn chi phí mỗi lần chạy (cap_cost)
Một quy tắc cap_cost từ chối bất kỳ lời gọi tool nào khi chi tiêu
tích lũy của lần chạy agent vượt quá một ngưỡng trần theo từng quy tắc
(tính bằng cents). Đây là cầu dao ngắt mạch cho:
- Vòng lặp mất kiểm soát được kích hoạt bởi injection.
- Các cuộc tấn công billing đẩy chi tiêu trước khi bất kỳ con người nào chú ý.
- Đệ quy vô tình trong các kế hoạch nhiều bước.
cap_cost hoạt động ở cấp lần chạy, không phải cấp trọn đời key —
nên nó đặt lại mỗi lần gọi agent, và một lần chạy bị lỗi duy nhất không
thể làm cạn kiệt trần credit_limit_usd của key.
4. Một key agent có phạm vi tốt — ví dụ
Một agent tóm tắt ticket của khách hàng dùnggpt-4o-mini và truy vấn
một replica chỉ đọc nên có dạng như sau:
model_limits:["openai/gpt-4o-mini"]— không thể leo thang lên một model có khả năng hơn hoặc đắt hơn.allow_ips: CIDR egress của worker pool — key không hoạt động ở bất kỳ nơi nào khác.credit_limit_usd: một trần hàng tuần tương ứng với chi phí dự kiến của nhiệm vụ, có thêm một khoảng dự phòng — vd:5.00.expired_time: cuối sprint hoặc giai đoạn triển khai — key tự hết hạn mà không cần dọn dẹp thủ công.environment:"prod"— xuất hiện trong bộ lọc log và chế độ xem bất thường.guardrail_id: một guardrail được giới hạn phạm vi theo độ nhạy cảm dữ liệu của agent này (che PII, không có secrets trong output).firewall_policy_id: một chính sách cho phépdb.query*vàticket.read*trong allow-list, verdict mặc địnhdeny.
is_firewall_gateway đánh dấu một key là token có phạm vi gateway cho
các route MCP-dispatch và evaluate-hook. Chỉ tạo những key này cho các
agent điều khiển firewall theo chương trình — không bao giờ cho traffic
inference thông thường. Một gateway key trên đường inference phơi bày
các route mà key mục đích chung không bao giờ nên tiếp cận. Bật
is_firewall_gateway yêu cầu Admin+.5. Vai trò cần thiết
| Hành động | Vai trò tối thiểu |
|---|---|
| Đọc bất kỳ key, chính sách, hoặc sự kiện firewall nào | Member |
| Tạo hoặc chỉnh sửa key, chính sách firewall, quy tắc | Developer |
| Phê duyệt một lời gọi tool bị giữ từ console | Developer |
Bật is_firewall_gateway trên một key | Admin |
6. Quan hệ với các mối đe dọa khác
Excessive agency là yếu tố kích hoạt cho hầu hết mọi mối đe dọa agent khác:- Lời gọi tool nguy hiểm — một key với tool allow-list hẹp không thể bị buộc gọi một tool không có trong danh sách, ngay cả khi injection thành công.
- Prompt injection — giới hạn phạm vi thu hẹp thiệt hại mà injection có thể gây ra; các cổng phê duyệt chặn các hành động không thể đảo ngược mà injection cố kích hoạt.
- Mô hình đe dọa — bản đồ bề mặt tấn công đầy đủ, cho thấy vị trí của excessive agency so với các vector khác.
Key có phạm vi & chính sách
Tài liệu tham chiếu đầy đủ các trường key, thứ tự phân giải, và mô
hình ranh giới workspace.
Firewall
Soạn thảo chính sách, verdict, luồng phê duyệt HITL, và tài liệu
tham chiếu API đầy đủ.
