A Voatz, empresa com sede em Massachusetts, divulgando um aplicativo de votação móvel habilitado para blockchain, recebeu críticas públicas por falta de transparência, entre outras coisas, principalmente quando se trata de segurança de dados. E com a ameaça de adulteração das eleições, as apostas estão mais altas do que nunca.

O Voatz foi usado nas eleições na Virgínia Ocidental; Condado de Jackson, Oregon; Condado de Umatilla, Oregon; eleições municipais no condado de Utah, Utah; bem como nas eleições do segundo turno e eleições municipais em Denver, Colorado.

A auditoria de segurança pública realizada por uma empresa terceirizada respeitável, que os especialistas pedem, está aqui. Em dezembro de 2019, a Voatz e a Tusk Philanthropies, que financiou a maioria dos pilotos de votação móvel da Voatz, contrataram a empresa de segurança Trail of Bits para realizar uma auditoria completa do aplicativo.

Embora a Voatz tenha falhado em fornecer um back-end para testar vetores de ataque malicioso, a Trail of Bits teve acesso a todo o código-fonte, incluindo o servidor principal, o cliente Android, o cliente iOS e a interface da web do administrador.

O relatório de auditoria é abrangente e inclui uma revisão de segurança de 122 páginas e um documento de 78 páginas sobre considerações de modelagem para sanar as ameaças. Aqui está um rápido resumo das partes principais.

Voatz não precisa de blockchain

O apelo da votação em blockchain é de um sistema descentralizado que não exige que os eleitores confiem em ninguém. Mas a blockchain usada pelo Voatz na verdade não se estende ao cliente móvel. Em vez disso, a Voatz vem aplicando os votos a uma blockchain Hyperledger Fabric, que ela usa como um log de auditoria - algo facilmente feito usando um banco de dados com um log de auditoria. O código que a Trail of Bits analisou não usava códigos personalizados ou contratos inteligentes. De fato, o relatório diz:

“Toda validação de dados e lógica de negócios são executadas fora da cadeia, na base de código Scala do Voatz Core Server. Várias descobertas de alto risco foram o resultado de problemas de validação de dados no servidor núcleo que poderiam permitir que um eleitor se disfarçasse de outro antes mesmo de tocar na blockchain.”

Como os eleitores não se conectam diretamente à blockchain, eles não podem verificar independentemente se os votos refletem sua intenção. Mas qualquer pessoa com acesso administrativo aos servidores de back-end da Voatz tem a capacidade de "des-anonimizar votos, negar votos, alterar votos e invalidar trilhas de auditoria".

O relatório constatou que o sistema Voatz não possui nenhuma mitigação para des-anonimizar os eleitores com base no tempo em que sua cédula foi registrada na blockchain. Embora as perguntas frequentes da Voatz afirmem que "uma vez enviadas, todas as informações são anônimas, roteadas por meio de uma 'mixnet' e registradas na blockchain", isso foi questionado em um relatório do MIT - e agora novamente nesta auditoria.

“Parece não haver, nem há menção a, uma mixnet no código fornecido à Trail of Bits”, diz a auditoria. "O servidor núcleo tem a capacidade de des-anonimizar todo o tráfego, inclusive as cédulas eleitorais".

A Trail of Bits confirmou as descobertas do MIT

Em 13 de fevereiro, os pesquisadores do MIT publicaram o relatório acima mencionado, “A cédula fica antes da blockchain: uma análise de segurança do Voatz, o primeiro aplicativo de votação na Internet usado nas eleições federais dos EUA”, ao qual a Voatz respondeu com uma postagem no blog no mesmo dia a refutar o que chamou de "relatório defeituoso", levando os pesquisadores do MIT a postar um FAQ com esclarecimentos.

