El último día de la pasada edición de ekoparty guardaba algunos ases bajo la manga. Uno de ellos fue Salvador Mendoza con su charla Samsung Pay: Números Tokenizados y sus Fallas, donde demostró ante un público entusiasmado que es posible robar tokens de autorización para realizar compras sin restricción desde otro dispositivo. Si eres de los que acostumbra a realizar pagos con su equipo Samsung Galaxy, mejor siéntate y lee esta nota.

En los zapatos de la víctima

Samsung Pay es un servicio que permite a los usuarios almacenar datos de sus tarjetas en su equipo Samsung Galaxy, para luego utilizar el teléfono como medio de emisión de pagos a través de la tecnología de transmisión de datos magnéticos (MST) y NFC. Al momento de realizar una compra, el usuario debe acercar el teléfono al lector de tarjetas para disparar la autorización, proceso que se realiza mediante le emisión de tokens. Una vez autorizado, el usuario puede realizar la compra, tras lo cual recibirá un mensaje en su equipo indicando el monto que se ha cargado a su tarjeta.

Infortunadamente, las cosas pueden no salir según lo planeado y la víctima podría recibir un mensaje indicando que ha comprado un ítem completamente diferente por un monto ilimitadamente mayor. Esto se debe a que el sistema proclamado seguro por Samsung parece estar plagado de vulnerabilidades.

f324c47c-d4fa-4328-894b-44e70a854495

Así, un atacante podría robar los tokens de autorización que son emitidos por el teléfono y utilizarlos para comprar otras cosas. Aún peor, los tokens no se encuentran restringidos a un determinado monto de compra y, en caso de no utilizarse, se mantienen válidos por 24 horas.

Múltiples fallas de seguridad

A lo largo de la presentación, Salvador expuso numerosas fallas de seguridad.

Samsung Pay ofrece la posibilidad de funcionar de manera offline; mientras no posee conexión, el teléfono tiene absoluto control sobre los tokens, pero el servidor puede determinar de alguna manera cuál es válido y cuál no cuando se recobra acceso a Internet. Esto indica que el proceso de generación de tokens no es realmente aleatorio como afirma la empresa, lo cual implica que el próximo token válido emitido por el teléfono puede ser adivinado por un atacante.

Lo anterior permite que un atacante pueda utilizar una tarjeta de crédito ajena para realizar compras sucesivas, capturando un único token desde el equipo móvil y generando con un algoritmo los próximos a ser autorizados. La razón para ello es que el único campo pseudoaleatorio del token incluye solo los últimos tres dígitos en un rango desde el 000 al 999, con lo que puede realizarse fácilmente un ataque de fuerza bruta. El resto de los campos de los tokens que son emitidos con una misma tarjeta virtual no experimentan variaciones, o lo hacen de manera determinística.

Al realizar su investigación, el orador también encontró que las bases de datos en las cuales se almacenan las tarjetas digitales no se encuentran verdaderamente cifradas, sino que se trata meramente de un esquema de sustitución de caracteres.

Finalmente, es usual que al viajar a otro país debamos declarar nuestro destino para desbloquear el uso de la tarjeta tradicional en dicho lugar. No obstante, Salvador pudo también demostrar que las tarjetas virtuales que se almacenan en el smartphone no son validadas respecto al país de origen, pudiendo un atacante utilizar tokens robados en un país para realizar compras en otro sin problema alguno.

Escenarios de compromiso

El conferencista detalló diferentes escenarios que podrían comprometer la seguridad de los usuarios. La primera demostración incluyó técnicas de Ingeniería Social, mediante las cuales el atacante lograba la proximidad necesaria al teléfono para robar un token, escondiendo un dispositivo fabricado para este fin bajo la manga de su camisa. El equipo enviaba los tokens robados a su correo electrónico para que luego fuesen utilizados si aún estaban activos, o bien sirviesen para adivinar otros.

El segundo escenario de ataque incluyó un jammer que, al colocarse junto a la terminal de pago, comienza a mandar señales MST para bloquear el modo de ingreso de datos del terminal, mientras roba los tokens generados por las personas que intentan utilizar el dispositivo para comprar. Nuevamente, los tokens robados serían enviados a la cuenta de correo electrónico del atacante que ahora dispone de un día para utilizarlos.

El tercer escenario demostró un compromiso en tiempo real desde una máquina expendedora a otra, conectando equipos a través de una red Wi-Fi.

¿Parches de seguridad a la vista?

Hay malas noticias para los usuarios de Samsung Pay. Samsung ya ha sido notificada de estas vulnerabilidades, pero por lo pronto el ataque continúa siendo factible. Para evitar mayores problemas, es recomendable que estén sumamente atentos a las compras que son acreditadas a sus tarjetas hasta que un parche de seguridad sea desplegado por la firma.

En cuanto a otros servicios similares como Apple Pay, aparentemente los usuarios no corren riesgos en su utilización, al menos en lo que respecta a vulnerabilidades de este tipo. Según Salvador, el esquema de seguridad utilizado por este servicio fue correctamente implementado.