← Voltar para todas as publicações
Publicado em · por Renaud Deraison

Uma arquitetura de referência para a segurança de agentes, e como o Bromure se encaixa nela

Engenheiros da Docker, Keycard, Barclays, Socket e Secure Theory publicaram The Secure Software Factory, uma arquitetura de referência para rodar agentes de codificação com segurança, construída sobre os controles do Agent Baseline. É um bom começo, e ficamos felizes em vê-la. Veja como o Bromure Agentic Coding cobre as quatro fronteiras dela e onde ele vai além em observar e responder.

Em 13 de outubro, um grupo de engenheiros publicou The Secure Software Factory, uma arquitetura de referência para organizações que deixam agentes de codificação escrever, testar e entregar código. Ela foi redigida por Eli Aleyner, Ranti Familusi e William Manning (Docker), Allie Howe e Ian Livingstone (Keycard), Andy McMahon (Barclays), Ahmad Nassri (Socket) e Aaron Stanley (Secure Theory). Ela se apoia no Agent Baseline, um conjunto de 35 controles agrupados em seis resultados, que a Keycard reuniu com engenheiros da Docker e da Snyk.

Ficamos felizes em vê-la. É um rascunho público e versionado, com identificadores de controle estáveis, sob a licença CC BY 4.0, aberto a comentários no GitHub, e pensado para ser doado a uma entidade comunitária quando amadurecer. Fornecedores e as equipes que compram deles agora podem apontar para os mesmos controles.

O que a arquitetura pede

A ideia central cabe numa linha: “o agente propõe, a política autoriza e a infraestrutura aplica.” O agente é tratado como não confiável, seja porque está confuso, porque foi manipulado por algo que leu ou porque foi tomado, então os limites dele precisam ser aplicados fora das próprias decisões dele. O documento traça quatro fronteiras:

  • Sandbox: o código do agente roda apenas numa sandbox isolada, que ele não consegue alterar nem da qual consegue escapar.
  • Rede: nada entra nem sai, a não ser por caminhos que o agente não consegue reconfigurar nem contornar.
  • Cadeia de suprimentos: os componentes vêm apenas de fontes aprovadas, e nada que entra na sandbox carrega credenciais.
  • Identidade e acesso: um agente usa apenas o acesso concedido para a tarefa dele, nunca guarda credenciais e precisa de uma aprovação que ele mesmo não pode dar para ações de alto impacto.

Essas fronteiras valem em três níveis de autonomia: um desenvolvedor conduzindo um agente (Nível 1), um fluxo de trabalho que roda agentes como serviço compartilhado (Nível 2) e um agente orquestrador que decide o que acontece em seguida (Nível 3). Em volta delas ficam uma camada de execução capaz de parar qualquer agente e uma trilha de auditoria fora do alcance de todos os agentes.

O documento ancora isso em incidentes reais. Num deles, um agente de codificação trabalhando numa tarefa de staging encontrou um token de API num arquivo sem relação com a tarefa e, com ele, apagou um banco de dados de produção em nove segundos. No worm Shai-Hulud, pacotes maliciosos coletavam todas as credenciais que encontravam na máquina que os instalava.

Como o Bromure cobre as quatro fronteiras

O Bromure Agentic Coding roda no seu Mac e coloca cada workspace de agente na sua própria VM Linux. Veja como isso se alinha.

FronteiraO que a arquitetura pedeBromure
SandboxIsolamento proporcional ao risco, até uma microVM com kernel próprio; nenhum acesso ao host; testes rodando dentro do mesmo isolamento; parar quando necessário e guardar o estado como evidênciaUma VM Linux completa por workspace, com kernel próprio e o seu próprio Docker para testes. Com uma política OpenShell, Landlock e seccomp confinam o agente dentro dela. Uma máquina pode ser pausada, e Salvar para investigação exporta os discos dela antes que ela seja apagada
RedeTodo o tráfego por um proxy de saída aplicado na camada de rede, não por configurações de proxy; aplicação por operaçãoO switch virtual do Mac verifica cada conexão e desvia o tráfego web para o proxy do Bromure mesmo quando uma ferramenta ignora as configurações de proxy. As regras podem limitar métodos HTTP e, com uma política OpenShell, caminhos e operações MCP, GraphQL e WebSocket
Cadeia de suprimentosPacotes apenas por um ponto de admissão; versões novas cumprem um período de espera; nada que entra na sandbox carrega credenciaisInstalações de oito ecossistemas passam pelas verificações do Bromure: um bloqueio por idade de dois dias para versões novas, ligado por padrão, mais consultas opcionais ao OSV e ao socket.dev. Um pacote sem veredito fica retido até você decidir
Identidade e acessoO agente nunca guarda credenciais; elas são anexadas no proxy; ações de alto impacto precisam de aprovaçãoA VM só guarda tokens substitutos; o proxy troca pelos reais para o host certo. As chaves SSH ficam no Mac, e as requisições à AWS são assinadas de novo fora da VM. Escritas como um git push podem exigir um clique, e branches de agentes só são mesclados quando você aprova

