Chuyển đến nội dung chính
Secret rốt cuộc lại đến những nơi chúng không thuộc về. Một lập trình viên dán một file .env vào một prompt để “giúp debug”. Một tài liệu được truy xuất mang theo một API key được nhúng. Một mô hình, khi được yêu cầu “hiển thị config”, lặp lại thẳng một AWS access key về cho client. Một agent dựng một cuộc gọi tool với một token còn sống được nướng vào trong các argument. Mỗi cái trong số này là một con đường để một credential thoát ra — vào log của một provider thượng nguồn, vào một bản ghi hội thoại của client, hoặc vào một tool của bên thứ ba. Trang này đề cập cách GuardrailsAgent Firewall của OrcaRouter cho phép bạn phòng thủ trước rò rỉ secret của llm — mà không thay đổi code ứng dụng của bạn.
Phát hiện diễn ra ở gateway, trước mọi key được gắn — nên một chính sách duy nhất bao phủ mọi provider, mọi mô hình, và mọi agent mà không cần thay đổi SDK.

1. Secret rò rỉ ở đâu

Một credential có thể thoát ra tại ba điểm riêng biệt trong một request:
Credential nằm trong request trước khi mô hình kịp chạy — một key được dán, một đoạn .env, một token bên trong một chunk RAG được truy xuất. Nếu không được kiểm tra, nó đến được provider thượng nguồn và có thể rơi vào log của họ. Chặn nó bằng guardrail input Secrets Blocker (§2).
Mô hình phát ra một secret ngược về client của bạn — nó nhả lại một key từ ngữ cảnh của nó, hoặc bịa ra một chuỗi có hình dạng credential. Bắt nó bằng một quy tắc secret output (§3).
Agent của bạn dựng một cuộc gọi tool với một token trong các argument. Verdict sanitize của Firewall redact các chuỗi con đã khớp khỏi các argument trước khi cuộc gọi được dispatch (§4).
Hai cái đầu là kiểm tra nội dung (Guardrails); cái thứ ba là kiểm tra hành động (Firewall). Xếp lớp cả ba để phòng thủ chiều sâu.

2. Secrets Blocker — chặn credential trong prompt

Secrets Blocker là một preset guardrail dưới danh mục secrets chạy ở stage input. Nó quét request tìm các hình dạng credential — AWS access key, key kiểu OpenAI, và token GitHub — và block cuộc gọi trước khi nó rời gateway. Credential không bao giờ đến được một mô hình. Soạn nó một lần trong console, gắn một key, và mọi request qua key đó đều được sàng lọc:
1

Tạo guardrail

Trong console, mở /console/guardrails, nhấn New guardrail, và áp dụng preset Secrets & API-Key Blocker từ danh mục secrets. Nó gieo một guardrail với các quy tắc block ở stage input cho các hình dạng credential phổ biến — sửa tự do từ đó.
2

Gắn một key

Mở /console/token, sửa một API key, và chọn guardrail từ dropdown Guardrail — hoặc đặt nó làm mặc định của workspace để mọi key chưa gắn đều kế thừa nó.
3

Gửi một request

Gọi gateway y như trước với key sk-orca-... đó:
curl https://api.orcarouter.ai/v1/chat/completions \
  -H "Authorization: Bearer sk-orca-..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openai/gpt-4o-mini",
    "messages": [
      {"role": "user", "content": "why is AKIAIOSFODNN7EXAMPLE rejected"}
    ]
  }'
Hình dạng AWS-key kích hoạt guardrail và request bị từ chối với HTTP 400 guardrail_blocked. Key không bao giờ đến được mô hình.
Một request bị block không tốn quota — một block ở stage input kích hoạt trước khi đo lường — và được đánh dấu skip-retry, nên chạy lại cùng một prompt chỉ bị block lại thay vì đốt một kênh fallback.
Cần độ phủ rộng hơn? Danh mục secrets cũng ship một preset Private Keys & Cloud Tokens block các PEM private key, token Slack và Stripe, Google API key, và JWT. Áp dụng cả hai — một guardrail có thể giữ bất kỳ số lượng quy tắc nào. Để bắt JWT và các hình dạng credential dưới dạng thực thể có kiểu (với các tag [JWT] / [AWS_ACCESS_KEY]), một quy tắc pii bao phủ jwt, aws_access_key, và api_key_openai là phương án thay thế hướng thực thể; xem Tham chiếu Guardrails.
Cấp độ tự chủ tight của Firewall bật guardrail Secrets Blocker như một phần của tư thế của nó, song song với PII Shield và các từ chối shell phá hủy. Nếu bạn muốn một công tắc thay vì soạn quy tắc bằng tay, đó là con đường nhanh. Bản thân việc kiểm tra credential luôn là guardrail — không phải bộ quét argument của firewall.

3. Block secret trong output mô hình

