Exceto por phishing e golpes, baixar um anexo em HTML e abri-lo localmente em seu navegador nunca foi considerado uma ameaça grave. Até que um pesquisador de segurança demonstrasse uma técnica que poderia permitir que invasores roubassem arquivos armazenados no computador de uma vítima. Barak Tawily, pesquisador de segurança de aplicativos, compartilhou suas descobertas em que desenvolveu com sucesso um novo ataque de prova de conceito contra a versão mais recente do Firefox. Ele aproveitou um problema conhecido há 17 anos no navegador. Assim, uma falha no Firefox que já dura 17 anos permite roubo de dados.
Qual falha no Firefox que já dura 17 anos permite roubo de dados?
O ataque aproveita a maneira como o Firefox implementa a Same Origin Policy (SOP) para o esquema “file://” URI (Uniform Resource Identifiers). Assim, permite que qualquer arquivo em uma pasta do sistema obtenha acesso a demais arquivos na mesma pasta e subpastas. Como a tal Política para o esquema de arquivos não foi definida claramente no RFC pelo IETF, todos os navegadores e softwares o implementaram de forma diferente. Alguns tratam todos os arquivos em uma pasta como a mesma origem, enquanto outros tratam cada arquivo como uma origem diferente. Tawily disse que o Firefox é o único grande navegador que não mudou sua insegura implementação do SOP (Same Origin Policy) para o URI File Scheme ao longo do tempo e também suporta Fetch API over file protocol.
Demonstração: roubo de arquivos locais do Firefox
Embora a fraqueza na implementação do Firefox já tenha sido discutida na Internet repetidas vezes em anos anteriores, esta é a primeira vez que alguém inventa um ataque PoC completo que coloca em risco a segurança e a privacidade de milhões de usuários do Firefox.
Como mostrado no vídeo acima, Tawily explorou esse problema conhecido em combinação com um ataque de clickjacking e um bug de “alternância de contexto” que permitia que seu código de exploração fosse executado automaticamente. Então, ele pode:
- obter a lista de todos os arquivos localizados na mesma pasta e subpastas onde o HTML malicioso foi baixado pelo navegador ou salvo pela vítima manualmente,
- ler o conteúdo de qualquer arquivo específico ou de todos os arquivos usando o Fetch API e, em seguida,
- enviar dados coletados para um servidor remoto via solicitações HTTP.
Para uma execução bem sucedida, os atacantes são obrigados a enganar as vítimas para baixar e abrir um arquivo HTML malicioso no navegador Firefox e clicar em um botão falso para acionar a exploração.
Tawily disse que todas as ações acima mencionadas poderiam acontecer secretamente em segundo plano, sem o conhecimento das vítimas, assim que clicam no botão com cuidado na página HTML maliciosa.Deve-se observar que essa técnica permite que o arquivo HTML malicioso acesse outros arquivos na mesma pasta e em suas subpastas.
Em seu cenário de ataque PoC, Tawily mostra como um invasor pode facilmente roubar chaves SSH secretas de vítimas do Linux se um usuário salvar arquivos baixados no diretório do usuário, que também contém chaves SSH em sua subpasta.
O Firefox não vai consertá-lo tão cedo
O pesquisador relatou as novas descobertas para a Mozilla, que respondeu dizendo “Nossa implementação da Política de mesma origem permite que cada arquivo ://URL tenha acesso aos arquivos na mesma pasta e subpastas.
Isso sugere que a empresa atualmente parece não ter planos para corrigir esse problema no navegador em breve.
Ao falar sobre uma abordagem alternativa para corrigir esse problema, Twaily disse:
Em termos de segurança, acho que isso deve ser tratado no lado da RFC, que deve impor aos navegadores implementar a abordagem mais segura e não permitir que desenvolvedores cometer tais erros que deixam o cliente exposto a tais ataques.
Em 2015, pesquisadores descobriram uma vulnerabilidade semelhante, porém remotamente executável, Policy para o FireFox. Os invasores exploravam para roubar arquivos armazenados nos computadores dos usuários do Firefox quando eles clicavam em anúncios maliciosos em sites.
Embora o ataque requeira um pouco mais de engenharia social, muitos usuários do Firefox ainda podem ser facilmente vítimas. Portanto, é bom ficar atento a esta falha no Firefox que já dura 17 anos e permite roubo de dados.