Permitir análise de assinatura: As assinaturas fora da cadeia também podem capturar seu token?

Ao interagir com os DApps, o usuário deve ficar atento ao controle da quantidade de Tokens autorizados, verificando o conteúdo da assinatura e situações anormais de autorização.

Escrito por: Lisa

fundo

Em 11 de maio, o usuário do Twitter "pineapple.eth" twittou que sua carteira foi roubada devido a um clique errado em um site de phishing (syncswap[.]network) e perdeu mais de US$ 100.

(

Embora a quantidade de perda não seja grande, há um enorme risco de segurança oculto nela. As vítimas geralmente perdem grandes ativos devido ao risco de assinatura "imperceptível" de "não ser capaz de ver". É por isso que escrevemos este artigo.

De acordo com a descrição da vítima, as transações roubadas são as seguintes:

(

(

Dessas duas transações, o chamador do contrato (0x00002…d0000) transfere 34,87 USDC no endereço da vítima (0xA4089…82C3) para (0x8256…D6B8) e transfere 81,36 USDC para (0x5A69… 1C17). Se você apenas olhar para a função transferFrom, não é difícil descobrir que a função dessa função é permitir que um terceiro inicie uma transação para transferir os ativos digitais relevantes da conta do proprietário para a conta do destinatário.

Em seguida, analise o endereço do chamador do contrato (0x00002...d0000) e descubra que há uma operação de permissão extra, que não está nos registros de transações da vítima. Qual é a função da licença?

(

O que é uma Permissão?

De acordo com a introdução oficial, a licença foi introduzida no protocolo ERC20 no EIP-2612, e os usuários podem interagir com o contrato de aplicativo anexando uma assinatura de autorização (permissão) sem autorização prévia. Especificamente, todos sabemos que na transação da moeda ERC20, A pode chamar a função aprovar para autorizar B, ou seja, autorizar o token especificado por A para outra conta operar, e deve ser o proprietário dessa conta para chamar aprovar função. A função da função de permissão é que A assina o objeto de autorização antecipadamente na cadeia e informa B sobre a assinatura obtida, e B pode usar essa assinatura para chamar permissão para realizar a operação de autorização de A (use transferFrom para transferir a permissão ), A pode transferir o token especificado sem enviar a transação e, seja ele o proprietário da conta ou não, pode executar a permissão para autorizar a operação. Além disso, a Uniswap lançou um novo padrão de autorização de Token Permit2.

A seguir, uma comparação entre aprovar e permitir:

função aprovar(endereço usr, uint wad) retorno externo (bool)

{

mesada[msg.sender] [usr] = maço;

}

permissão de função(

titular do endereço, gastador do endereço,

uint256 nonce, uint256 expiração, bool permitido,

uint8 v, bytes32 r, bytes32 s

) externo {

mesada [holder] [spender] = maço;

}

Depois de entender o básico e retornar ao próprio evento de phishing, você pode enviar esta função de permissão com 7 parâmetros:

  • proprietário: endereço autorizado
  • gastador: Quem está autorizado a
  • valor: o número de tokens autorizados fornecidos
  • deadline: é um carimbo de data/hora, válido somente antes do horário determinado
  • v, r, s: dados de assinatura

Entre eles, o prazo é 1714509304969, e o valor é 116239404, o que significa que a autorização é válida até às 0h42 do dia 22 de agosto, 56300 (GMT), quase por tempo indeterminado. E o número de tokens autorizados é 116.239404 USDC, que é o mesmo que o valor roubado pela vítima. Os valores de v, r e s são os dados da assinatura após o usuário (proprietário) assinar no site de phishing, e a função de permissão verificará a validade dos dados da assinatura. Depois que a verificação da assinatura for aprovada, o token do usuário será autorizado ao hacker (spender).

Todo o processo é muito claro: a vítima assinou a assinatura e enviou para o site de phishing, mas não carregou na cadeia. . A assinatura é feita off-chain sem gastar nenhum gás. Mas é preciso ficar claro que falta de gás aqui não significa que não há consumo de gás, mas sim que o signatário (vítima) não precisa pagar gás pela autorização e repasse.

Sem dúvida, assim como aprovar phishing autorizado, permitir é mais perigoso do que aprovar phishing autorizado, afinal, desde que a assinatura seja roubada, a autorização é obtida. Por exemplo, a função de pedido pendente em dex só precisa que o usuário assine uma determinada mensagem, e o usuário pode confiar o ativo ao dex para processamento sem pagar gás. No entanto, se o dex for um site de phishing e forjar mensagens maliciosas para o usuário para assinar, os ativos do usuário podem ser perdidos. Até onde sabemos, algumas carteiras decodificam e exibem as informações de assinatura de phishing de autorização de aprovação, mas a carteira quase não tem aviso para phishing de assinatura de permissão e os usuários correm um risco maior de serem atacados. Ao mesmo tempo, a assinatura de permissão é um comportamento fora da cadeia e é difícil para os usuários perceberem se suas assinaturas vazaram.

MistTrack

No momento, o endereço do hacker foi marcado como um endereço de phishing malicioso pelo MistTrack.

Endereço 1: 0x00002644e79602F056B03235106A9963826d0000

Endereço 2: 0x82563Ba592986Cb277d67B2E7c56ab3BB3FDD6B8

Endereço 3: 0x5A697967F0791d12db8A0f92344Abc6DD07a1C17

Ambos os USDC da vítima foram trocados por ETH.

Use o MistTrack para analisar as moedas ETH, WBTC, USDT, USDC, SHIB, DAI, WETH, DAI, stETH, APE. Atualmente, o endereço 1 obtém um lucro de cerca de 120.000 USD, o endereço 2 obtém um lucro de cerca de 200.000 USD e o endereço 3 obtém um lucro de cerca de $ 2.000. Além disso, de acordo com a análise do Scam Sniffer, uma plataforma antifraude Web3, até 9 de maio, um total de mais de 300 vítimas foram roubados cerca de US$ 690.000 em ativos por assinaturas maliciosas baseadas no Permit2. no Uniswap até 9 de maio Até agora, quase 670.000 endereços na rede principal Ethereum autorizaram o Permit2. Claro, esses dados são apenas a ponta do iceberg de toda a imagem dessa gangue.

Resumo

Este artigo começa principalmente com um caso roubado real e apresenta o risco da assinatura da licença. A equipe de segurança do SlowMist alerta para não abrir sites de origem desconhecida para operar à vontade. Ao interagir com DApps, fique atento ao controle da quantidade de Tokens autorizados ao contrato e verifique cuidadosamente o conteúdo da assinatura. Use ferramentas de autorização como o RevokeCash de vez ao tempo (verifique se há autorizações anormais e você pode usar a ferramenta de gerenciamento de autorização para Uniswap Permit2 (para verificar, se houver alguma autorização anormal, cancele a autorização a tempo.

Link de referência:

Ver original
O conteúdo serve apenas de referência e não constitui uma solicitação ou oferta. Não é prestado qualquer aconselhamento em matéria de investimento, fiscal ou jurídica. Consulte a Declaração de exoneração de responsabilidade para obter mais informações sobre os riscos.
  • Recompensa
  • Comentar
  • Partilhar
Comentar
0/400
Nenhum comentário
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate.io
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)