1. O que um code security guardrail realmente faz
O OrcaRouter traz uma família de presetscode_security que você aplica
a partir do seletor de templates. Cada um é uma regra de
guardrail comum — com escopo de workspace,
ordenada, vinculável a qualquer chave — afinada para código:
.env / Secret-File Block
Bloqueia atribuições de segredo no estilo
.env (DATABASE_URL=,
AWS_SECRET_ACCESS_KEY=, API_TOKEN=…) e dumps de config multilinha
colados antes de chegarem ao provedor. Baseia-se na sintaxe da
atribuição, não no valor.License Compliance (copyleft)
Sinaliza requisições que carregam cabeçalhos de strong-copyleft — tags
SPDX GPL / AGPL / LGPL / SSPL ou nomes completos de licença — para que um
revisor confirme que o código é seguro para misturar em uma base de código
permissiva. Somente flag.
GPL/AGPL Provenance (output)
Flag no estágio de output em sugestões do modelo que carregam
assinaturas de proveniência copyleft — um marcador de que o modelo pode
ter regurgitado dados de treino copyleft em código gerado.
Insecure-API Advisory
Anota o prompt com um aviso de segurança quando ele referencia um sink
de alto risco —
eval( / exec( / os.system( / subprocess.run( /
pickle.loads( / child_process.exec(. Não bloqueante.Os presets
code_security são determinísticos — regex puro, sem chamada de
rede, seguro no caminho quente. Os scanners em rede (lookup de CVE, SBOM,
SAST) são conexões externas separadas, não presets. Veja
§3.2. Annotate — avise o modelo sem mudar o tráfego
As ações que você configura em um guardrail são block (rejeita a chamada, HTTP 400), mask (redige a correspondência) e flag (apenas registra). A segurança de código adiciona um quarto comportamento por baixo dos panos: annotate, que nem bloqueia nem mascara. Quando uma regra annotate corresponde, o gateway registra uma nota curta e o relay a injeta upstream como um aviso de sistema — de modo que o modelo é avisado, ex.: “this request references a high-risk API (code eval, shell execution, or unsafe deserialization); prefer safer alternatives” — antes de responder. O texto do usuário nunca é rejeitado e nunca reescrito.Um exemplo concreto
Aplique o preset Insecure-API Advisory a um guardrail e vincule-o a uma chave. Depois envie código que chama um sink perigoso:3. Decoração de CVE e SBOM via scanners externos
A primitiva de aviso se generaliza. Conecte um scanner de segurança de código como um fornecedor externo e suas descobertas pegam o mesmo caminho de annotate:Lookup de CVE de dependência (OSV)
Lookup de CVE de dependência (OSV)
Extrai imports e pins de manifesto do texto da requisição e os
cruza-referencia contra o banco de dados público de vulnerabilidades OSV.
Um hit decora o prompt com, ex.: “requests@2.0.0 has CVE-2014-1830
(HIGH). Fixed in 2.20.0.” — de modo que o modelo é avisado sobre uma
vulnerabilidade conhecida em um pacote que foi pedido para usar. Gratuito e
não autenticado, então não há campo de chave de API. O padrão é
annotate; você pode defini-lo como flag ou block em vez disso.
Scanners SBOM e SAST
Scanners SBOM e SAST
Conecte um scanner SBOM (software bill-of-materials) ou SAST
(análise-estática) da mesma forma que você conecta qualquer fornecedor
externo — uma URL base mais credenciais, armazenadas criptografadas e
mascaradas na leitura. Cada descoberta carrega uma identidade estável,
então uma descoberta que você já triou não dispara de novo em cada
requisição.
fail_open como false na regra para falhar fechado em
políticas onde um scan perdido é inaceitável.
4. Combinando com regras de segredos e licença
Um code-security guardrail raramente anda sozinho. A forma comum é um guardrail com algumas regras:| Objetivo | Regra |
|---|---|
| Deter credenciais coladas | .env / Secret-File Block (block) |
| Pegar valores de segredo inline | Secrets Blocker (block) |
| Gatear código copyleft | License Compliance (flag) |
| Direcionar sinks perigosos | Insecure-API Advisory (annotate) |
5. Configure (console + papéis)
Tudo aqui é configurado no console, não via a chave de relay. As rotas de gerenciamento (/api/guardrail/*) autenticam com sua sessão / access token,
não com a chave de relay sk-. Leituras — listar guardrails e o feed
Matches — estão abertas a cada membro do workspace. Escritas (criar /
editar / deletar) e o sandbox de teste exigem o papel Developer ou
acima: o sandbox pode disparar chamadas pagas de modelo e requisições outbound
a fornecedores, então é gateado como uma escrita.
Crie o guardrail
No console, abra Guardrails → New guardrail. O split-button te leva à
biblioteca de templates — escolha um preset Code security como seu
ponto de partida.
Edite livremente
Um preset é uma semente, não uma trava. Ajuste o regex, adicione uma regra
Secrets Blocker, mude uma ação. Use a aba Test para provar que uma
regra dispara da forma que você espera contra texto de amostra antes de
vinculá-la a uma chave.
Descobertas caem no feed Matches do workspace (tipo de regra, ação,
estágio, detalhe). A substring correspondente é registrada apenas quando
Log raw content está ligado — desligado por padrão, a postura conservadora
de privacidade. Veja
logging e privacidade.
6. Para onde ir a seguir
- Bloquear segredos — a regra companheira que pega valores de credencial nos args da requisição.
- Ações — block, mask, flag, annotate e spotlight em profundidade.
- Compliance logger — mantenha um registro imutável de cada descoberta de segurança de código.
- Testes e eval — prove que sua política pega código sabidamente ruim antes de publicá-la.
- Referência de Guardrails — o motor completo.
- Segurança de agentes de IA — onde os rails de segurança de código se encaixam na pilha de controle de zero-trust.
