
O projeto Worldcoin é fundamentado em um compromisso com a privacidade e segurança. Como parte desse compromisso, o colaborador do projeto Tools for Humanity (TFH), em conjunto com a Worldcoin Foundation, envolveu os respeitados especialistas em segurança da Trail of Bits para conduzir uma auditoria especializada no software do orb. Além de uma avaliação típica de segurança, a Trail of Bits se concentrou em avaliar uma série de alegações de privacidade e funcionalidade relacionadas ao orb.
O relatório final está disponível aqui.
Escopo da avaliação
Trail of Bits começou sua avaliação em 14 de agosto de 2023 sobre uma versão de software congelada 8 de julho de 2023 com SemVer 3.0.10. A partir de 14 de março de 2024, a versão atual do software implantado nos orbs é 4.0.34 com uma data de lançamento inicial de 17 de janeiro de 2024.
TFH forneceu uma série de alegações técnicas não exaustivas para delimitar o engajamento na tentativa de validar sua implementação. Essas alegações visaram o lançamento de software da versão congelada 8 de julho de 2023.
1. Para o fluxo de inscrição padrão de exclusão, nenhuma informação pessoal identificável (PII), exceto o código da íris, é coletada pelo orb
- Nenhuma PII é escrita no armazenamento persistente no orb
- Nenhuma PII, exceto o código da íris, deixa o orb (por exemplo, carregado)
2. Para o fluxo de inscrição de aceitação não padrão, a PII é tratada de forma segura pelo orb
- A única PII persistida no dispositivo está no SSD do orb e é criptografada de forma assimétrica*
- A PII criptografada de forma assimétrica armazenada no SSD do orb não pode ser descriptografada pelo Orb
3. O Orb não extrai nenhum dado sensível do dispositivo de um usuário
- A única informação que o orb coleta do telefone de um usuário está no código QR.**
4. O código da íris do usuário é tratado de forma segura
- O código da íris do usuário não é escrito no armazenamento persistente no orb
- O código da íris do usuário é incluído apenas em uma única solicitação para o backend do Orb ***
- O código da íris só pode ser enviado para servidores aprovados, e a comunicação da rede é criptografada de ponta a ponta.
* A partir da versão 4.0.XX, o orb não salva mais nenhum dado no SSD, independentemente da opção de custódia de dados.
** Na versão do software do orb 3.0.10, o código QR continha um UUID de 128 bits user_id e um data_policy bool representando a escolha de custódia de dados do usuário, e uma DataCollectionConfig struct opcional para uso interno. Na versão de software 4.0.0 o código QR foi modificado para incluir um hash criptográfico que inclui a chave pública do usuário, chamado de user_data_hash. Este hash é usado para validar que a chave pública correta é usada ao criptografar dados para o dispositivo do usuário.
** Na versão de software 4.0.0, uma nova funcionalidade chamada “Custódia Pessoal” será adicionada, onde uma cópia extra do código de íris e biometria será criptografada diretamente no dispositivo do usuário usando a chave pública do usuário.
Essas reivindicações foram refinadas em objetivos específicos disponíveis no relatório final em coordenação com Trail of Bits. As aplicações do espaço do usuário do cliente do orb em Rust e seu sistema operacional baseado em Debian foram definidas como dentro do escopo desta avaliação, e os seguintes componentes foram excluídos por não serem aplicáveis às reivindicações originais:
- Configuração do bootloader
- Modificações de driver
- Aplicações TrustZone
- Interface de elemento seguro
Uma lista exaustiva dos alvos está enumerada no relatório final.
Resultados da Avaliação
Três consultores realizaram um total de seis semanas de engenharia de revisão. Os auditores tiveram acesso total ao código fonte, juntamente com acesso em tempo de execução a dois orbs de avaliação. Embora o relatório descreva superfícies de ataque potenciais (TOB-ORB-4 e TOB-ORB-5, TOB-ORB-10, e TOB-ORB-11), eles concluem que “nossa análise não descobriu vulnerabilidades no código do Orb que possam ser exploradas diretamente em relação aos Objetivos do Projeto conforme descritos.” Além disso, enquanto a revisão do Trail of Bits identificou algumas preocupações não confirmadas que poderiam teoricamente afetar os objetivos do projeto, e o código afetado foi atualizado desde então, a auditoria não identificou nenhuma instância em que os objetivos do projeto seriam diretamente comprometidos, seja por vulnerabilidades conhecidas ou durante a execução normal.
Os auditores da Trail of Bits forneceram recomendações especializadas para endurecimento adicional da configuração do kernel, bem como ferramentas e técnicas para o software em tempo de execução, que estão disponíveis em mais detalhes no relatório final.
Reivindicação 1: Fluxo de inscrição padrão com opção de exclusão
A avaliação conclui que a configuração da versão auditada do software não retém, nem exfiltra, dados pessoais identificáveis além do “código da íris” do orb. A Trail of Bits recomendou mudanças adicionais de endurecimento da configuração para melhorar a “defesa em profundidade” do orb e garantir que futuras alterações na configuração ou no código não introduzam vazamentos acidentais (achado TOB-ORB-1).
Reivindicação 2: Fluxo de inscrição com opção de inclusão não padrão
Nos casos em que os usuários escolhem optar pela custódia de dados, o Orb criptografa assimetricamente as PII usando a biblioteca libsodium em uma construção de envelope unidirecional chamada de "caixa selada". No relatório final, os auditores afirmam “[n]ão identificamos nenhum lugar onde as PII são persistidas fora do SSD do Orb e/ou sem criptografia” e concluem que “uma vez que as PII são criptografadas, o mecanismo descrito não permite que o Orb as descriptografe.
*O código mais recente não salva dados de forma alguma, independentemente da opção de custódia de dados, mas reutiliza este código de criptografia para o pacote de Custódia Pessoal usando a chave pública do usuário.
Alegação 3: O orb não extrai dados adicionais do dispositivo do usuário
Quando um usuário interage pela primeira vez com um orb para realizar um cadastro, um código QR é exibido no dispositivo do usuário, que é processado pelo orb. No código relevante, os auditores não identificaram qualquer dado ou informação adicional coletada do dispositivo do usuário pelo orb. No entanto, a avaliação destacou possíveis problemas de segurança de memória (achado TOB-ORB-4 no relatório final) com a biblioteca usada para escanear o código QR (ZBar). Em resposta, a biblioteca vulnerável foi substituída por uma biblioteca de escaneamento de código de barras em Rust puro, rxing.
Alegação 4: O código da íris do usuário é tratado de forma segura
Os auditores tentaram validar alegações relacionadas a como o “código da íris” é manipulado e comunicado para o backend. Eles relatam que “acreditamos que o código da íris não é gravado em armazenamento persistente no Orb e que ele é incluído apenas em uma única solicitação para o back end do Orb,” e que “[e]mbora esta configuração possa ser melhorada para torná-la mais segura (TOB-ORB-10), não deve ser possível para atacantes típicos extrair o código da íris do tráfego de rede do Orb; o atacante precisaria estar no controle de um dos certificados confiáveis.”
Conclusão
O relatório completo da análise minuciosa da Trail of Bits contém todos os achados individuais e suas remediações, juntamente com análise adicional das alegações.
Esta não foi a primeira, nem será a última, avaliação de segurança de terceiros do orb, e relatórios adicionais serão compartilhados com a comunidade à medida que estiverem disponíveis.
Você pode ajudar a manter o projeto Worldcoin seguro participando no programa de recompensas por bugs do Worldcoin. Informações adicionais importantes sobre o projeto estão disponíveis no whitepaper do protocolo World.
Isenção de responsabilidade
O conteúdo acima é válido apenas na data indicada. Além disso, está sujeito a riscos, incertezas e pressupostos, e, portanto, pode se tornar incorreto e mudar sem aviso prévio. Uma isenção de responsabilidade completa pode ser encontrada em nossos Termos de Uso, e informações importantes ao usuário podem ser encontradas em nossa página sobre Riscos.