Security Week 20: desativando extensões do Firefox

Em 4 de maio, às quatro da manhã em Moscou (ou um pouco mais tarde, dependendo da sorte), todas as extensões instaladas deixaram de funcionar para os usuários do navegador Firefox, e a instalação de novos complementos tornou-se impossível. O problema estava no lado do navegador - o certificado intermediário, pelo qual todas as extensões são assinadas, expirou. Este evento tem uma relação indireta com a segurança da informação - a má sorte surgiu como resultado do desejo lógico dos desenvolvedores de proteger os usuários contra extensões maliciosas (a partir de 2015) e pelo fato de ninguém perceber que o certificado expirará em breve.

No entanto, esta é uma história interessante com um final moderadamente feliz: um problema razoavelmente não trivial foi resolvido em 12 horas. Este também é um incidente bem documentado, com muitas informações dos desenvolvedores e quantidades incríveis de drama dos usuários. No processo, surgiu o problema da privacidade, que foi resolvido com bastante eficácia.

Os primeiros relatórios de problemas com extensões apareceram antes do vencimento do certificado, em 3 de maio. Há pelo menos uma dessas discussões no Reddit. O autor do encadeamento no computador tinha a data errada, portanto ele foi um dos primeiros a descobrir o bug (e o "corrigiu" definindo a data correta, mas não por muito tempo). Um pouco mais tarde, o problema apareceu para todos os usuários, mas em momentos diferentes: a validade dos certificados pelos quais as extensões são assinadas é verificada uma vez a cada 24 horas. Um histórico adicional com vários graus de detalhes é descrito aqui: notícias , relatório de erros , suporte técnico , uma postagem no blog com detalhes técnicos e uma história sobre o incidente em nome do CTO Firefox.


É assim que o processo de assinatura de extensões no Firefox se parece. O certificado raiz na parte superior da cadeia está no armazenamento offline e, a cada vários anos, com sua ajuda, é criado um certificado intermediário com o qual as extensões são assinadas. Foi o certificado provisório que expirou em 4 de maio. A primeira solução alternativa por parte dos desenvolvedores do Firefox foi o lançamento de um patch que interrompe temporariamente a validação de certificados de extensão. Se esse patch voou para você antes da verificação, o problema já passou. Além disso, os desenvolvedores tinham duas maneiras: emitir uma nova versão do Firefox ou um novo certificado, que assinará extensões válidas na versão atual. Era impossível assinar novamente todas as adições (mais de 15 mil). Mais precisamente, talvez, mas levaria muito tempo.


Dados os prazos apertados (eles descobriram o problema no Firefox na noite de 3 de maio, é claro, na sexta-feira!), Foi decidido investigar as duas opções. Tecnicamente, houve a oportunidade de emitir um novo certificado, a) era necessário gerar esse certificado eb) entregá-lo aos usuários o mais rápido possível. A primeira parte foi complicada pelo fato de o certificado raiz estar armazenado no módulo de hardware, que ainda precisa ser alcançado ( na floresta? Na célula do banco? ). Além disso, quando os desenvolvedores chegaram ao certificado raiz, não foi possível gerar um novo certificado intermediário imediatamente, e isso levou à perda de uma ou duas horas para os testes necessários. Como entregar? Para fazer isso, usamos o mecanismo Firefox Studies - na verdade, o sistema de distribuição de complementos "do desenvolvedor do navegador", que em casos normais se destina ao código experimental. Foi mais rápido do que construir uma nova compilação e enviar a atualização por canais regulares.


Mas aqui surgiu o mesmo problema de privacidade. O Firefox Studies, como um sistema experimental, é incluído apenas ao enviar informações de uso do navegador de volta aos desenvolvedores do Firefox. Isso é lógico para o teste beta, mas parece um pouco estranho no contexto de entrega de um patch que todos os usuários geralmente precisam. Esse problema foi resolvido com elegância: o Firefox decidiu remover toda a telemetria recebida de 4 a 11 de maio.

Esta não era uma solução ideal. Aqueles com telemetria desativada (e Estudos) precisavam ativar manualmente essas opções. Em algumas versões, essa opção não é de todo. A versão Android do navegador não suporta Estudos. Usuários afetados permanentemente de versões mais antigas do Firefox que não desejam ser atualizados, mas usam complementos. Em 8 de maio, foram lançadas versões do Firefox 66.0.5 e Firefox ESR 60.6.3 , nas quais o problema com o certificado foi finalmente resolvido e os Estudos com telemetria não são mais necessários. As atualizações estão planejadas para versões mais antigas do navegador, começando com o Firefox 52. O problema foi resolvido, mas para muitos usuários não passou sem deixar rastro - há casos de perda de dados e configurações nas extensões.

Há duas conclusões nesta história. Primeiro, o Firefox prometeu instalar um sistema de rastreamento de "bomba-relógio" na infraestrutura para impedir que isso aconteça no futuro. Em segundo lugar, ficou claro que mesmo um sistema de distribuição de atualizações mais ou menos moderno, com métodos diferentes para fornecer correções aos usuários, não é tão eficaz quanto gostaríamos. De acordo com o CTO Firefox, os usuários do navegador devem poder receber atualizações e hotfixes, mesmo que desejem desativar outros recursos experimentais e / ou telemetria. Esta é uma história final feliz, que pode levar a uma melhoria no mecanismo de atualização do Firefox, um navegador mainstream raro que não está vinculado a nenhuma grande empresa de TI. Mas não esqueça que ela começou com tiros alegóricos nas próprias pernas.

Isenção de responsabilidade: as opiniões expressas neste resumo nem sempre coincidem com a posição oficial da Kaspersky Lab. Caros editores, geralmente recomendam tratar qualquer opinião com ceticismo saudável.

Source: https://habr.com/ru/post/pt451610/


All Articles