Segurança

O Parla trabalha com o seu microfone, por isso foi feito para ser difícil de usar de forma abusiva. Sua voz nunca sai do seu dispositivo, a extensão pede o mínimo possível, e cada parte do código que publicamos é fixada, verificada e testada antes de chegar até você.

Enquanto você usa o Parla

  • Sua voz é limpa no seu dispositivo, dentro do navegador. O Parla não tem servidor que receba áudio, nem contas ou senhas que possam ser roubadas.
  • O mecanismo é código nosso, escrito em Rust sem bibliotecas de terceiros, e roda como WebAssembly na sandbox do navegador. Os modelos de IA são dados (números), não programas: nenhum código dos autores dos modelos roda no seu computador.
  • A extensão pede só o que a limpeza do microfone exige: guardar as configurações e rodar nas páginas em que você usa o microfone. As páginas dela só executam os próprios scripts (uma Content Security Policy rígida).
  • As páginas da web só chegam à extensão por um canal estreito: recebem os arquivos do mecanismo e nada mais, e tudo o que enviam é verificado e tem tamanho limitado.
  • Os relatórios ficam desativados até você ativá-los. São anônimos, e cada campo está listado na nossa documentação.

Do nosso código ao seu navegador

  • Tudo o que o build usa é fixado em uma versão exata e verificado pela sua impressão digital: GitHub actions por commit, imagens de contêiner por digest, downloads por SHA-256, pacotes npm e Python por lockfile.
  • Nenhuma versão com menos de 3 dias entra. A maioria das versões maliciosas de pacotes é descoberta e removida em poucos dias, então deixamos que sejam pegas primeiro. As atualizações automáticas esperam uma semana, e cada uma é compilada e testada antes de ser aceita.
  • Os pacotes nunca podem executar scripts de instalação, e as assinaturas do registro npm são verificadas em todo build.
  • Só o nosso pipeline automatizado gera as versões, a partir do branch principal. As credenciais das lojas e do npm ficam em um ambiente protegido que só a etapa de publicação pode usar, e o build não guarda o token de acesso do repositório.

Verificado a cada mudança

  • Análise estática: o CodeQL lê o TypeScript, o mecanismo em Rust e os workflows de build; o zizmor audita os workflows.
  • Uma varredura dinâmica do site (OWASP ZAP) a cada mudança e toda semana.
  • Uma mudança que adiciona um pacote com vulnerabilidade conhecida é bloqueada, e os alertas do Dependabot monitoram todos os lockfiles.
  • Varredura de segredos com proteção de push: o GitHub recusa qualquer commit que contenha uma senha ou chave.
  • Código com tipagem estrita (TypeScript e Python) e testes automatizados no Chrome e no Firefox antes de cada versão.

Encontrou um problema?

Conte para nós em particular: relate uma vulnerabilidade no GitHub. Assim ele pode ser corrigido antes de se tornar público.

Tudo nesta página pode ser conferido: o código, o pipeline de build e as verificações de segurança são de código aberto. Como as versões são geradas e verificadas