A Zilliqa publicou esta semana uma análise pós-incidente que atribui o roubo de 683 130 969,66 ZIL a um bug na sua aplicação Ledger legada que descartava oito bytes de entropia durante a geração de assinaturas. A falha forçava os 64 bits superiores de cada nonce afetado a zero, permitindo aos atacantes reconstruir chaves privadas com apenas quatro assinaturas já publicadas. A divulgação quantifica um incidente que se estendeu desde o primeiro roubo, em 4 de março, até 20 de julho, quando a Zilliqa desativou as transações legadas cerca de três horas e meia depois da última movimentação on-chain do atacante. O relatório da KuCoin sobre uma carteira fria com atividade anómala, publicado em 19 de julho, alertou a equipa para o incidente em curso.
Porque é importante
A longevidade do bug é o ponto central. A Zilliqa escreveu a implementação original afetada; depois, a falha sobreviveu a anos de manutenção da Ledger sem que nenhuma das partes a detetasse. Esta lacuna é relevante para qualquer token que ainda dependa de uma aplicação Ledger para assinatura nativa: um buffer de assinatura enviesado não é detetado em auditorias de segurança padrão como seria um gerador de números aleatórios defeituoso, e o facto de bastarem apenas quatro assinaturas para expor uma chave significa que a vulnerabilidade pode ser explorada discretamente contra carteiras há muito inativas, muito antes de alguém dar por isso.
Impacto no mercado
A Zilliqa dividiu o incidente em dois números que não se sobrepõem. Sessenta e seis transações esvaziaram 51 contas, enquanto as chaves privadas de 6 772 contas foram expostas. A recuperação passa pela migração para Zilliqa EVM e pela descontinuação da cadeia legada, e ainda não foi anunciada uma data de lançamento da ferramenta de migração, enquanto se aguarda uma auditoria de segurança externa. O quadro resultante é o pior dos dois mundos para os detentores afetados: uma exposição conhecida em milhares de carteiras, uma aplicação corrigida que não pode proteger chaves já comprometidas e uma transição para EVM que ainda não está operacional.
Perguntas frequentes
-
Como é que o bug na aplicação Ledger da Zilliqa expôs as chaves privadas?
A aplicação Ledger legada da Zilliqa gerava 40 bytes aleatórios, mas copiava os 32 bytes errados para o seu buffer de assinatura, mantendo oito bytes de preenchimento a zero e descartando oito bytes de entropia. Esse enviesamento forçava os 64 bits superiores de cada nonce afetado a zero, permitindo aos atacantes…
-
Quanto ZIL foi roubado no ataque à aplicação Ledger da Zilliqa?
A análise pós-incidente quantifica o roubo em 683 130 969,66 ZIL, através de 66 transações bem-sucedidas durante a janela do ataque que esvaziaram 51 contas.
-
Quantas carteiras foram afetadas pelo bug do Ledger da Zilliqa?
A Zilliqa distingue dois grupos: 51 contas foram esvaziadas durante o ataque, enquanto 6 772 contas tiveram as suas chaves privadas expostas. O total de contas expostas é um valor mínimo; podem existir mais contas comprometidas que tenham gerado transações de roubo ainda não comprovadas.
-
Porque é que a Zilliqa não pode corrigir o bug na aplicação Ledger para proteger os utilizadores afetados?
A falha da aplicação foi corrigida, mas as assinaturas já publicadas não podem ser retiradas da blockchain. Os atacantes ainda podem reconstruir chaves privadas a partir de assinaturas históricas, pelo que a correção só protege chaves novas daqui para a frente.
-
Qual é o plano de recuperação da Zilliqa para os detentores afetados?
A Zilliqa está a migrar todos os detentores da cadeia legada para Zilliqa EVM e a descontinuar a cadeia legada. A data de lançamento da ferramenta de migração ainda não foi anunciada, porque o calendário depende de uma auditoria de segurança externa, da análise das suas conclusões e de quaisquer medidas corretivas…