Revelação: Golpe de Phishing de Assinatura Permit2 do Uniswap
Os hackers são uma presença assustadora no ecossistema Web3. Para os projetos, o código aberto significa que hackers de todo o mundo podem estar de olho em você, e uma vez que uma vulnerabilidade de segurança aparece, as consequências podem ser difíceis de suportar. Para os usuários individuais, se não entenderem as operações que estão realizando, cada interação ou assinatura na blockchain pode resultar em roubo de ativos. Portanto, a questão da segurança sempre foi um dos problemas mais complicados no mundo das criptomoedas. Devido às características da blockchain, uma vez que os ativos são roubados, é quase impossível recuperá-los, por isso é especialmente importante dominar conhecimentos de segurança no mundo das criptomoedas.
Recentemente, um novo método de phishing começou a ser ativo, basta assinar e será roubado, o método é extremamente oculto e difícil de prevenir. Endereços que já interagiram com o Uniswap podem estar em risco. Este artigo irá explicar este método de phishing por assinatura, a fim de evitar mais perdas de ativos.
Desenvolvimento do evento
Recentemente, um amigo ( chamado de pequeno A ) teve os ativos da sua carteira roubados. Ao contrário dos métodos de roubo comuns, pequeno A não divulgou a chave privada, nem interagiu com contratos de sites de phishing.
O explorador de blockchain mostra que o USDT na carteira de A foi transferido através da função Transfer From. Isso significa que outro endereço executou a operação para mover o Token, e não houve vazamento da chave privada da carteira.
Detalhes da transação mostram:
O endereço com o sufixo fd51 transferiu os ativos do pequeno A para o endereço com o sufixo a0c8.
Esta operação interage com o contrato Permit2 da Uniswap.
A questão chave é: como o endereço com o final fd51 obteve a permissão para este ativo? Por que está relacionado com a Uniswap?
Uma investigação mais aprofundada revelou que, antes da transferência dos ativos de A, o endereço terminado em fd51 realizou uma operação de Permit, e ambos os objetos de interação dessas duas operações foram o contrato Permit2 da Uniswap.
Uniswap Permit2 é um novo contrato lançado no final de 2022, que permite a autorização de tokens para compartilhar e gerenciar em diferentes aplicações, com o objetivo de criar uma experiência de usuário mais unificada, econômica e segura. À medida que mais projetos integram o Permit2, ele pode padronizar a aprovação de tokens em todas as aplicações, reduzindo os custos de transação e aumentando a segurança dos contratos inteligentes.
Permit2 atua como intermediário entre o usuário e o Dapp, permitindo que o usuário conceda permissões de Token apenas ao contrato Permit2, que pode ser compartilhado por todos os Dapps integrados ao Permit2. Isso reduz o custo de interação do usuário e melhora a experiência. No entanto, isso também é uma espada de dois gumes, pois o problema reside na forma de interação com o Permit2.
Na forma tradicional de interação, a autorização e a transferência de fundos são interações do usuário na blockchain. O Permit2 transforma a operação do usuário em uma assinatura off-chain, e todas as operações on-chain são realizadas por um papel intermediário. A vantagem disso é que, mesmo que a carteira do usuário não tenha ETH, ele pode usar outros tokens para pagar as taxas de Gas ou ser reembolsado pelo papel intermediário.
No entanto, a assinatura off-chain é o aspecto mais facilmente negligenciado pelos usuários. Muitas pessoas não verificam cuidadosamente o conteúdo da assinatura e não compreendem seu significado, o que é o aspecto mais perigoso.
Para ativar essa assinatura de phishing Permit2, o pré-requisito chave é que a carteira sendo pescada já tenha autorizado o Token ao contrato Permit2 da Uniswap. Atualmente, sempre que se realiza uma troca (Swap) em um Dapp que integra o Permit2 ou na Uniswap, é necessário autorizar o contrato Permit2.
O mais assustador é que, independentemente do valor do Swap, o contrato Permit2 da Uniswap sempre permitirá que o usuário autorize o saldo total desse Token. Embora o MetaMask permita a entrada de um valor personalizado, a maioria das pessoas pode optar diretamente pelo valor máximo ou padrão, e o valor padrão do Permit2 é um limite ilimitado.
Isto significa que, desde que tenhas interagido com a Uniswap após 2023 e autorizado montantes ao contrato Permit2, poderás estar em risco deste esquema de lavar os olhos.
A chave está na função Permit, que permite que hackers usem sua assinatura para transferir a quantidade de Token que você autorizou ao contrato Permit2 para outros endereços. Assim que obtiverem sua assinatura, os hackers poderão acessar os Tokens em sua carteira e transferir ativos.
Análise detalhada do evento
fluxo de trabalho da função permit:
Verifique se a hora atual ultrapassa o prazo de validade da assinatura (sigDeadline)
Verificar a autenticidade da assinatura
Se através da verificação, a atualização do registro permitir o uso dos seus tokens por outras pessoas
O foco está nas funções verify e _updateApproval.
A função verify obtém os três dados v, r, s das informações de assinatura, utilizados para recuperar o endereço da assinatura da transação. O contrato compara o endereço recuperado com o endereço do proprietário do token fornecido; se forem iguais, a validação é bem-sucedida e a função _updateApproval é chamada; se forem diferentes, a transação é revertida.
A função _updateApproval atualiza o valor de autorização após a verificação da assinatura, o que significa que os seus direitos foram transferidos. Neste momento, a parte autorizada pode chamar a função transferfrom para transferir tokens para o endereço especificado.
Transações reais na cadeia mostram:
owner é o endereço da carteira de A, (, terminando em 308a)
Nos Detalhes, é possível ver o endereço do contrato do Token autorizado (USDT) e informações sobre o montante.
Spender é o endereço hacker com o número final fd51
sigDeadline é o tempo de validade da assinatura, signature é a informação de assinatura do pequeno A
Ao revisar o histórico de interações do pequeno A, descobrimos que ele anteriormente usou o Uniswap e clicou no limite de autorização padrão, ou seja, um limite quase ilimitado.
Revisão simples: O A autorizou anteriormente ao Permit2 um limite ilimitado de USDT ao usar o Uniswap. Mais tarde, ao operar a carteira, ele inadvertidamente caiu em uma armadilha de phishing de assinatura do Permit2 projetada por hackers. Depois de obter a assinatura do A, os hackers realizaram operações de Permissão e Transferência do Permit2, transferindo os ativos do A. Atualmente, o contrato Permit2 do Uniswap parece ter se tornado um terreno fértil para phishing, e esse tipo de phishing de assinatura começou a ser ativo há cerca de dois meses.
Como prevenir?
Considerando que o contrato Uniswap Permit2 pode se tornar mais popular no futuro, mais projetos podem integrá-lo para compartilhamento de autorizações, medidas eficazes de prevenção incluem:
Compreender e identificar o conteúdo da assinatura:
O formato de assinatura Permit geralmente contém informações-chave como Owner, Spender, value, nonce e deadline. Se você deseja aproveitar a conveniência e os baixos custos trazidos pelo Permit2, é necessário aprender a reconhecer esse formato de assinatura. Usar um plugin de segurança é uma boa escolha.
Uso separado de carteira de ativos e carteira de interação:
Se possuir um grande volume de ativos, recomenda-se armazenar os principais ativos numa carteira fria, mantendo apenas uma pequena quantidade de fundos na carteira de interação na cadeia, o que pode reduzir significativamente as perdas em caso de um ataque de phishing.
Limitar o montante autorizado ao contrato Permit2 ou cancelar a autorização:
Ao fazer Swap no Uniswap, autorize apenas o montante necessário para a interação. Embora a necessidade de reautorizar a cada interação aumente os custos, isso pode evitar ser vítima de phishing com assinatura Permit2. Se o limite já foi autorizado, pode-se usar um plugin de segurança para revogar a autorização.
Identificar a natureza do token, compreender se suporta a funcionalidade permit:
No futuro, pode haver mais tokens ERC20 a implementar a funcionalidade permit. É necessário prestar atenção aos tokens que possui para verificar se suportam essa funcionalidade; caso suportem, deve ter um cuidado extra nas transações ou operações, verificando rigorosamente se cada assinatura desconhecida é destinada à função permit.
Se houver tokens existentes em outras plataformas após ser enganado, é necessário elaborar um plano de resgate completo:
Após descobrir que foi vítima de um golpe, se ainda houver tokens em outras plataformas através de staking ou outras formas, é necessário retirar e transferir, tendo em atenção que os hackers podem monitorizar o saldo do seu endereço a qualquer momento. Elabore um processo completo de resgate de tokens, garantindo que a retirada e a transferência sejam executadas simultaneamente, para evitar a inserção de transações dos hackers. Pode considerar usar transferências MEV ou procurar a assistência de empresas de segurança profissionais como a equipa Beosin.
No futuro, a pesca baseada no Permit2 pode tornar-se cada vez mais comum. Este tipo de pesca com assinatura é extremamente discreto e difícil de prevenir; à medida que o âmbito de aplicação do Permit2 se expande, o número de endereços expostos ao risco também aumentará. Espero que os leitores que vejam este artigo possam divulgá-lo a mais pessoas, evitando que mais indivíduos sofram perdas.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
10 gostos
Recompensa
10
8
Republicar
Partilhar
Comentar
0/400
DeFiGrayling
· 2h atrás
A segurança é realmente muito crucial.
Ver originalResponder0
TokenSleuth
· 2h atrás
Testemunha ocular do primeiro caso. Este tipo de golpe é realmente difícil de prevenir.
Ver originalResponder0
NotFinancialAdviser
· 08-10 23:39
Mais uma vez sou eu, o uni, a levar a culpa pela gestão de riscos.
Ver originalResponder0
BlockTalk
· 08-10 15:17
Outra vez preso ou roubado
Ver originalResponder0
AirdropChaser
· 08-10 15:16
Há alguma forma de recuperar? Que triste.
Ver originalResponder0
ZenChainWalker
· 08-10 15:06
Ah, há um novo golpe. Quanto mais cedo morrer, mais cedo cúmplice.
Ver originalResponder0
AirdropHunterZhang
· 08-10 15:05
Ai, depois de ter explorado tanto, é claro que é preciso pagar. Troquei demais no uniV3.
Ver originalResponder0
LiquidationAlert
· 08-10 14:50
Depois de ver tantas falhas em protocolos, realmente não me atrevo a assinar.
Uniswap Permit2 assinatura phishing nova lavar os olhos: identificação de riscos e guia de prevenção
Revelação: Golpe de Phishing de Assinatura Permit2 do Uniswap
Os hackers são uma presença assustadora no ecossistema Web3. Para os projetos, o código aberto significa que hackers de todo o mundo podem estar de olho em você, e uma vez que uma vulnerabilidade de segurança aparece, as consequências podem ser difíceis de suportar. Para os usuários individuais, se não entenderem as operações que estão realizando, cada interação ou assinatura na blockchain pode resultar em roubo de ativos. Portanto, a questão da segurança sempre foi um dos problemas mais complicados no mundo das criptomoedas. Devido às características da blockchain, uma vez que os ativos são roubados, é quase impossível recuperá-los, por isso é especialmente importante dominar conhecimentos de segurança no mundo das criptomoedas.
Recentemente, um novo método de phishing começou a ser ativo, basta assinar e será roubado, o método é extremamente oculto e difícil de prevenir. Endereços que já interagiram com o Uniswap podem estar em risco. Este artigo irá explicar este método de phishing por assinatura, a fim de evitar mais perdas de ativos.
Desenvolvimento do evento
Recentemente, um amigo ( chamado de pequeno A ) teve os ativos da sua carteira roubados. Ao contrário dos métodos de roubo comuns, pequeno A não divulgou a chave privada, nem interagiu com contratos de sites de phishing.
O explorador de blockchain mostra que o USDT na carteira de A foi transferido através da função Transfer From. Isso significa que outro endereço executou a operação para mover o Token, e não houve vazamento da chave privada da carteira.
Detalhes da transação mostram:
A questão chave é: como o endereço com o final fd51 obteve a permissão para este ativo? Por que está relacionado com a Uniswap?
Uma investigação mais aprofundada revelou que, antes da transferência dos ativos de A, o endereço terminado em fd51 realizou uma operação de Permit, e ambos os objetos de interação dessas duas operações foram o contrato Permit2 da Uniswap.
Uniswap Permit2 é um novo contrato lançado no final de 2022, que permite a autorização de tokens para compartilhar e gerenciar em diferentes aplicações, com o objetivo de criar uma experiência de usuário mais unificada, econômica e segura. À medida que mais projetos integram o Permit2, ele pode padronizar a aprovação de tokens em todas as aplicações, reduzindo os custos de transação e aumentando a segurança dos contratos inteligentes.
Permit2 atua como intermediário entre o usuário e o Dapp, permitindo que o usuário conceda permissões de Token apenas ao contrato Permit2, que pode ser compartilhado por todos os Dapps integrados ao Permit2. Isso reduz o custo de interação do usuário e melhora a experiência. No entanto, isso também é uma espada de dois gumes, pois o problema reside na forma de interação com o Permit2.
Na forma tradicional de interação, a autorização e a transferência de fundos são interações do usuário na blockchain. O Permit2 transforma a operação do usuário em uma assinatura off-chain, e todas as operações on-chain são realizadas por um papel intermediário. A vantagem disso é que, mesmo que a carteira do usuário não tenha ETH, ele pode usar outros tokens para pagar as taxas de Gas ou ser reembolsado pelo papel intermediário.
No entanto, a assinatura off-chain é o aspecto mais facilmente negligenciado pelos usuários. Muitas pessoas não verificam cuidadosamente o conteúdo da assinatura e não compreendem seu significado, o que é o aspecto mais perigoso.
Para ativar essa assinatura de phishing Permit2, o pré-requisito chave é que a carteira sendo pescada já tenha autorizado o Token ao contrato Permit2 da Uniswap. Atualmente, sempre que se realiza uma troca (Swap) em um Dapp que integra o Permit2 ou na Uniswap, é necessário autorizar o contrato Permit2.
O mais assustador é que, independentemente do valor do Swap, o contrato Permit2 da Uniswap sempre permitirá que o usuário autorize o saldo total desse Token. Embora o MetaMask permita a entrada de um valor personalizado, a maioria das pessoas pode optar diretamente pelo valor máximo ou padrão, e o valor padrão do Permit2 é um limite ilimitado.
Isto significa que, desde que tenhas interagido com a Uniswap após 2023 e autorizado montantes ao contrato Permit2, poderás estar em risco deste esquema de lavar os olhos.
A chave está na função Permit, que permite que hackers usem sua assinatura para transferir a quantidade de Token que você autorizou ao contrato Permit2 para outros endereços. Assim que obtiverem sua assinatura, os hackers poderão acessar os Tokens em sua carteira e transferir ativos.
Análise detalhada do evento
fluxo de trabalho da função permit:
O foco está nas funções verify e _updateApproval.
A função verify obtém os três dados v, r, s das informações de assinatura, utilizados para recuperar o endereço da assinatura da transação. O contrato compara o endereço recuperado com o endereço do proprietário do token fornecido; se forem iguais, a validação é bem-sucedida e a função _updateApproval é chamada; se forem diferentes, a transação é revertida.
A função _updateApproval atualiza o valor de autorização após a verificação da assinatura, o que significa que os seus direitos foram transferidos. Neste momento, a parte autorizada pode chamar a função transferfrom para transferir tokens para o endereço especificado.
Transações reais na cadeia mostram:
Ao revisar o histórico de interações do pequeno A, descobrimos que ele anteriormente usou o Uniswap e clicou no limite de autorização padrão, ou seja, um limite quase ilimitado.
Revisão simples: O A autorizou anteriormente ao Permit2 um limite ilimitado de USDT ao usar o Uniswap. Mais tarde, ao operar a carteira, ele inadvertidamente caiu em uma armadilha de phishing de assinatura do Permit2 projetada por hackers. Depois de obter a assinatura do A, os hackers realizaram operações de Permissão e Transferência do Permit2, transferindo os ativos do A. Atualmente, o contrato Permit2 do Uniswap parece ter se tornado um terreno fértil para phishing, e esse tipo de phishing de assinatura começou a ser ativo há cerca de dois meses.
Como prevenir?
Considerando que o contrato Uniswap Permit2 pode se tornar mais popular no futuro, mais projetos podem integrá-lo para compartilhamento de autorizações, medidas eficazes de prevenção incluem:
Uso separado de carteira de ativos e carteira de interação: Se possuir um grande volume de ativos, recomenda-se armazenar os principais ativos numa carteira fria, mantendo apenas uma pequena quantidade de fundos na carteira de interação na cadeia, o que pode reduzir significativamente as perdas em caso de um ataque de phishing.
Limitar o montante autorizado ao contrato Permit2 ou cancelar a autorização: Ao fazer Swap no Uniswap, autorize apenas o montante necessário para a interação. Embora a necessidade de reautorizar a cada interação aumente os custos, isso pode evitar ser vítima de phishing com assinatura Permit2. Se o limite já foi autorizado, pode-se usar um plugin de segurança para revogar a autorização.
Identificar a natureza do token, compreender se suporta a funcionalidade permit: No futuro, pode haver mais tokens ERC20 a implementar a funcionalidade permit. É necessário prestar atenção aos tokens que possui para verificar se suportam essa funcionalidade; caso suportem, deve ter um cuidado extra nas transações ou operações, verificando rigorosamente se cada assinatura desconhecida é destinada à função permit.
Se houver tokens existentes em outras plataformas após ser enganado, é necessário elaborar um plano de resgate completo: Após descobrir que foi vítima de um golpe, se ainda houver tokens em outras plataformas através de staking ou outras formas, é necessário retirar e transferir, tendo em atenção que os hackers podem monitorizar o saldo do seu endereço a qualquer momento. Elabore um processo completo de resgate de tokens, garantindo que a retirada e a transferência sejam executadas simultaneamente, para evitar a inserção de transações dos hackers. Pode considerar usar transferências MEV ou procurar a assistência de empresas de segurança profissionais como a equipa Beosin.
No futuro, a pesca baseada no Permit2 pode tornar-se cada vez mais comum. Este tipo de pesca com assinatura é extremamente discreto e difícil de prevenir; à medida que o âmbito de aplicação do Permit2 se expande, o número de endereços expostos ao risco também aumentará. Espero que os leitores que vejam este artigo possam divulgá-lo a mais pessoas, evitando que mais indivíduos sofram perdas.