Desde agosto, o desenvolvimento do ecossistema SUI tem sido rápido. De acordo com DefiLlama, o TVL do SUI ultrapassou $1 bilhão, aumentando 200% nos últimos dois meses, e atualmente o volume de negociação do Cetus, uma Dex construída no SUI, ultrapassa $160 milhões por dia.
Em 9 de outubro, o USDC nativo da Sui foi lançado na mainnet, o que continuará a atrair mais fundos para o ecossistema da Sui. Como membro importante do Ecossistema Move, a Sui está comprometida em fornecer serviços de transação rápidos e seguros para uma variedade de cenários de aplicação blockchain.
Neste artigo, a Beosin irá ajudá-lo a compreender os desafios de segurança enfrentados pelos utilizadores e desenvolvedores do ecossistema SUI, com anos de experiência em auditoria de segurança.
Sui usa o Move como sua linguagem de programação para contratos inteligentes. Move foi projetado para ser uma linguagem de Bytecode executável com algoritmos de segurança integrados e verificador de Bytecode, e usa chamadas estáticas ao chamar contratos.
Este design permite que o Move aborde vulnerabilidades comuns em contratos inteligentes, como ataques de reentrância, estouros de inteiro, gastos duplos e possíveis problemas de compilador, mas ainda é possível que os desenvolvedores inadvertidamente introduzam vulnerabilidades no desenvolvimento de contratos. Em resposta, Beosin introduziu o Move Lint em 2023, uma ferramenta de detecção estática que automatiza a detecção de possíveis riscos de segurança em contratos e localiza vulnerabilidades.
Além das ferramentas de detecção, as seguintes são questões de segurança às quais os desenvolvedores precisam prestar atenção adicional no desenvolvimento de contratos Move para melhorar a segurança:
Em comparação com outras linguagens de contrato inteligente, o Move verifica automaticamente se há problemas de estouro por padrão ao executar operações matemáticas inteiras, o que pode evitar um grande número de problemas de estouro, mas ainda há dois pontos a serem observados:
As operações de bits na linguagem Move não verificam automaticamente o overflow, porque as operações de bits são essencialmente operações no nível de bits em dados que se comportam de forma diferente das operações inteiras.
Quando a verificação automática de transbordamento do Move entra em vigor, a execução da função lança uma exceção, que, se projetada incorretamente, pode fazer com que o projeto de negócio não seja executado como esperado, resultando em ataques DoS.
A passagem de objetos privilegiados e chamadas de funções privilegiadas deve ser cuidadosamente autenticada, uma vez que essas funções e objetos estão envolvidos na segurança de financiamento. Além disso, os tipos de objetos precisam ser verificados para determinar se são objetos privados ou compartilhados. Se um objeto for convertido incorretamente de objeto privado para objeto compartilhado, usuários não autorizados podem acessar o objeto, representando um risco potencial de segurança.
Os desenvolvedores podem usar o Move Prover para verificar se o programa está aplicando uma política de controle de acesso explícita. Por exemplo, em std.offer, podemos ver que a função é encerrada quando o destinatário não está na lista branca:
A Dependência de Ordenação de Transações (TOD) refere-se ao fato de que o comportamento de um contrato pode ter resultados diferentes dependendo da ordem em que as transações são executadas, especialmente em um ambiente descentralizado onde o minerador ou verificador pode escolher como as transações são ordenadas. Isso pode trazer riscos como ataques de front-running.
Em Sui, ainda cabe ao produtor de blocos executar a ordem das transações, de modo que os contratos MOVE ainda podem ser afetados por este problema se forem projetados para depender da ordem das transações para alterações de estado.
Na cadeia SUI, o problema de gás dos contratos inteligentes Move é principalmente refletido nos custos de cálculo e armazenamento necessários para a execução do contrato. Com o aumento da complexidade do contrato e das mudanças de estado, o consumo de gás também aumenta em conformidade. Os desenvolvedores precisam focar na otimização da lógica do contrato, reduzindo cálculos desnecessários e atualizações de status para reduzir os custos de transação para os usuários, e especialmente para evitar a situação de iterações incontroláveis no contrato, que pode ser devido a gás insuficiente e não ser capaz de realizar o negócio adequadamente.
Atualmente, o tipo numérico suportado pelo Move é o inteiro sem sinal e não suporta ponto flutuante, portanto, a parte fracionária será truncada e arredondada para baixo durante as operações de divisão, o que levará a resultados de cálculo imprecisos, o que pode afetar algumas políticas-chave, levar a perdas de receita e até se tornar uma vulnerabilidade de segurança.
Para este problema, a medida usual de mitigação é estender a precisão, mas deve-se notar que a precisão precisa ser restaurada quando o resultado final for obtido.
Nos contratos inteligentes Move na blockchain Sui, a gestão de objetos é um desafio chave, abrangendo vários aspectos do ciclo de vida do objeto, propriedade, acesso concorrente, serialização e custos de armazenamento. Os desenvolvedores precisam gerenciar com precisão a criação, atualização e destruição de objetos para evitar desperdício de recursos e inconsistência de estado. Ao mesmo tempo, o design razoável da lógica do contrato para controlar a propriedade e os direitos de acesso dos objetos, bem como lidar com vários usuários acessando o mesmo objeto simultaneamente, são fatores importantes para garantir a operação segura e eficiente dos contratos inteligentes.
Por exemplo, com a implementação do empréstimo relâmpago no projeto Sui DeFi, os atacantes podem usar empréstimos relâmpago para realizar grandes ataques de fundos, como manipulação de preços.
Na funcionalidade comum de troca de tokens AMM, os desenvolvedores podem usar o Move Prover para verificar se o número de tokens foi alterado corretamente:
Por exemplo, os protocolos de empréstimo devem sempre estar totalmente seguros após uma série de depósitos, empréstimos e levantamentos. No caso de o livro de ordens do acordo de negociação de contratos perpétuos on-chain ser cancelado após a colocação da ordem, não deve haver alterações no livro-razão, etc., que precisam ser verificados e confirmados pelo desenvolvedor.
Atualmente, DeFi e Memecoins da SUI estão florescendo, e o volume de negociação e TVL têm atraído um crescimento explosivo. Posteriormente, há cada vez mais tipos de golpes e negociações de spam que os usuários precisam evitar.
Este ano, apareceu um esquema de airdrop chamado Suisses no Sui Eco, que permitiu que muitos usuários tivessem seus ativos roubados. Quando um usuário se conecta a uma carteira no site Suisses e clica em Reivindicação, aparece um pedido de transação para a transferência dos ativos do usuário. Se o usuário assinar a transação, ele descobrirá que todos os seus ativos da carteira foram transferidos.
Devido às características da SUI: tudo é objeto, não apenas os tokens na carteira do usuário, o NFT é objeto, mas também a participação do usuário em mineração DeFi, garantias de liquidez e outros certificados. Se ocorrer um ataque de phishing, todos os ativos de um usuário dentro do ecossistema SUI podem ser transferidos pelo hacker de uma só vez.
Existem muitos tokens falsos e honeypots no ecossistema SUI. Em particular, quando os usuários negociam memecoins no Ecossistema SUI, eles podem ser pegos acidentalmente.
Ao criar tokens na SUI, como mostrado abaixo, os hackers podem definir os mesmos ícones e nomes que os tokens populares ou principais, tornando-os indistinguíveis para os usuários em geral. Portanto, os usuários precisam verificar se o formato de dados do token está correto ao comprar o token.
Além disso, os hackers também podem adicionar uma função DenyList ao contrato do token, para que os usuários que compram o token não possam vender, causando perdas aos usuários.
MEV significa valor máximo extraível. MEV originalmente referia-se ao Valor Extraível pelo Minerador, onde os mineradores na rede BTC ganham recompensas além das taxas de bloco e de rede ao reorganizar transações nos blocos. MEV não tem nada a ver com o tipo de rede blockchain. MEV existe em todas as blockchains, e Sui não é exceção.
Sui usa Narwhal como uma pool de memória para atribuir transações não concluídas aos nós e usa o algoritmo Bullshark como um mecanismo de consenso para ordenar as transações.
A regra de ordenação do Sui para transações é baseada em taxas de gás. Além disso, como o Sui adota um esquema de execução de transação combinando paralelo e sequencial, transações que compartilham o mesmo estado de pool de transação AMM só podem ser executadas sequencialmente. Portanto, o ataque de sandwich / transação de front-running é viável. Um atacante pode lançar um ataque de sandwich através de uma taxa de gás mais alta, fazendo com que os usuários participantes das negociações DeFi sofram perdas.
Partilhar
Desde agosto, o desenvolvimento do ecossistema SUI tem sido rápido. De acordo com DefiLlama, o TVL do SUI ultrapassou $1 bilhão, aumentando 200% nos últimos dois meses, e atualmente o volume de negociação do Cetus, uma Dex construída no SUI, ultrapassa $160 milhões por dia.
Em 9 de outubro, o USDC nativo da Sui foi lançado na mainnet, o que continuará a atrair mais fundos para o ecossistema da Sui. Como membro importante do Ecossistema Move, a Sui está comprometida em fornecer serviços de transação rápidos e seguros para uma variedade de cenários de aplicação blockchain.
Neste artigo, a Beosin irá ajudá-lo a compreender os desafios de segurança enfrentados pelos utilizadores e desenvolvedores do ecossistema SUI, com anos de experiência em auditoria de segurança.
Sui usa o Move como sua linguagem de programação para contratos inteligentes. Move foi projetado para ser uma linguagem de Bytecode executável com algoritmos de segurança integrados e verificador de Bytecode, e usa chamadas estáticas ao chamar contratos.
Este design permite que o Move aborde vulnerabilidades comuns em contratos inteligentes, como ataques de reentrância, estouros de inteiro, gastos duplos e possíveis problemas de compilador, mas ainda é possível que os desenvolvedores inadvertidamente introduzam vulnerabilidades no desenvolvimento de contratos. Em resposta, Beosin introduziu o Move Lint em 2023, uma ferramenta de detecção estática que automatiza a detecção de possíveis riscos de segurança em contratos e localiza vulnerabilidades.
Além das ferramentas de detecção, as seguintes são questões de segurança às quais os desenvolvedores precisam prestar atenção adicional no desenvolvimento de contratos Move para melhorar a segurança:
Em comparação com outras linguagens de contrato inteligente, o Move verifica automaticamente se há problemas de estouro por padrão ao executar operações matemáticas inteiras, o que pode evitar um grande número de problemas de estouro, mas ainda há dois pontos a serem observados:
As operações de bits na linguagem Move não verificam automaticamente o overflow, porque as operações de bits são essencialmente operações no nível de bits em dados que se comportam de forma diferente das operações inteiras.
Quando a verificação automática de transbordamento do Move entra em vigor, a execução da função lança uma exceção, que, se projetada incorretamente, pode fazer com que o projeto de negócio não seja executado como esperado, resultando em ataques DoS.
A passagem de objetos privilegiados e chamadas de funções privilegiadas deve ser cuidadosamente autenticada, uma vez que essas funções e objetos estão envolvidos na segurança de financiamento. Além disso, os tipos de objetos precisam ser verificados para determinar se são objetos privados ou compartilhados. Se um objeto for convertido incorretamente de objeto privado para objeto compartilhado, usuários não autorizados podem acessar o objeto, representando um risco potencial de segurança.
Os desenvolvedores podem usar o Move Prover para verificar se o programa está aplicando uma política de controle de acesso explícita. Por exemplo, em std.offer, podemos ver que a função é encerrada quando o destinatário não está na lista branca:
A Dependência de Ordenação de Transações (TOD) refere-se ao fato de que o comportamento de um contrato pode ter resultados diferentes dependendo da ordem em que as transações são executadas, especialmente em um ambiente descentralizado onde o minerador ou verificador pode escolher como as transações são ordenadas. Isso pode trazer riscos como ataques de front-running.
Em Sui, ainda cabe ao produtor de blocos executar a ordem das transações, de modo que os contratos MOVE ainda podem ser afetados por este problema se forem projetados para depender da ordem das transações para alterações de estado.
Na cadeia SUI, o problema de gás dos contratos inteligentes Move é principalmente refletido nos custos de cálculo e armazenamento necessários para a execução do contrato. Com o aumento da complexidade do contrato e das mudanças de estado, o consumo de gás também aumenta em conformidade. Os desenvolvedores precisam focar na otimização da lógica do contrato, reduzindo cálculos desnecessários e atualizações de status para reduzir os custos de transação para os usuários, e especialmente para evitar a situação de iterações incontroláveis no contrato, que pode ser devido a gás insuficiente e não ser capaz de realizar o negócio adequadamente.
Atualmente, o tipo numérico suportado pelo Move é o inteiro sem sinal e não suporta ponto flutuante, portanto, a parte fracionária será truncada e arredondada para baixo durante as operações de divisão, o que levará a resultados de cálculo imprecisos, o que pode afetar algumas políticas-chave, levar a perdas de receita e até se tornar uma vulnerabilidade de segurança.
Para este problema, a medida usual de mitigação é estender a precisão, mas deve-se notar que a precisão precisa ser restaurada quando o resultado final for obtido.
Nos contratos inteligentes Move na blockchain Sui, a gestão de objetos é um desafio chave, abrangendo vários aspectos do ciclo de vida do objeto, propriedade, acesso concorrente, serialização e custos de armazenamento. Os desenvolvedores precisam gerenciar com precisão a criação, atualização e destruição de objetos para evitar desperdício de recursos e inconsistência de estado. Ao mesmo tempo, o design razoável da lógica do contrato para controlar a propriedade e os direitos de acesso dos objetos, bem como lidar com vários usuários acessando o mesmo objeto simultaneamente, são fatores importantes para garantir a operação segura e eficiente dos contratos inteligentes.
Por exemplo, com a implementação do empréstimo relâmpago no projeto Sui DeFi, os atacantes podem usar empréstimos relâmpago para realizar grandes ataques de fundos, como manipulação de preços.
Na funcionalidade comum de troca de tokens AMM, os desenvolvedores podem usar o Move Prover para verificar se o número de tokens foi alterado corretamente:
Por exemplo, os protocolos de empréstimo devem sempre estar totalmente seguros após uma série de depósitos, empréstimos e levantamentos. No caso de o livro de ordens do acordo de negociação de contratos perpétuos on-chain ser cancelado após a colocação da ordem, não deve haver alterações no livro-razão, etc., que precisam ser verificados e confirmados pelo desenvolvedor.
Atualmente, DeFi e Memecoins da SUI estão florescendo, e o volume de negociação e TVL têm atraído um crescimento explosivo. Posteriormente, há cada vez mais tipos de golpes e negociações de spam que os usuários precisam evitar.
Este ano, apareceu um esquema de airdrop chamado Suisses no Sui Eco, que permitiu que muitos usuários tivessem seus ativos roubados. Quando um usuário se conecta a uma carteira no site Suisses e clica em Reivindicação, aparece um pedido de transação para a transferência dos ativos do usuário. Se o usuário assinar a transação, ele descobrirá que todos os seus ativos da carteira foram transferidos.
Devido às características da SUI: tudo é objeto, não apenas os tokens na carteira do usuário, o NFT é objeto, mas também a participação do usuário em mineração DeFi, garantias de liquidez e outros certificados. Se ocorrer um ataque de phishing, todos os ativos de um usuário dentro do ecossistema SUI podem ser transferidos pelo hacker de uma só vez.
Existem muitos tokens falsos e honeypots no ecossistema SUI. Em particular, quando os usuários negociam memecoins no Ecossistema SUI, eles podem ser pegos acidentalmente.
Ao criar tokens na SUI, como mostrado abaixo, os hackers podem definir os mesmos ícones e nomes que os tokens populares ou principais, tornando-os indistinguíveis para os usuários em geral. Portanto, os usuários precisam verificar se o formato de dados do token está correto ao comprar o token.
Além disso, os hackers também podem adicionar uma função DenyList ao contrato do token, para que os usuários que compram o token não possam vender, causando perdas aos usuários.
MEV significa valor máximo extraível. MEV originalmente referia-se ao Valor Extraível pelo Minerador, onde os mineradores na rede BTC ganham recompensas além das taxas de bloco e de rede ao reorganizar transações nos blocos. MEV não tem nada a ver com o tipo de rede blockchain. MEV existe em todas as blockchains, e Sui não é exceção.
Sui usa Narwhal como uma pool de memória para atribuir transações não concluídas aos nós e usa o algoritmo Bullshark como um mecanismo de consenso para ordenar as transações.
A regra de ordenação do Sui para transações é baseada em taxas de gás. Além disso, como o Sui adota um esquema de execução de transação combinando paralelo e sequencial, transações que compartilham o mesmo estado de pool de transação AMM só podem ser executadas sequencialmente. Portanto, o ataque de sandwich / transação de front-running é viável. Um atacante pode lançar um ataque de sandwich através de uma taxa de gás mais alta, fazendo com que os usuários participantes das negociações DeFi sofram perdas.