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.
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.
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.
Entrar de novo no contrato antes que ele termine de anotar no livro o que você levou.
Ataques que não exigem capital: o capital é tomado emprestado e devolvido dentro de uma única transação.
O contrato pergunta a outro quanto vale alguma coisa, e essa resposta passa a ser escolhível.
Mexer no mercado que o contrato usa para precificar, ou negociar na frente e atrás de quem vai mexer no preço.
Uma assinatura que deveria funcionar uma vez funcionando mais de uma vez, em mais de uma rede ou para mais de uma finalidade.
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á.
O caminho que vai do chamador comum ao proprietário, e do proprietário a mais do que proprietário.
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.
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.
Três passos: o escaneamento no seu navegador, o envio apenas dos achados e um nível de prova declarado explicitamente para cada elo.
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.
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.
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.
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.
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.