![]() |
¿seguro? |
Esta entrada va a resultar un rollo: larga, con poca información relevante, llena de capturas, trazas de tráfico, código fuente «des-ensamblado», etc. Así que voy a hacer dos cosas: 1) un resumen ejecutivo, y 2) dividir la información en dos entradas.
Atentos, el resumen: FINTONIC es un servicio interesante que te ayuda a llevar las cuentas de tu economía doméstica. Para ello guarda tus claves de los bancos que configures (las claves para acceder online a tus cuentas en tus bancos). He analizado la versión WEB y las apps para Android e IOS y, «lamentablemente», no he encontrado ninguna vulnerabilidad. Todo esto habría sido más divertido si hubiera encontrado un montón de agujeros de seguridad muy graves («si pones como login PEPE puedes ver los datos de cualquier usuario», por ejemplo).
En realidad, me comprometí a probar el servicio y dar mi opinión y, aunque no he descubierto nada grave, quiero enseñar aquí lo que he probado. También me apetecía probar algunas técnicas aprendidas en el curso «Smartphone Apps Hacking and Reversing» de Vulnex.
FINTONIC es un agregador de información financiera personal. En breve: creas una cuenta en Fintonic, das de alta en tu cuenta de Fintonic tus bancos (con tus datos de identificación de cada banco, normalmente NIF y clave de consulta de movimientos) y, a partir de ahí, la plataforma actualiza diariamente tus movimientos y te muestra esta información de forma agregada. Agrupa tus gastos por categorías, muestra un cuadro de situación de cuentas, tarjetas de crédito, hipotecas, préstamos, cartera de valores, fondos, etc.
Tiene tres versiones: WEB, Android (más de 10.000 descargas) e IOS.
![]() |
Estos datos no son míos (por suerte) |
Personalmente, el servicio me ha gustado bastante, sobre todo porque:
- Agrupa gastos relacionados de cuentas diferentes. Por ejemplo, si tienes tres viviendas es probable que los gastos de luz no estén en la misma cuenta o que pagues la gasolina con varias tarjetas diferentes pero te gustaría ver todos los gastos de gasolina agrupados,
- Muestra la información de carteras de inversión y productos financieros de forma natural. En algunos bancos es difícil saber cuánto valen tus acciones o cuál es el valor actual de un fondo, por ejemplo.
- Es gratuito para el usuario final aunque, como dice el axioma de Internet, el usuario se convierte de alguna manera en «producto»: Fintonic «vende» a otras empresas el acceso a sus clientes (las empresas pueden enviar sus ofertas a los clientes en forma de «recomendaciones de ahorro / inversión / …»).
- La versión Android, que es la que uso habitualmente, está muy bien hecha. Bien estructurada, datos claros, no hay información confusa, etc. Esto es relevante, ¿imaginas una aplicación financiera que mostrara «-620.000€» y no supieses de donde sale ese número?
Por supuesto, hay revisiones más completas de Fintonic, por ejemplo en el propio dossier de prensa de Fintonic.
¿Es seguro FINTONIC?
Antes de responder categóricamente a esto, habría que definir los riesgos a los que se enfrenta una aplicación de este tipo, el nivel de protección que tiene el servicio y si las medidas de seguridad ofrecidas son proporcionales al valor de lo que se quiere proteger y a los potenciales «ataques» que podría recibir el servicio.
En mi opinión, el riesgo principal para los usuarios de Fintonic es que sus claves caigan en manos de terceros con malas intenciones. Las claves de los bancos que se dan de alta en Fintonic son las claves de consulta, es decir, no hace falta meter tarjetas de coordenadas, ni ningún otro mecanismo usado para validar transacciones (1). Por otra parte, la clave de acceso a Fintonic no parece guardarse (2) y el usuario debe teclearla cada vez (tanto el identificador, una dirección de e-mail, como la clave de acceso). Si estas claves se ven comprometidas sólo nos arriesgamos a que un atacante pudiera conocer nuestra situación financiera, los productos bancarios que tenemos, las cuentas que manejamos, etc. Desagradable, por supuesto, pero no muy peligroso para nuestro patrimonio.
(1) Por supuesto, hay mecanismos de seguridad que son imposibles de almacenar en ningún sitio, como validaciones en dos pasos basados en SMS o tarjetas que generan tokens de seguridad.
(2) Fintonic no guarda las claves pero en la versión Web se podría extraer el usuario y la clave tecleadas de un volcado de la memoria del sistema (como expliqué aquí).
Por lo que he visto hasta el momento, no es fácil interceptar las claves del usuario. Si un atacante captura el tráfico entre la aplicación y el servicio (con un esquema MiTM sobre una conexión WI-FI, por ejemplo) sólo vería un montón de peticiones cifradas (3). Por otra parte, las apps (tanto Android como IOS) no almacenan las claves de los bancos del usuario que están en el servidor y, por otra parte, no parecen exponer alegremente la información de acceso a Fintonic.
(3) Fintonic usa, como primera opción, TLS_RSA_WITH_RC4_128_MD5 en Android y Web; TLS_ECDHE_RSA_WITH_RC4_128_SHA en IOS. No he probado a intentar hacer downgrade a protocolos menos seguros.
Así que sólo quedan tres posibles vías de ataque:
- Acceder a los servidores de Fintonic y extraer la información de los clientes directamente de las plataformas de servicio. No he gastado ni un segundo en investigar cuán seguros son los servidores de Fintonic; básicamente porque lo que quería probar eran las aplicaciones. Tampoco me pareció «elegante» intentar jugar con una plataforma que está en servicio.
- Meter un rootkit en los terminales Android o IOS para capturar la clave del usuario y enviarla a algún servidor controlado por el atacante. Lo mismo se podría hacer con un keylogger en el PC (para la versión Web del servicio). Por supuesto hay poca defensa ante un rootkit aparte de no instalar aplicaciones de origen dudoso, evitar el uso de terminales «rooteados» o «jailbreakeados», etc. Estas medidas de protección básicas son, claramente, responsabilidad del usuario.
- Capturar la clave del usuario mientras este la teclea en su móvil en un lugar público. Parece algo de sentido común pero no hay que teclear las claves de uno en presencia de otras personas.
En la próxima entrada describiré las pruebas que realicé con las diferentes versiones de la aplicación y los resultados de las mismas. A continuación el trailer de la siguiente entrada.
![]() |
Reversing en IOS |
![]() |
Reversing en Android |
![]() |
Una captura de tráfico (MiTM) |
<¿es Fintonic seguro? (I) />