A empresa de segurança blockchain Oak Security expressou preocupação com uma vulnerabilidade no kit de desenvolvimento de software (SDK) da rede Cosmos Chain, que poderia levar a um ataque de negação de serviço distribuído (DDoS) na rede. Em uma publicação no Medium, dois pesquisadores da empresa, Edward Kotysh e Christian Vari, explicaram por que isso representa um risco significativo.
Segundo os pesquisadores , a vulnerabilidade reside no fato de as funções BeginBlock e EndBlock não estarem sujeitas à medição de gás. Isso é intencional, pois permite que os desenvolvedores tenham algum tempo de computação livre, já que essas duas funções não afetam necessariamente as transações do usuário.
No entanto, os especialistas em segurança alertaram que o que deveria ser uma pequena margem de tolerância para os desenvolvedores poderia, na verdade, causar danos significativos às redes baseadas Cosmosde diversas maneiras. Isso inclui causar congestionamento na rede, afetar validadores ou até mesmo levar a uma interrupção completa.
Eles disseram:
“Essa liberdade pode ser uma faca de dois gumes e abrir uma caixa de Pandora de vulnerabilidades em potencial. O principal problema é que, sem limites de gás, códigos mal otimizados ou maliciosos em BeginBlock e EndBlock podem causar estragos consideráveis.”
Os pesquisadores testaram suas teorias sobre o impacto potencial da vulnerabilidade realizando experimentos. Em um dos experimentos, eles introduziram atrasos aleatórios na função BeginBlock em várias alturas de bloco, com atrasos variando de cinco segundos a um minuto.
A partir dos experimentos, os especialistas confirmaram que os atrasos causaram congestionamento substancial na rede, retardando seu progresso e aumentando o tempo necessário para concluir os blocos. Isso também afetou os validadores, com vários deles deixando de assinar blocos nos momentos necessários e alguns perdendo completamente as fases de votação.
Como era de se esperar, o número limitado de validadores disponíveis para assinar transações (menos de dois terços) fez com que a cadeia de testes sofresse interrupções temporárias. Os pesquisadores observaram que isso poderia resultar em uma interrupção completa na própria rede principal, onde várias transações ocorrem simultaneamente e precisam ser finalizadas.
A Oak Security recomenda correções para desenvolvedores
Entretanto, especialistas em segurança recomendaram soluções para corrigir a vulnerabilidade antes que um agente malicioso a explore. Segundo eles, é necessário implementar limites de computação rigorosos para que ninguém possa simplesmente adicionar vetores de ataque que causem computação excessiva.
Elesdenttrês maneiras diferentes de implementar essa solução. Isso inclui adicionar complexidade de tempo às funções BeginBlock e EndBlock para que elas não sejam executadasdefi, encapsulamento de contexto para manter operações que consomem muitos recursos em contextos medidos e validação de todas as entradas da função.
Além disso, solicitaram testes e simulações mais abrangentes para determinar como a vulnerabilidade poderia ser explorada e o potencial de seu impacto.
Eles tambémdentsalvaguardas arquitetônicas e monitoramento operacional para garantir que as redes operem de acordo com métricas padrão e detectar qualquer desvio significativo.
Cosmos SDK lança uma nova versão
Entretanto, o Cosmos SDK ainda não se pronunciou sobre o relatório de segurança nem sobre se tomará alguma providência para solucionar o problema. Isso pode ocorrer porque a vulnerabilidadedenté, na verdade, uma característica do projeto e não um bug ou malware, como os alertas de segurança recentes sobre ataques à cadeia de suprimentos.
Felizmente, os desenvolvedores que usam o Cosmos SDK podem implementar a maioria das recomendações de especialistas em segurança, permitindo que eles controlem o que implantam e garantam que não seja vulnerável a ataques DDoS.
Curiosamente, Cosmos SDK lançou recentemente a versão v0.53.0. De acordo com o anúncio no X, a versão é uma resposta aos problemas relatados pelos desenvolvedores em relação à versão anterior.
A versão mais recente inclui transações não ordenadas, capacidades aprimoradas para pools comunitários, mecanismos de governança personalizados, épocas e cunhagem personalizada. Também traz correções de bugs e os desenvolvedores já podem atualizar para ela no GitHub.
Cosmos SDK é uma ferramenta para desenvolvedores criarem facilmente suas próprias redes personalizadas e integrá-las ao blockchain Cosmos , uma rede que busca se tornar a Internet dos Blockchains.

