Ir para o conteúdo
SaferICO SaferICOSegurança de contratos inteligentes
Playbook gratuito · a montagem das cadeias está no plano AI Agents

Não o que existe no seu código — o que é explorável?

O scanner responde «o que está errado neste código». A pergunta que você faz antes do lançamento é outra: qual desses um atacante consegue realmente usar? Esta ferramenta pega os achados que o escaneamento produziu e tenta enfileirá-los num caminho que funcione — e, para cada caminho que monta, diz quanto disso é prova e quanto é inferência.

21 cadeias de ataque10 famílias de ataqueNunca toca na chainPlaybook aberto a todos
//O que ela cobre

Dez famílias de ataque

Os números abaixo saem da própria tabela de padrões do simulador, medidos na geração desta página. Se uma família ficasse vazia, a página não continuaria anunciando — ela falharia durante a geração.

Controle de acesso — 4 cadeias

Uma função que concede permissão e esquece de checar quem a chamou. A família mais comum e a mais barata de fechar.

Reentrância — 1 cadeia

Entrar de novo no contrato antes que ele termine de anotar no livro o que você levou.

Caminhos de flash loan — 2 cadeias

Ataques que não exigem capital: o capital é tomado emprestado e devolvido dentro de uma única transação.

Manipulação de oráculo — 1 cadeia

O contrato pergunta a outro quanto vale alguma coisa, e essa resposta passa a ser escolhível.

Manipulação de preço — 2 cadeias

Mexer no mercado que o contrato usa para precificar, ou negociar na frente e atrás de quem vai mexer no preço.

Assinatura e repetição — 1 cadeia

Uma assinatura que deveria funcionar uma vez funcionando mais de uma vez, em mais de uma rede ou para mais de uma finalidade.

Atualizabilidade — 1 cadeia

O código atrás do endereço não é o código auditado. Cada achado do relatório passou a ser sobre um código que já não está lá.

Escalada de privilégio — 3 cadeias

O caminho que vai do chamador comum ao proprietário, e do proprietário a mais do que proprietário.

Lógica de negócio — 4 cadeias

Cada linha está correta, e a regra que elas somam está errada. É onde a análise estática é mais fraca e o ser humano é mais forte.

Econômico / DeFi — 2 cadeias

Nada está quebrado. Os incentivos simplesmente pagam mais ao atacante do que a você.

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.

Como funciona

Três passos: o escaneamento no seu navegador, o envio apenas dos achados e um nível de prova declarado explicitamente para cada elo.

🛑 Aqui nada toca a chain

O código-fonte ou é o texto que você colou ou é o código verificado lido do explorador; a análise roda neste navegador. Nenhuma transação é montada, assinada ou enviada.

Ainda assim, a página pede que você confirme que tem autorização. Essa caixa sozinha não prova nada — mas registra a intenção, e é exatamente essa a diferença entre esta ferramenta e uma que desenha, a pedido, como atacar o contrato de um desconhecido.

01Primeiro o escaneamento, depois as cadeias

O motor com 201 detectores roda no seu navegador, e o seu código não sai de lá. O que vai para o servidor para montar as cadeias é apenas a estrutura que o escaneamento produziu: identificadores de detector, a tabela de funções e as flags de controle de acesso.

Você não precisa confiar na nossa palavra para verificar isso — abra a aba de rede do seu navegador e olhe o corpo da requisição que sai.

02O veredito mais alto que ela alcança é «Potencial»

Esse teto foi colocado de propósito; não é uma lacuna que esquecemos de remover. Lendo o código-fonte dá para dizer que um caminho está aberto; não dá para dizer que ele foi percorrido.

  • Confirmado — uma prova de conceito rodou numa cópia isolada e funcionou. Como esta ferramenta não executa nada, ela nunca produz esse veredito.
  • Potencial — todas as pré-condições necessárias são atendidas por algo demonstrável no seu código. O caminho está aberto; não se está dizendo que alguém o percorreu.
  • Não confirmado — as pré-condições são atendidas, mas a cadeia se apoia bastante em inferência estrutural. Trate como uma pista para o olho humano.

03Uma cadeia não é reportada sem as pré-condições atendidas

Cada cadeia do playbook declara ela mesma quais condições precisam ser verdadeiras antes de ser reportada contra o seu código. Se «o contrato faz delegatecall» e «o endereço de destino pode ser influenciado por quem chama» não forem atendidas as duas, aquela cadeia não entra no seu relatório.

Um achado crítico falso custa mais do que a confiança que dez achados médios verdadeiros conquistam. O produto foi calibrado por essa frase.

//Perguntas

Antes de rodar o simulador

Qual a diferença para o scanner?
O scanner lista, esta ferramenta combina. O scanner diz «esta função não checa o proprietário». Esta diz «esta função não checa o proprietário e consegue escrever nesta variável, e as duas coisas juntas bastam para tomar a propriedade» — e mostra a prova dos dois elos.
Preciso pagar pelo playbook?
Não. As 21 cadeias, com as pré-condições e os métodos de fechamento, estão abertas a todos na página. A única coisa paga é a montagem dessas cadeias contra o seu contrato: está no plano AI Agents e custa 5 créditos.
O meu código-fonte é enviado para vocês?
Não. O escaneamento roda no seu navegador. Para o servidor vai apenas a saída do escaneamento — dados estruturais como identificadores de detector e a tabela de funções. O código em si não sai desta máquina.
Posso testar um endereço não verificado?
Não. Em bytecode não verificado não há funções para ler, e portanto não há material com que montar uma cadeia. Ou cole o código-fonte, ou verifique o contrato no explorador.

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.