A fronteira das credenciais é a que mais importa em incidentes como esses. Um pacote do Shai-Hulud que vasculha uma VM do Bromure só encontra tokens substitutos, inúteis fora do proxy do Bromure. (A Socket, onde trabalha um dos autores, também é uma das verificações de pacotes que o Bromure pode usar.)

Os níveis também se encaixam. Um desenvolvedor rodando agentes em sessões é o Nível 1. Automações que iniciam um agente num horário programado, ou quando chega um pull request do GitHub ou uma issue do Linear, cada uma num worktree git novo e, opcionalmente, num clone descartável da máquina, são o Nível 2. Agentes delegando trabalho a outros agentes, com cada mensagem retransmitida pelo host, examinada em busca de injeção de prompt e registrada, são o começo do Nível 3.

Onde o Bromure vai além

O rascunho é franco sobre os próprios pontos fracos. A declaração de procedência dele diz que, dos seis resultados, Discover, Observe e Respond não são vendidos por nenhuma das organizações organizadoras e são, por isso, menos desenvolvidos, e chama essa assimetria de “um defeito”. Ela também diz que, pelo próprio teste do baseline, nenhuma das três empresas organizadoras é uma implementação completa. É algo incomumente honesto de se colocar por escrito.

Observe e Respond são onde mais investimos trabalho:

  • Observar de dentro do kernel. A arquitetura pede que o runtime da sandbox registre a atividade de processos, arquivos e rede. A sentinela do kernel do Bromure faz isso de dentro do kernel do convidado e envia tudo ao Mac por um canal que o root da VM não consegue fechar. Se algo tentar silenciá-la, isso conta como adulteração.
  • Da intenção ao resultado. O controle OBS-05 do Agent Baseline pede evidências que liguem o que um agente pretendia fazer ao que ele fez. A linhagem do Bromure rastreia cada conexão de volta pelos processos que a abriram até a chamada de ferramenta do agente e o raciocínio que o modelo deu para ela. Quando o script de instalação de uma dependência tenta enviar dados para fora, você vê a instalação que o executou e por que o agente rodou essa instalação.
  • Examinar as entradas. A arquitetura trata tudo o que um agente lê como não confiável. O Bromure pode examinar resultados de ferramentas e arquivos de regras como CLAUDE.md em busca de injeção de prompt no seu Mac, examina cada mensagem entre agentes e sempre examina o texto de um evento do GitHub ou do Linear antes que uma automação aja sobre ele.
  • Dados enviados para inferência. A proteção de dados pessoais do Bromure troca nomes, e-mails, números de conta e dados semelhantes por substitutos antes que uma requisição chegue a um modelo na nuvem, e os restaura na resposta.
  • Responder com as evidências intactas. Quando o Bromure vê uma credencial saindo para onde não deveria, ele pausa a VM. Você pode desligá-la ou salvar os discos dela para investigação; depois disso, a máquina se recusa a dar boot até ser apagada. Com políticas OpenShell, uma rajada de operações recusadas põe o workspace em quarentena: rede cortada, VM pausada.
  • Rastros fora do alcance. O rastro de cada máquina, com requisições ao modelo, chamadas de ferramenta, comandos e atividade de arquivos, fica guardado no Mac, criptografado, fora da VM.

Há mais uma diferença: onde ele roda. A arquitetura foi escrita para fábricas, e o Nível 1, um desenvolvedor com um agente local, ganha alguns parágrafos. É aí que a maioria dos agentes roda hoje. O Bromure coloca as quatro fronteiras no Mac desse desenvolvedor, sem nenhuma infraestrutura para montar, e é gratuito e de código aberto.

Um bom começo

The Secure Software Factory está na versão 1 e aberta a comentários: cuidadosa com o que afirma e honesta sobre os produtos de quem a moldou. O rastreador de issues dela está aberto a qualquer pessoa, e as seções sobre observar e responder são onde achamos que mais falta ser escrito.

Mais empresas trabalhando em segurança de agentes em público, com identificadores de controle estáveis, é bom para todos que rodam agentes.