Monitoramento em tempo de execução
Também conhecido como Monitoramento de segurança em tempo real · Detecção de ameaças onchain
Monitoramento em tempo de execução é a observação contínua da atividade onchain de um protocolo para sinalizar, e às vezes bloquear, transações suspeitas enquanto acontecem. Ele complementa as auditorias, que revisam o código em um momento específico, observando o que o código está de fato fazendo.
Muitos exploits em DeFi não são uma transação só. Um atacante implanta um contrato, testa, toma fundos emprestados, mexe em preços e só então esvazia o alvo, às vezes ao longo de minutos ou horas. Cada passo deixa um rastro em uma blockchain pública. O monitoramento em tempo de execução é a prática de ler esses rastros rápido o bastante para agir.
Como funciona
Os sistemas de monitoramento observam a blockchain, e muitas vezes a fila de transações à espera de inclusão, em busca de padrões ligados a ataques. Sinais típicos:
- um contrato recém-implantado que chama as funções de um protocolo em uma ordem incomum
- um flash loan grande seguido de operações que movem o preço de um oráculo
- mudanças bruscas no preço da cota de um vault ou nos saldos de um pool
- ações administrativas, como uma transferência de propriedade ou um upgrade, que ninguém anunciou
- fundos indo para endereços ligados a exploits anteriores
A detecção costuma acontecer em duas etapas. Um filtro rápido pontua cada nova transação ou contrato em relação a padrões de ataque conhecidos, e os suspeitos são simulados contra o estado atual da blockchain para ver o que de fato fariam: quais saldos mudam, quais preços se movem e para onde vão os fundos. É a simulação que permite a um sistema distinguir uma operação grande, mas comum, do primeiro movimento de um exploit.
Quando um sinal dispara, o sistema alerta a equipe. Em algumas configurações, ele também pode acionar respostas automáticas: pausar um contrato, bloquear uma função ou tirar fundos do alcance antes que um ataque se conclua.
Um exemplo simples
Um atacante implanta um contrato que toma uma quantia grande por meio de um flash loan, passa esse valor por um pool de liquidez raso para distorcer um preço e se prepara para tomar empréstimo com base nesse preço. O sistema de monitoramento simula o novo contrato, reconhece o padrão e o marca como de alto risco antes que a transação real entre. O guardião do protocolo pausa os empréstimos, o ataque fracassa e a equipe investiga. Sem monitoramento, o primeiro sinal poderia ter sido um vault vazio.
Monitoramento vs. auditorias e bounties
Uma auditoria de contrato inteligente examina o código antes da implantação ou logo depois, e um bug bounty convida pesquisadores a continuar examinando. O monitoramento em tempo de execução observa o comportamento. Ele pode detectar ataques que usam código que ninguém pensou em revisar, como uma interação com um protocolo recém-lançado, e cobre eventos operacionais, como atividade administrativa suspeita, que uma revisão de código nunca vê.
Riscos e limites
O monitoramento não consegue impedir o que não enxerga a tempo. Alguns ataques se concluem em uma transação, deixando apenas a breve janela antes de ela entrar em um bloco, e rotas privadas de transação podem esconder até isso. Respostas automáticas exigem um desenho cuidadoso: uma pausa que dispara com facilidade demais atrapalha usuários honestos, e uma que dispara devagar demais não serve para nada. O poder de pausar é ele próprio um risco se as chaves por trás dele forem mal protegidas. E um sistema de monitoramento só é tão bom quanto seus modelos, então um tipo novo de ataque pode não corresponder a nenhum padrão conhecido. Por isso o monitoramento funciona junto com auditorias, bounties e prova de reservas, e não no lugar deles.
Como a Tori Finance usa isso
A Tori Finance usa o monitoramento em tempo de execução da Hypernative para observar a atividade onchain de seus contratos inteligentes. Ele acrescenta uma camada ao vivo às auditorias de contratos inteligentes feitas pela Sherlock e pela Nethermind. A Tori também mantém seu próprio programa interno de bug bounty.
Perguntas frequentes
É possível impedir ataques em DeFi em tempo real?
Às vezes. Se um ataque leva vários passos, ou se a transação fica visível antes de entrar em um bloco, o monitoramento pode sinalizá-lo e uma resposta automática pode pausar a função visada. Ataques que se concluem em uma transação oculta são muito mais difíceis de impedir.
Qual é a diferença entre uma auditoria e o monitoramento?
Uma auditoria revisa o código antes da implantação ou logo depois. O monitoramento observa o que acontece quando o código já está no ar, incluindo interações e ações administrativas que uma auditoria nunca vê.
O que um sistema de monitoramento procura?
Padrões incomuns: contratos novos sondando um protocolo, flash loans grandes que movem preços, mudanças bruscas em saldos ou no preço de cotas, upgrades não anunciados e fundos indo para endereços ligados a exploits anteriores.
Termos relacionados
Auditoria de contrato inteligente
Uma auditoria de contrato inteligente é uma revisão independente de segurança do código de um protocolo, que busca vulnerabilidades antes de ele entrar no ar ou logo depois. Ela reduz o risco dentro do escopo e da data informados, mas não é uma promessa de que o código está livre de bugs.
Bug bounty
Um programa de bug bounty paga pesquisadores de segurança por relatar vulnerabilidades de forma responsável em vez de explorá-las, com recompensas proporcionais à gravidade do problema. Ele mantém o código de um protocolo sob revisão muito depois de as auditorias terminarem.
Oráculo de preço
Um oráculo de preço traz dados externos, como o preço de um token, para uma blockchain, para que contratos inteligentes possam usá-los. Mercados de empréstimo avaliam o colateral por meio de oráculos, então um preço errado ou manipulado pode disparar liquidações que nunca deveriam acontecer.
Fontes
- Hypernativewww.hypernative.io
- ethereum.org: Smart contract securityethereum.org
Escrito pela equipe da Tori Finance. Não é recomendação de investimento. Os rendimentos variam; o capital está sujeito a risco.