retornar retornar
Análise de Personalizada

COMPARTILHAR

Twitter Facebook Linkedin

Análise de Personalizada

Introdução

O principal objectivo deste trabalho era avaliar a segurança de um navegador exclusivamente para o sector bancário, baseado no Firefox. Este navegador é utilizado por um grande número de clientes bancários e é importante assegurar que a sua utilização seja segura e protegida de possíveis riscos.

Para a realização dos testes, foram utilizados o sistema operativo Windows 10 x64 e o compilador Visual Studio 2019. Com estas ferramentas, foram criados ficheiros DLL que foram utilizados para avaliar o navegador em diferentes cenários e situações. Algumas das ferramentas utilizadas foram: IDA Pro, Process Monitor, e CFF Explorer.

Nesta publicação mostraremos algumas vulnerabilidades comuns que podem ser encontradas em navegadores desenvolvidos à medida, que são utilizados principalmente pelos bancos. Estes navegadores oferecem aos utilizadores alguma segurança de navegação, só porque são navegadores proprietários

Algumas das suas vantagens incluem o seguinte:

   Instalação única
   Actualização automática
   Acesso controlado às contas
   Melhorar a experiência de navegação

Funcionalidades permitidas pelo navegador:

   Botão Home para o website da empresa
   Recarregar botão do website
   Adicionar botão preferido

Estes tipos de navegadores foram analisados para validar e verificar os possíveis riscos que estão em desacordo com a segurança oferecida pelo navegador.
imagem ilustrativa

Sequestro de DLL

A primeira vulnerabilidade encontrada é o sequestro de DLL. Isto engana a aplicação legítima e de confiança para carregar uma DLL arbitrária. Os binários responsáveis por chamar a DLL e as suas funções são scpbradguard.exe e scpbradserv.exe, que funciona como um serviço Windows.

Este tipo de rapto permitiria alcançar três objectivos:

   Execução de código malicioso
   Obter Persistência
   Escalada de privilégios

Passemos ao que interessa!

Primeiro identificamos os serviços que correm após a instalação do navegador. Para tal, usamos Process Monitor com alguns filtros, pelo que evitamos carregar informação desnecessária. Com o filtro activado podemos identificar que existem duas DLLs não encontradas em VERSION.dll e WINHTTP.dll, vamos concentrar-nos na segunda.

imagem ilustrativa

Primeiro identificamos os serviços que correm após a instalação do navegador. Para tal, usamos Process Monitor com alguns filtros, pelo que evitamos carregar informação desnecessária. Com o filtro activado podemos identificar que existem duas DLLs não encontradas em VERSION.dll e WINHTTP.dll, vamos concentrar-nos na segunda.

imagem ilustrativa

Com a informação obtida, a DLL é programada em C++ e compilada com Visual Studio 2019, depois a DLL é copiada para o directório raiz dos binários ou simplesmente copiar o binário para qualquer directório Windows com a DLL.

imagem ilustrativa

Evasão Navegacional

Na análise do navegador, a primeira coisa que foi verificada foi se este cumpria correctamente as suas políticas de segurança na navegação e bloqueio de sites de terceiros.

Em primeiro lugar, foi verificado que a barra de navegação está desactivada, evitando alterar o domínio já definido pelo navegador. Para este tipo de restrição, foram feitas duas evasões. O primeiro por HTML e o segundo por meio de parâmetros executáveis, que serão explicados a seguir.

Para evitar ser longo e aborrecido, vamos directos ao assunto!

Abrir Redireccionar via ficheiro HTML

Dos testes concluiu-se que, através da criação de um ficheiro HTML, é possível executar o redireccionamento do domínio. Agora o único problema que foi encontrado foi que o domínio deve estar numa lista autorizada para que o redireccionamento seja executado, ou seja, o domínio deve conter o nome da empresa.

Para tal, utilizámos uma simples manobra de evasão que consiste em acrescentar o nome de domínio, seguido do protocolo HTTPS. Com isto excedemos a lista permitida e a interpretação do redireccionamento tomaria o domínio após o carácter "@", pois o resto estaria no formato de username:password@domain.

imagem ilustrativa

Para executar o ficheiro é suficiente carregar o HTML no browser usando "DragDrop", mas isto não seria realista. O próprio navegador, quando instalado, permite mantê-lo como padrão, o que facilitaria a sua execução. Abaixo, podemos ver como o ficheiro é carregado correctamente pelo navegador, permitindo executar o redireccionamento para um domínio que está fora da lista permitida.

imagem ilustrativa

imagem ilustrativa

Redireccionar via Parâmetros

Existe outra forma menos realista, mas que ainda permite escapar à restrição, através de parâmetros permitidos pelo navegador. Podemos encontrar os parâmetros -url e -new-window que permitem abrir um domínio arbitrário, mas também é necessário manter o formato url para fugir à lista permitida. Para mais informações sobre as CommandLineOptions utilizadas:

https://wiki.mozilla.org/Firefox/CommandLineOptions

Para levar isto a uma exploração real, é necessário um binário intermediário (Malware) para activar o comando cada vez que o navegador é chamado.

Fluxo de ataque de Phishing

O fluxo seguinte representa como é possível um ataque usando a vulnerabilidade Open Redirect que mantém o navegador personalizado aos utilizadores que o usam. Para isso, o atacante envia o ficheiro por algum meio para o utilizador. O mais comum seria através de e-mail, depois o utilizador descarrega e executa o ficheiro e é redireccionado para um sítio malicioso.

imagem ilustrativa

Conclusão

Em resumo, as provas de conceito do navegador dedicado do banco Bradesco mostraram que este contém vulnerabilidades que podem ser perigosas para os seus clientes. No entanto, estes aspectos poderiam ser melhorados e recomenda-se a implementação de medidas de segurança adicionais para uma maior protecção dos utilizadores. Por conseguinte, é importante continuar a trabalhar para melhorar a segurança do navegador e proteger os seus utilizadores.