Acontece que a refutação da Voatz foi escrita três dias depois que a Trail of Bits confirmou a presença das vulnerabilidades descritas pelo MIT, e depois de receber um relatório resumido e anônimo dos problemas emitido pelo Departamento de Segurança Interna dos Estados Unidos. Isso sugere que a Voatz sabia que o relatório era preciso antes de desacreditá-lo publicamente.

A auditoria também contesta algumas das objeções da Voatz aos relatórios dos pesquisadores do MIT. A Voatz afirmou que o aplicativo Android analisado tinha 27 versões anteriores, mas a Trail of Bits escreveu que "não identificou nenhuma alteração relevante de segurança na base do código" entre a versão de setembro de 2019 do aplicativo usada pelos pesquisadores do MIT que poderia afetar substancialmente suas contestações.

A Voatz também discordou dos pesquisadores que desenvolveram um servidor simulado, chamando-o de "abordagem falha" que "invalida qualquer reivindicação sobre sua capacidade de comprometer o sistema geral". A empresa chegou a escrever que essa prática "nega qualquer grau de credibilidade em nome dos pesquisadores".

Mas a Trail of Bits alega que “desenvolver um servidor simulado, em casos em que a conexão com um servidor de produção possa resultar em ação legal, é uma prática padrão na pesquisa de vulnerabilidades. É também uma prática padrão em testes de software.” Além disso, o relatório aponta que as descobertas se concentraram no cliente Android, mas não se baseavam no conhecimento profundo dos servidores do Voatz.

As auditorias anteriores não eram abrangentes

Apesar do Voatz promover várias auditorias de segurança, é a primeira vez que uma avaliação com "carta branca" é realizada, com o servidor principal e o back-end sendo analisados. Embora nem todas as auditorias anteriores sejam públicas, a Trail of Bits resumiu todas elas.

Uma revisão de segurança anterior foi realizada em agosto de 2019 pela NCC, uma organização sem fins lucrativos independente e privada que não emprega nenhum especialista em segurança técnica. A auditoria focou na usabilidade e não na segurança. Em julho de 2018, um fornecedor sem nome realizou uma auditoria dos clientes móveis do Voatz.

Em outubro de 2018, a TLDR Security, agora conhecida como ShiftState, conduziu uma ampla revisão de segurança que incluiu a arquitetura do sistema, fluxos de trabalho de usuários e dados e planejamento de mitigação de ameaças, mas não procurou bugs no sistema nem no aplicativo real. A ShiftState conduziu outra auditoria em dezembro de 2018, analisando se o sistema operava conforme pretendido e seguia as melhores práticas.

Embora o CEO da ShiftState, Andre McGregor, tenha dito anteriormente que a Voatz "fez muito bem", a revisão da Trail of Bits da auditoria da ShiftState aponta para problemas com registro limitado, servidores não gerenciados e uma solução de malware anti-móvel do Zimperium que não foi ativada durante o piloto.

Como todas as proteções anti-adulteração da Voatz para dispositivos móveis são baseadas no Zimperium, ser inativo significa que o aplicativo poderia ter sido adulterado, pois o Voatz não possui proteção adicional contra aplicativos maliciosos que podem acessar informações confidenciais.

A auditoria final do DHS, realizada em outubro de 2019, simplesmente analisou os recursos da nuvem, não o aplicativo - se há evidências de hackers ou se pode ser detectado se ocorrer uma invasão.

Além das limitações das avaliações de segurança anteriores que o Voatz divulgou sem as tornar públicas - como o fato de nenhuma das auditorias incluir vulnerabilidades de servidor e back-end - o relatório da Trail of Bits afirma que os registros das outras avaliações de segurança realizadas eram documentos técnicos . Isso põe em dúvida se os funcionários estão tomando decisões com base em documentos que não são qualificados para leitura.

Since all of Voatz’s anti-tamper protections for mobile devices are based on Zimperium, it being inactive means the application could have been trivially tampered with, as Voatz lacks additional protection against malicious applications that could access sensitive information. 

Voatz parece desorganizado

