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 com o The Hacker News, onde desenvolveu com sucesso um novo ataque de prova de conceito contra a versão mais recente do Firefox, aproveitando um problema conhecido de 17 anos no navegador.
O ataque tira proveito da maneira como o Firefox implementa a SOP (Política de Origem Iguana) para o URI (Uniform Resource Identifiers) do esquema “file: //”, que permite que qualquer arquivo em uma pasta em um sistema tenha acesso a arquivos na mesma pasta. e subpastas.
Como a Política de mesma origem 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 ao The Hacker News 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 (sem correção)
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 na demonstração em vídeo, 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 automaticamente:
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,
leia 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 deste ataque, 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 ao The Hacker News 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 suas 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 agentes de usuário (navegadores) para implementar a abordagem mais segura e não permitir que desenvolvedores cometer tais erros que deixam o cliente exposto a tais ataques “.
Em 2015, os pesquisadores descobriram uma vulnerabilidade semelhante, mas remotamente executável, na política de mesma origem para o FireFox, que os atacantes exploravam na natureza para roubar arquivos armazenados nos computadores dos usuários do Firefox quando clicavam em anúncios maliciosos em sites.
Embora o ataque recém-demonstrado requeira um pouco mais de engenharia social, muitos usuários do Firefox ainda podem ser facilmente vítimas disso também.