Một secret cũng có thể rời đi trong response — mô hình lặp lại một key từ ngữ cảnh của nó hoặc phát ra một chuỗi có hình dạng credential. Thêm một quy tắc ở stage output để sàng lọc câu trả lời của mô hình trước khi nó quay về client. Danh mục secrets ship một preset Code Secret in Output đúng cho việc này: các quy tắc block ở stage output cho PEM private key, AWS access key, và token secret kiểu OpenAI.
{
  "type": "regex",
  "stage": "output",
  "action": "block",
  "pattern": "AKIA[0-9A-Z]{16}"
}
Block output được thực thi trên cả response non-streaming và streaming — trên một stream, một scanner cắt response giữa chừng trước khi bất kỳ nội dung bị block nào đến được client. Một output block hoàn lại quota đã tiêu trước.
Masking output (thay một match bằng một tag có kiểu thay vì từ chối toàn bộ response) hiện chỉ áp dụng cho response non-streaming. Với credential trong output, action block là lựa chọn đáng tin cậy trên traffic streaming. Chứng minh tổ hợp stage/stream của bạn trong tab Test của guardrail trước khi phụ thuộc vào nó.

4. Sanitize secret ra khỏi argument cuộc gọi tool

Khi agent của bạn dựng một cuộc gọi tool, một credential có thể đi kèm trong các argument. Verdict sanitize của Firewall redact các chuỗi con đã khớp khỏi các argument của cuộc gọi tool và chuyển tiếp cuộc gọi đã làm sạch — trên các bề mặt responsemcp, nơi có các argument tại thời điểm gọi trực tiếp để viết lại. Một quy tắc sanitize nêu tên những bộ phát hiện nào cần redact trong cấu hình sanitize_json của nó — một tập preset built-in cộng với các regex custom tùy chọn. Tài liệu đã khớp được thay bằng [redacted:<preset>] (các match custom với [redacted:custom]):
{
  "priority": 10,
  "label": "Redact AWS keys from tool args",
  "stage": "response",
  "tool_name_glob": "*",
  "verdict": "sanitize",
  "sanitize_json": {
    "presets": ["aws_access_key", "aws_secret_key", "openai_key", "anthropic_key", "bearer_token"],
    "custom": []
  }
}
Các preset hình dạng secret có sẵn cho một sanitizer là aws_access_key, aws_secret_key, openai_key, anthropic_key, và bearer_token (cộng với email, ssn_us, và credit_card cho PII). Một quy tắc sanitize phải nêu ít nhất một preset hoặc mẫu custom — một sanitizer rỗng bị từ chối khi lưu.
Sanitize redact các argument, không phải kết quả. Nó làm sạch các argument của một cuộc gọi tool mà agent của bạn soạn; nó không quét sạch nội dung mà một tool trả về. Và trên bề mặt inbound — nơi chưa có argument tại thời điểm gọi — sanitize leo thang thành một deny. Xem tham chiếu firewall rules để biết ngôn ngữ so khớp.
Guardrail Secrets Blocker (§2) vẫn là phòng thủ chính của bạn cho credential trong thân request — sanitizer firewall là bổ trợ ở tầng hành động cho các secret xuất hiện cụ thể bên trong các argument cuộc gọi tool.

5. Xếp lớp ba phòng thủ

Secret nằm ở đâuLớp chặn nóAction
Trong promptSecrets Blocker (guardrail input)block
Trong câu trả lời của mô hìnhQuy tắc secret output (guardrail output)block
Trong một argument cuộc gọi toolSanitizer firewallsanitize
Triển khai bất kỳ quy tắc mới nào trong shadow mode (firewall) hoặc với action flag (guardrail) trước. Theo dõi feed events / Matches để xác nhận nó kích hoạt trên credential thật chứ không phải trên các thứ trông giống vô hại, rồi chuyển sang action thực thi.

6. Quan sát những gì đã kích hoạt

Mỗi quy tắc guardrail kích hoạt đều ghi lại một match — kiểu quy tắc, action, stage, và một chuỗi chi tiết — vào feed Matches của workspace (GET /api/guardrail/match, Member). Chuỗi con đã khớp chỉ được ghi lại khi “Log raw content” bật, mà nó tắt theo mặc định — tư thế thận trọng về quyền riêng tư, nên feed Matches không tự biến thành một nơi secret tích tụ. Để nó tắt cho các quy tắc credential trừ khi bạn cụ thể cần chuỗi con để phân loại. Các quyết định sanitize của Firewall rơi vào feed Events của Firewall (GET /api/workspace/firewall/events, Developer+), với secret và rule blob không bao giờ được ghi log.

7. Đi tiếp đâu

Tham chiếu Guardrails

Các kiểu quy tắc, thực thể PII, preset, sandbox test, và bộ khung eval đầy đủ.

Tham chiếu Firewall rules

Ngôn ngữ so khớp — tool glob, mệnh đề argument, và sanitizer.

Phơi nhiễm PII

Mối đe dọa nội dung anh em: dữ liệu cá nhân trong prompt và phản hồi.

Rò rỉ dữ liệu

Khi một credential bị rò rỉ trở thành payload của một cuộc gọi exfil đi ra ngoài.

Guardrails vs Firewall

Mặt phẳng nào chặn lớp rò rỉ nào, và chúng kết hợp ra sao.

Secure-agents baseline

Tư thế khởi đầu bật các phòng thủ này cùng nhau.