LinkedIn, Instagram vulnerável a problemas de segurança RCE
Aplicativos de chat populares, incluindo LINE, Slack, Twitter DMs e outros, também podem vazar dados de localização e compartilhar informações privadas com servidores de terceiros.
As visualizações de link em aplicativos de bate-papo populares no iOS e Android são uma mangueira de incêndio em questões de segurança e privacidade, descobriram os pesquisadores. Em risco estão o Facebook Messenger, LINE, Slack, Mensagens Diretas do Twitter, Zoom e muitos outros. No caso do Instagram e do LinkedIn, é possível até executar código remoto nos servidores das empresas por meio do recurso, de acordo com uma análise.
As visualizações de link são padrão na maioria dos aplicativos de bate-papo e podem ser muito úteis. Quando um usuário envia um link, ele renderiza um breve resumo e uma imagem de visualização in-line no bate-papo, para que outros usuários não precisem clicar no link para ver para onde ele aponta.
Infelizmente, há uma desvantagem. De acordo com os pesquisadores independentes Talal Haj Bakry e Tommy Mysk, o recurso pode vazar endereços IP, expor links enviados em bate-papos criptografados de ponta a ponta e foi pego “baixando desnecessariamente gigabytes de dados silenciosamente em segundo plano”.
As questões remontam à forma como as visualizações são geradas, segundo os pesquisadores. Existem três maneiras de fazer isso: O remetente pode gerá-lo; o receptor pode gerá-lo; ou o servidor pode gerá-lo. Os dois últimos são problemáticos, sendo a versão gerada pelo servidor a mais preocupante.
“Como o aplicativo sabe o que mostrar no resumo?” Bakry e Mysk explicaram. “Deve, de alguma forma, abrir automaticamente o link para saber o que está dentro. Mas isso é seguro? E se o link contiver malware? Ou o que aconteceria se o link conduzisse a um arquivo muito grande que você não gostaria que o aplicativo baixasse e usasse seus dados ”.
Links gerados pelo remetente
Se o remetente gerar a visualização, o aplicativo irá baixar o que está no link, criar um resumo e uma imagem de visualização do site e enviará como um anexo junto com o link.
“Quando o aplicativo do destinatário receber a mensagem, ele mostrará a visualização conforme foi recebida do remetente, sem precisar abrir o link”, explicaram os pesquisadores, em uma postagem desta semana. “Dessa forma, o receptor estaria protegido contra riscos se o link for malicioso.”
Eles observaram que iMessage, Signal (se a opção de visualização do link estiver ativada nas configurações), Viber e WhatsApp seguem essa abordagem de prática recomendada. Mas, há uma advertência quando se trata do Viber.
“Se você enviar um link para um arquivo grande, seu telefone tentará baixar automaticamente o arquivo inteiro, mesmo que ele tenha vários gigabytes de tamanho”, observaram os pesquisadores.
Eles acrescentaram, “também vale a pena mencionar que, embora os bate-papos do Viber sejam criptografados de ponta a ponta, tocar em um link fará com que o aplicativo encaminhe esse link para os servidores Viber para fins de proteção contra fraude e anúncios personalizados.”
Links gerados pelo receptor
Quando o receptor gera a visualização, significa que o aplicativo abrirá qualquer link enviado a ele, automaticamente, sem a necessidade de interação do usuário.
“Este é ruim”, disseram os pesquisadores, observando que o processo pode vazar dados de localização.
“Vamos explicar brevemente o que acontece quando um aplicativo abre um link”, escreveram eles. “Primeiro, o aplicativo precisa se conectar ao servidor ao qual o link leva e perguntar o que está no link. Isso é conhecido como uma solicitação GET. Para que o servidor saiba para onde enviar os dados, o aplicativo inclui o endereço IP do seu telefone na solicitação GET. ”
Eles acrescentaram: “Se você estiver usando um aplicativo que segue essa abordagem, tudo o que um invasor precisa fazer é enviar um link para seu próprio servidor, onde ele pode registrar seu endereço IP. Seu aplicativo ficará feliz em abrir o link, mesmo sem você tocar nele, e agora o invasor saberá onde você está [em um quarteirão da cidade]. ”
Um segundo problema é que um link pode apontar potencialmente para um grande vídeo ou arquivo.
“Um aplicativo com bugs pode tentar baixar o arquivo inteiro, mesmo que tenha gigabytes de tamanho, fazendo com que ele consuma a bateria e o plano de dados do seu telefone”, alertaram os pesquisadores.
Links gerados pelo servidor
Finalmente, na terceira abordagem, o aplicativo envia o link para um servidor externo e pede que ele gere uma visualização, então o servidor enviará a visualização de volta para o remetente e o receptor.
Embora isso evite o problema de vazamento de endereço IP encontrado no cenário de geração do receptor, potencialmente expõe informações a terceiros, de acordo com os pesquisadores, e pode permitir a execução de código se o link apontar para um site malicioso com JavaScript.
Quanto à exposição dos dados, o servidor precisará fazer uma cópia (ou pelo menos uma cópia parcial) do que está no link para gerar a visualização.
“Digamos que você esteja enviando um link privado do Dropbox para alguém e não queira que ninguém veja o que ele contém”, escreveram os pesquisadores. “A questão é … os servidores estão baixando arquivos inteiros ou apenas uma pequena quantidade para mostrar a visualização? Se estiverem baixando arquivos inteiros, os servidores mantêm uma cópia e, em caso afirmativo, por quanto tempo? E essas cópias são armazenadas de forma segura ou as pessoas que administram os servidores podem acessar as cópias? ”
Vários aplicativos usam essa abordagem para visualizar links. Mas em testes, eles variam amplamente em termos de quantos dados os servidores baixaram, disseram os pesquisadores:
- Discord: Downloads de até 15 MB de qualquer tipo de arquivo.
- Facebook Messenger: faz download de arquivos inteiros, se for uma imagem ou vídeo, até mesmo arquivos com gigabytes de tamanho.
- Hangouts do Google: faz download de até 20 MB de qualquer tipo de arquivo.
- Instagram: Assim como o Facebook Messenger, mas não limitado a nenhum tipo de arquivo. Os servidores farão o download de qualquer coisa, não importa o tamanho.
- LINHA: Descarrega até 20 MB de qualquer tipo de arquivo.
- LinkedIn: Downloads de até 50 MB de qualquer tipo de arquivo.
- Slack: faz download de até 50 MB de qualquer tipo de arquivo.
- Twitter: faz download de até 25 MB de qualquer tipo de arquivo.
- Zoom: faz download de até 30 MB de qualquer tipo de arquivo.
“Embora a maioria dos servidores de aplicativos que testamos coloque um limite na quantidade de dados baixados, mesmo um limite de 15 MB ainda cobre a maioria dos arquivos que normalmente seriam compartilhados por meio de um link (a maioria das imagens e documentos não excedem alguns MBs em tamanho) ”, observaram os pesquisadores. “Portanto, se esses servidores mantiverem cópias, seria um pesadelo para a privacidade se houvesse uma violação de dados desses servidores.”
A questão é de particular preocupação para os usuários do LINE, de acordo com Bakry e Mysk, porque o LINE afirma ter criptografia de ponta a ponta, onde apenas o remetente e o receptor podem ler as mensagens.
“Quando o aplicativo LINE abre uma mensagem criptografada e encontra um link, ele o envia para um servidor LINE para gerar a visualização”, afirmam os pesquisadores. “Acreditamos que isso vai contra o propósito da criptografia ponta a ponta, uma vez que os servidores LINE sabem tudo sobre os links que estão sendo enviados através do aplicativo e quem está compartilhando quais links para quem. Basicamente, se você estiver criando um aplicativo criptografado de ponta a ponta, não siga a abordagem [gerada pelo servidor]. ”
Depois que os pesquisadores enviaram um relatório para a equipe de segurança do LINE, a empresa atualizou seu FAQ para incluir uma divulgação de que eles usam servidores externos para links de visualização, juntamente com informações sobre como desativá-los.
O Facebook Messenger e seu aplicativo irmão, Mensagens Diretas do Instagram, são os únicos no teste que não colocam limites na quantidade de dados baixados para gerar uma visualização do link. O Facebook respondeu às preocupações dos pesquisadores, dizendo que considera o recurso funcionando como pretendido, mas não confirmou por quanto tempo mantém os dados. O Twitter deu a mesma resposta.
“Como explicamos ao pesquisador semanas atrás, essas não são vulnerabilidades de segurança”, disse um porta-voz de uma empresa do Facebook ao Threatpost. “O comportamento descrito é como mostramos visualizações de um link no Messenger ou como as pessoas podem compartilhar um link no Instagram, e não armazenamos esses dados. Isso é consistente com nossa política de dados e termos de serviço. ”
Enquanto isso, o Slack confirmou que só armazena em cache as visualizações de link por cerca de 30 minutos, o que também é explicado em sua documentação.
A Zoom disse aos pesquisadores que está investigando o problema e discutindo maneiras de garantir a privacidade do usuário.
Os pesquisadores também contataram o Discord, Google Hangouts e LinkedIn para relatar suas descobertas, mas disseram que não receberam uma resposta desses dois.
Problemas de execução remota de código
Quanto ao problema de execução de código, os pesquisadores postaram um vídeo com uma prova de conceito de como os hackers podem executar qualquer código JavaScript em servidores Instagram. E no caso do LinkedIn Mensagens, os servidores também eram vulneráveis à execução de código JavaScript, o que lhes permitia contornar o limite de download de 50 MB em um teste .
“Você não pode confiar no código que pode ser encontrado em todos os links aleatórios que são compartilhados em chats”, Bakry e Mysk explicaram. “Encontramos, no entanto, pelo menos dois aplicativos importantes que fazem isso: Instagram e LinkedIn. Testamos isso enviando um link para um site em nosso servidor que continha código JavaScript que simplesmente fazia uma chamada de retorno para nosso servidor. Conseguimos confirmar que tínhamos pelo menos 20 segundos de tempo de execução nesses servidores. Pode não parecer muito, e nosso código não fez nada de ruim, mas os hackers podem ser criativos ”.
Quando contatado via Twitter DM, Mysk disse ao Threatpost que “Em nossos testes, um invasor pode executar qualquer código JavaScript nesses servidores. Embora possa não ser imediatamente óbvio como isso pode causar danos reais, permitir que o código JavaScript seja executado deixa a porta aberta para uma equipe de atacantes dedicados. O ataque mais simples seria algo como minerar criptomoedas nesses servidores e usar seus recursos ”.
Nenhuma das empresas respondeu às preocupações dos pesquisadores. Mas o porta-voz do Facebook disse ao Threatpost que o recurso funciona conforme o esperado e que não é uma vulnerabilidade de segurança. A pessoa adicionada da forma como a funcionalidade é apresentada não leva em consideração as medidas de segurança padrão da indústria que o Instagram implementou para proteger contra riscos de execução de código e que, quando a preocupação foi relatada, “não encontrou risco de RCE”.
Quanto ao LinkedIn, um porta-voz disse ao Threatpost por e-mail: “Para ajudar a manter nossos membros seguros, usamos um ambiente sandbox para avaliar o risco de segurança dos links que estão sendo compartilhados. Esses ambientes são efêmeros e possuem controles de acesso rígidos projetados para descobrir a execução de códigos maliciosos. Para este fim, executamos JavaScript no conteúdo da URL para completar a avaliação. Também não armazenamos em cache o conteúdo desses URLs. Todas essas etapas são realizadas para inspecionar o conteúdo do link para segurança. ”
Mas Mysk observou que tais proteções podem não ser boas o suficiente.
“As atenuações do lado do servidor, como a execução de código JavaScript em um ambiente de sandbox, são eficazes para impedir a maioria dos ataques, mas ataques mais sofisticados podem permitir que o invasor saia da sandbox e execute o código fora do ambiente protegido, o que pode permitir que o invasor roube dados e chaves secretas ”, disse ele ao Threatpost. “Vimos muitas tentativas bem-sucedidas de escapar da sandbox do JavaScript em aplicativos como o Chrome , e esses servidores de visualização de link não são diferentes.”
Procurando por Segurança
O problema de visualização do link é apenas mais uma preocupação quando se trata da segurança dos aplicativos de colaboração que se tornaram intrínsecos à realidade de trabalho em casa causada pela pandemia do COVID-19.
A boa notícia é que alguns aplicativos não renderizam visualizações, como Signal (se a opção de visualização do link estiver desativada nas configurações), Threema, TikTok e WeChat.
“Esta é a maneira mais segura de lidar com links, já que o aplicativo não fará nada com o link a menos que você toque especificamente nele”, observaram os pesquisadores.
No entanto, eles também alertaram que as visualizações de link são um fenômeno generalizado: “Existem muitos aplicativos de e-mail, aplicativos de negócios, aplicativos de namoro, jogos com bate-papo integrado e outros tipos de aplicativos que podem gerar visualizações de link indevidamente e podem ser vulneráveis a alguns dos problemas que cobrimos. ”
Fonte: https://threatpost.com/linkedin-instagram-preview-link-rce-security/160600/