Ir para o conteúdo
SaferICO SaferICOSegurança de contratos inteligentes
Fonte aberta — sem conta, sem taxa

Bilhões desapareceram. O código continua lá.

Todo grande ataque deixou uma ou duas linhas de código que dá para ler hoje. Esta fonte reúne os maiores incidentes já registrados: o caminho do ataque passo a passo, a própria função que estava exposta, a correção e os links para os relatórios pós-incidente.

Código realFontes documentadasCaminho de ataque por incidenteLeitura aberta
//O que você encontra

Por que ler o desastre dos outros

Isto não é uma lista de notícias. Cada incidente foi desmontado até virar uma lição aplicável ao seu próprio código.

O caminho do ataque

Do primeiro passo até a saída do dinheiro: o que o atacante chamou, em que ordem e por que exatamente aquela ordem funcionou.

O código exposto

A função como ela estava no momento do incidente. Você lê a falha com os seus próprios olhos, não numa descrição dela.

A correção

O que mudou depois do incidente e qual seria o padrão seguro que teria evitado tudo desde o início.

Classe de vulnerabilidade

Cada incidente é ligado à classe de vulnerabilidade a que pertence e aos registros da mesma classe no nosso banco de vulnerabilidades.

Fontes

Links para os relatórios pós-incidente originais e para análises de segurança independentes. Você confere cada número por conta própria.

Filtro por classe

Filtre por ano, por rede ou por tipo de vulnerabilidade — útil quando você quer, por exemplo, ler todos os casos de reentrância em sequência.

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.

A lição que se repete

Os incidentes diferem nos detalhes e são incomodamente parecidos nas causas.

⚠️ A maioria destes projetos tinha sido auditada

A conclusão incômoda desta fonte: muitos destes protocolos passaram por auditoria antes de serem atacados. A auditoria reduz a probabilidade, não a zera.

O que reduz mais a probabilidade não é um relatório só, são camadas: auditoria, monitoramento contínuo depois do lançamento, limites de gasto e a capacidade de estancar a sangria rápido. Os incidentes em que a perda ficou menor são os que tinham a última camada.

01O erro mais comum não está na matemática

Reentrância e controle centralizado nas permissões explicam boa parte do prejuízo total. Os dois são conhecidos há anos e os dois continuam se repetindo.

Uma única chave privada capaz de alterar a lógica do contrato é um ponto único de ruptura, por melhor que seja o código em volta dela.

02Pontes e oráculos concentram risco

Pontes guardam saldos enormes e confiam em mensagens que vêm de fora; oráculos trazem para dentro um preço que pode ser manipulado. Todo grande incidente nesses dois temas se apoia na mesma ideia: um dado em que se confiou mais do que ele merecia.

03O que fazer com isso na prática

  • Antes do lançamento, escaneie o seu contrato para as mesmas classes de vulnerabilidade
  • Depois do lançamento, rode monitoramento contínuo — é mais rápido do que descobrir pelo Twitter
  • Reduza o que uma única chave consegue fazer e coloque atraso de tempo nas permissões arriscadas
//Perguntas

Sobre a fonte

A leitura é aberta?
Sim, a galeria inteira é gratuita e sem conta. É uma fonte de consulta, e colocá-la atrás de uma assinatura contraria o seu propósito.
De onde vêm os números?
De relatórios pós-incidente publicados e de análises de empresas de segurança; cada incidente carrega os próprios links de fonte. Quando as fontes divergem na estimativa da perda, dizemos isso em vez de escolher o número maior.
A lista é atualizada?
Ela é revista e ampliada quando acontece um incidente grande o bastante ou quando sai um relatório pós-incidente que muda o nosso entendimento sobre um caso já listado.
Como tenho certeza de que o meu código não tem o mesmo padrão?
Abra o scanner e cole o seu código ou o endereço do seu contrato. Os mesmos detectores que classificam estes incidentes rodam sobre o seu código, e o nosso banco de vulnerabilidades descreve cada classe em detalhe.

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.