Ideas, información y conocimientos compartidos por el equipo
de Investigación, Desarrollo e Innovación de BASE4 Security.
Ideas, información y conocimientos compartidos por el equipo
de Investigación, Desarrollo e Innovación de BASE4 Security.
Introducción
El objetivo principal de este trabajo fue evaluar la seguridad de un navegador exclusivo del sector bancario, basado en Firefox. Este navegador es utilizado por un gran número de clientes de la banca y es importante garantizar que su uso sea seguro y protegido de posibles riesgos.
Para llevar a cabo las pruebas, se utilizó el sistema operativo Windows 10 x64 y el compilador Visual Studio 2019. Con estas herramientas se crearon archivos DLL que se utilizaron para evaluar el navegador en distintos escenarios y situaciones. Algunas herramientas utilizadas fueron: IDA Pro, Process Monitor, y CFF Explorer.
En esta publicación mostraremos algunas vulnerabilidades comunes que se pueden encontrar en los navegadores desarrollados a medida, que son utilizados principalmente por la banca. Estos navegadores ofrecen a los usuarios cierta seguridad de navegación, solo por el hecho de ser navegadores exclusivos.
Algunas de sus ventajas serían las siguientes:
• Instalación única
• Instalación única
• Acceso controlado a cuentas
• Mejora la experiencia de navegación
Funcionalidades permitidas por el browser:
• Botón home al sitio de la compañía
• Botón recargar sitio web
• Botón agregar favorito
Se analizaron este tipo de browsers para validar y comprobar los posibles riesgos que se contraponen a la seguridad ofrecida por el navegador.
DLL Hijacking
La primera vulnerabilidad encontrada es el secuestro de DLL. Con esta se engaña a la aplicación legítima y de confianza para que cargue una DLL arbitraria. Los binarios responsables de llamar a la DLL y sus funciones son scpbradguard.exe y scpbradserv.exe el cual se ejecuta como servicio de Windows.
Este tipo de secuestro permitiría realizar tres objetivos:
• Ejecutar código malicioso
• Obtener Persistencia
• Escalada de privilegios
¡Vamos al grano!
Primero identificamos los servicios que se ejecutan después de instalar el browser. Para ello utilizamos Process Monitor con algunos filtros, así evitamos cargar información innecesaria. Con el filtro activado podemos identificar que existen dos DLL no encontradas VERSION.dll y WINHTTP.dll, nos enfocaremos en la segunda.
El paso siguiente es la identificación de sus funciones, esta información es necesaria para la creación de la DLL maliciosa. En este caso utilizamos CFF Explorer, aunque se podría utilizar IDA o Ghidra aunque si no es necesaria una ingeniería inversa en profundidad, la primera herramienta será suficiente.
Con la información obtenida se programa la DLL en C++ y se compila con Visual Studio 2019, luego se copia la DLL al directorio raíz de los binarios o simplemente copiar el binario a cualquier directorio de Windows con la DLL.
Evasión de Navegación
Dentro del análisis realizado al browser lo primero que se verificó fue si este cumplía correctamente con sus políticas de seguridad sobre la navegación y el bloqueo a sitios de terceros.
En primera instancia se comprobó que la barra de navegación se encuentra deshabilitada, evitando cambiar de dominio ya definido por el browser. Para este tipo de restricción se realizaron dos evasiones. El primero por HTML y el segundo por medio de parámetros del ejecutable, los que se explicaran a continuación.
¡Para no alargar y aburririrnos vamos a ir al grano!
Open Redirect via HTML File
Dentro de las pruebas se llegó a la conclusión que al crear un archivo de tipo HTML es posible ejecutar la redirección de dominio. Ahora el único problema que se encontró fue que el dominio debía estar en una lista permitida para que se ejecute la redirección, esto quiere decir que el dominio deber contener el nombre de la compañía.
Para esto se utilizó una simple evasión la cual consiste en agregar el nombre de dominio, seguido del protocolo HTTPS. Con esto superamos la lista permitida y la interpretación de la redirección tomaría el dominio después del carácter “@”, ya que lo demás sería el formato de username:password@domain.
Para ejecutar el archivo basta con cargar el HTML en el browser mediante “DragDrop”, pero esto no sería realista. El mismo browser al ser instalado, permite mantenerlo como predeterminado lo que facilitaría su ejecución. A continuación, podemos ver como el archivo es cargado correctamente por el browser, permitiendo ejecutar la redirección a un dominio que está fuera de la lista permitida.
Open Redirect via Parameters
Existe otro camino menos realista, pero que igual permite evadir la restricción, mediante parámetros permitidos por el browser. Podemos encontrar el parámetro -url y -new-window los que permiten abrir un dominio arbitrario, de igual forma es necesario mantener el formato de url para evadir la lista permitida. Para más información de los CommandLineOptions utilizados:
https://wiki.mozilla.org/Firefox/CommandLineOptions
Para llevar esto a una explotación real es necesario un binario intermediario (Malware) que active el comando cada vez que se llame el browser.
Flujo de ataque vía Phishing
El siguiente flujo representa como es posible un ataque utilizando la vulnerabilidad de Open Redirect que mantiene el browser custom hacia usuarios que utilicen dicho browser. Para esto el atacante envía el archivo por algún medio al usuario. Lo más común seria vía email, luego el usuario descarga y ejecuta el archivo siendo redireccionado a un sitio malicioso.
Conclusión
En resumen, las pruebas de concepto del navegador exclusivo de la banca Bradesco demostraron que contiene vulnerabilidades que pueden ser peligrosas para sus clientes. Sin embargo, estos aspectos podrían mejorar y se recomienda implementar medidas adicionales de seguridad para proteger aún más a los usuarios. Por lo tanto, es importante seguir trabajando en la mejora de la seguridad del navegador y en la protección de sus usuarios.-