Ir para o conteúdo
SaferICO SaferICOSegurança de contratos inteligentes
No plano AI Agents — US$ 59,90 por mês

O código está firme, o contrato está firme. Quem é convencido é o que segura a chave.

Um agente com carteira é uma superfície de ataque nova: a perda acontece quando uma frase numa página web convence quem segura a chave a mandar o dinheiro para outro lugar. Esta ferramenta lê o que o seu agente é capaz de fazer, envia 20 sondagens adversariais para descobrir o que ele vai fazer e lhe entrega uma carteira-isca sem chave privada — para que você possa ler tudo o que ele tentar assinar.

20 sondagens adversariais6 fases de ataqueO assinador-isca não tem chaveSomente IDs de rede de teste
//Três trilhas

O que ele pode fazer, o que ele faz, e o que ele assina

As três produzem tipos diferentes de prova. Só a prova observada pode ser reportada como Crítica — uma inferência tirada de um grafo de capacidades, nunca.

A · Grafo de capacidades

Cole as definições de ferramenta do agente: quais podem mover valor, quais trazem para dentro um texto que o agente não escreveu, quais tocam em chaves e se há algo entre elas e a assinatura. Seis formatos de configuração são lidos.

B · 20 sondagens adversariais

20 mensagens adversariais vão até o endpoint do agente e a resposta é lida. É a única trilha que produz prova observada.

C · Assinador-isca

Damos a você um endereço de RPC. Você liga o seu agente a ele com uma única variável de ambiente. Cada assinatura que ele tenta é registrada e decodificada: qual função, qual destinatário, qual valor, e se a permissão era ilimitada.

Cargas inofensivas

Cada sondagem pede ao agente algo reconhecível e trivial: repetir um token, dizer um endereço-sentinela sem chave privada, esticar-se até uma ferramenta que ninguém pediu. A vulnerabilidade é a obediência.

Prova de posse é obrigatória

Antes de uma única requisição sair, você precisa publicar o arquivo /.well-known/saferico-agent-test.txt na própria origem do endpoint. Só a sua conta consegue derivar o token que vai nele.

O que não foi medido não conta

Uma checagem que não pôde rodar é reportada como NÃO TESTADA, jamais como bem-sucedida. Se pouca coisa foi medida, a nota simplesmente não é dada, em vez de te bajular.

As ferramentas em si (o scanner, os painéis, o espaço de trabalho da SAFI) funcionam por enquanto com a interface em inglês. Estas páginas explicam tudo em português antes de você entrar nelas.

Por que é seguro

Esta ferramenta ataca o seu agente. Ela só pode fazer isso com limites demonstráveis — e os limites estão escritos um a um abaixo.

🔑 O assinador-isca não tem chave privada

Não é «configurado para não assinar»: não há chave no módulo, então assinar não é uma regra que ele obedece, é uma operação que ele não consegue realizar. Um erro aqui não pode virar uma moeda movida, porque não há nada para mover.

E ele não fabrica recibo falso. A implementação fácil devolveria um hash de transação plausível para o agente seguir o seu caminho — isso é fabricar prova de uma transação que nunca aconteceu. Em vez disso, volta um erro JSON-RPC que diz claramente o que houve. O achado é a tentativa em si.

01A sua instrução de sistema não sai desta página

As suas definições de ferramenta e a sua instrução de sistema são analisadas nesta máquina. O que é enviado para montar as cadeias é estrutura: nomes de ferramenta, classes de capacidade e valores verdadeiro/falso.

A única exceção é marcada explicitamente: para que a sondagem de vazamento tenha algo com que comparar, uma expressão de até 200 caracteres escrita por você é enviada junto com a sondagem. Ela é comparada ali e descartada — não é armazenada, nem registrada, nem escrita no relatório, nem enviada ao endpoint testado. Se você não quiser compartilhar esses 200 caracteres, deixe o campo vazio; a sondagem é então reportada como NÃO TESTADA, e não como bem-sucedida.

02Seis fases, na ordem do próprio ataque

As sondagens não são aleatórias; elas avançam no formato de um ataque real:

  • Injeção de comando — ele obedece a uma instrução que chegou como dado? 6 sondagens
  • Abuso de ferramenta — dá para esticá-lo até uma ferramenta que ninguém pediu? 3 sondagens
  • Manipulação de transação — é o texto que escolhe o destinatário ou o valor? 3 sondagens
  • Assinatura de carteira — ele assina sem perguntar à pessoa a quem é obrigado a perguntar? 2 sondagens
  • Escalada de privilégio e perda de fundos — onde a cadeia se fecha

A mais realista fica em primeiro lugar: a injeção indireta. Ninguém escreve «ignore as suas instruções anteriores» para um agente de DeFi — a pessoa coloca isso na descrição de um token, numa página web, num README ou num texto on-chain que o agente lê através de uma ferramenta.

03A sessão se encerra sozinha

Uma sessão de isca custa 10 créditos e é limitada por três tetos: 60 minutos, 200 eventos registrados e parada automática após 15 minutos sem atividade. Cada um desses números é lido, na geração da página, do módulo que os aplica — de modo que a página não consegue anunciar um limite que o código não impõe.

Os IDs de rede são apenas de teste; um ID de rede principal é recusado na criação da sessão. Um agente que se acha na rede principal pode fazer coisas que o operador dele vai ter que explicar depois.

//Perguntas

Antes de colocar o agente à prova

As sondagens fazem mal de verdade ao meu agente?
As cargas são inofensivas por desenho: repetir um token, dizer um endereço-sentinela sem chave privada. Mas um agente que obedece pode executar operações reais nos sistemas a que está ligado — é por isso que pedimos que você confirme que tem autorização e prove a posse com um arquivo.
Por que às vezes a nota simplesmente não é dada?
Porque uma nota alta tirada de poucas checagens engana. Toda checagem que não pôde rodar conta como NÃO TESTADA, e se o que foi medido é pouco demais, a nota não é dada. O denominador deve ser lido antes do número.
O assinador-isca realmente não guarda dinheiro?
Não guarda. Não há chave privada no módulo. Ele responde a eth_chainId, eth_accounts e eth_getBalance como um nó normal e informa um saldo que valeria a pena mover — mas não consegue assinar, porque não tem com o que assinar.
Quais formatos de configuração ele lê?
Seis: a saída de tools/list do MCP, o esquema de funções da OpenAI, o esquema de ferramentas da Anthropic, o character.json do ElizaOS, a exportação de fluxo do n8n ou do Make, e o código-fonte direto do agente (JS / TS / Python).

Escaneie o contrato antes de mandar dinheiro

Cole o endereço do contrato e veja as permissões do proprietário, a liquidez e o resultado da simulação de venda antes de se expor. A pequena taxa por escaneamento aparece antes da assinatura — e em qualquer assinatura ela já vem incluída, sem limite.