A avaliação da trilha de bits durou uma semana inteira mais do que o inicialmente programado "devido a uma combinação de atrasos no recebimento do código e ativos, a complexidade e tamanho inesperados do sistema e o esforço de relatório associado".

A Trail of Bits nunca recebeu uma cópia de trabalho do código, proibindo a empresa de realizar testes ao vivo, o que significa que os pesquisadores estavam quase inteiramente limitados ao teste estático, o que exigia que eles lessem uma grande quantidade de código. De acordo com o relatório, o Voatz possui tanto código que “exigiu que cada engenheiro analise, em média, quase 3.000 linhas de código puro em 35 arquivos por dia na avaliação, a fim de obter uma cobertura mínima”.

Embora a Trail of Bits tenha recebido acesso ao back-end para testes ao vivo um dia antes do término da avaliação, foi solicitado que não atacasse ou alterasse a instância de uma maneira que negasse o serviço às outras auditorias.

Voatz cometeu erros de novato - e não parece sério sobre correções

A Trail of Bits descreveu vários bugs que poderiam levar à observância de votos, adulteração ou desnonimização, ou que poderiam colocar em questão a integridade de uma eleição.

Além do fato de que os eleitores não podem validar independentemente que seu recibo de votação é válido ou que os votos foram computados corretamente, um funcionário do Voatz poderia teoricamente forçar um usuário a votar duas vezes ou apenas permitir que ele vote duas vezes, ou ainda, duplicar seu voto sem seu conhecimento do bac-kend . Além disso, o Voatz usa um PIN de oito dígitos para criptografar todos os dados locais - algo que pode ser quebrado em 15 minutos.

Além disso, o relatório constatou que o aplicativo não possui controles de segurança para impedir que dispositivos Android autônomos sejam comprometidos. Credenciais de API confidenciais foram armazenadas em repositórios git, o que significa que qualquer pessoa na empresa com acesso ao código - talvez até subcontratados - poderia usar ou abusar de chaves secretas expostas nos repositórios.

Os funcionários da Voatz com acesso de administrador podem consultar as cédulas de eleitores específicos. O Voatz usa um protocolo de handshake criptográfico ad hoc, que geralmente não é recomendado - como a criptografia caseira é propensa a bugs, e é melhor usar esquemas de criptografia que foram estudados por pesquisadores e testados no mundo real. O SSL (Secure Sockets Layer) não foi configurado de maneira totalmente segura, faltando um recurso importante que ajuda os clientes a identificar quando um certificado TLS (Transport Layer Security) é revogado.

Em um exemplo, o Voatz até recortou e colou uma chave e um vetor inicialização (VI) de uma resposta do Stack Overflow. Geralmente, o código de recortar e colar é desencorajado, mesmo nos cursos de segurança de computadores de nível universitário, porque a qualidade das informações no Stack Overflow varia e até mesmo um bom código pode não funcionar em um ambiente específico. No entanto, cortar e colar uma chave e um VI é ainda pior, pois significa que a chave e o VI que são usados ​​para criptografar os dados são idênticos a algo na internet, mesmo que não deva ser público.

Mesmo quando resumidas, as recomendações da Trail of Bits têm oito páginas. O Voatz parece ter abordado oito riscos de segurança, parcialmente outros seis e deixado 34 sem correção. Normalmente, as empresas têm um plano abrangente sobre como corrigir riscos altos e médios. Surpreendentemente, a Voatz decidiu que "aceita o risco" de muitos desses erros, essencialmente aceitando o risco em nome dos eleitores, em vez de fazer as correções sugeridas pela empresa que contratou.

O Cointelegraph entrou em contato com a Voatz com uma lista de perguntas e o artigo será atualizado assim que a empresa responder. Tanto a Tusk Philanthropies quanto a Trail of Bits encaminharam o Cointelegraph para seus posts separados sobre a auditoria e o próprio relatório.