Tu saldo $3000

Un análisis técnico de la estafa de 4k en Facebook

tl; dr: No confíe en los inicios de sesión de vista web en aplicaciones nativas, pueden leer sus cookies y usarlas para su beneficio.
Siguiendo el hilo de Hacker News “Cómo perdí 4k€ en una estafa en Facebook“, hicimos ingeniería inversa de la aplicación para ver cómo sucede esto.

La nueva ola de phishing

Phishing. Todos lo sabemos, todos lo odiamos. Niek van der Maas también lo odia, pero fue víctima de un nuevo tipo de estafa de phishing, que tomó 4k € de su cuenta bancaria.

¿Cómo pasó esto? ¿Cómo cayó Niek, un usuario experto en tecnología que posee un negocio de comercio electrónico, en este tipo de ataque?

Flujo de inicio de sesión y problema de confianza del usuario

Los formularios de inicio de sesión están en todas partes en estos días. Instagram, TikTok e incluso su periódico local, casi siempre es necesaria la autenticación del usuario para usar cualquier aplicación.

Una de las opciones para iniciar sesión involucra a un proveedor externo, a saber, Google, Facebook, Twitter u otros. En el caso de Facebook, por ejemplo, Android SDK presenta al usuario una superposición nativa y le pide que inicie sesión en Facebook con su nombre de usuario y contraseña.

Esto hace que el usuario confíe en la aplicación y crea dentro del usuario la confianza de que iniciar sesión en su cuenta social mediante nombre de usuario y contraseña es seguro.

Pero no siempre es así.

El caso de las estafas Webview

¿Qué sucede cuando involucra Webviews en el proceso de inicio de sesión?

Las vistas web son intrínsecamente inseguras por diseño. Cualquier aplicación de Android que use una vista web tiene acceso completo a cualquier dato almacenado por el sitio web: almacenamiento de sesión, almacenamiento local y, lo que es más importante, cookies.

Por ejemplo, una aplicación que presenta una página de inicio de sesión de Facebook puede robar las cookies del usuario después de iniciar sesión en el sitio web.

Aquí hay capturas de pantalla de dos páginas de inicio de sesión. Uno es de una vista web insegura y el otro es una página de inicio de sesión nativa segura. ¿Puede usted decir la diferencia?

página de inicio de sesión nativa segura
inicio de sesión Webview inseguro

(El inicio de sesión de Instagram es la página de inicio de sesión nativa segura)

Perder 4k€ en una estafa en Facebook

Niek se enamoró de la estafa de Webview. Niek no es un usuario típico; Dirige una empresa de comercio electrónico, marketing online y consultoría. En sus propias palabras:

Todavía me cuesta creer que haya caído en una estafa como esta. Tengo 2FA en todas mis cuentas, uso un administrador de contraseñas y, en general, soy muy cauteloso con la seguridad de la cuenta.

Niek confió en iniciar sesión en la aplicación maliciosa usando su nombre de usuario y contraseña de Facebook. Pero no sabía que la aplicación que descargó era maliciosa y usó webview para robar sus cookies de Facebook, iniciar sesión en su cuenta y robarle 4 €.

Echemos un vistazo detrás de escena de Tiktok Ads Business, la aplicación maliciosa que descargó.

Recuperar cookies de una vista web en Android

El flujo es simple. Niek abre la aplicación, hace clic en el botón grande de FB y se le presenta una vista web con la página móvil de Facebook.

Después de iniciar sesión, la aplicación ejecuta esta línea de código muy simple, tomada de una descompilación de la aplicación que hicimos aquí en Sayfer:

public final string retrieveWebCookie() {
    return cookieManager.getCookie(LoginActivity.CONST_URL_FACEBOOK);
}

Luego, las cookies de Facebook se envían al servidor remoto de la aplicación maliciosa y se pueden usar para iniciar sesión en la cuenta de la víctima.

Simple. Demasiado simple en realidad: cualquier usuario que inicie sesión en cualquier sitio web a través de una vista web en una aplicación, corre el riesgo de ceder la propiedad total de su cuenta.

¿Qué es lo siguiente?

Se necesita un cambio en dos niveles diferentes.

En primer lugar, los inicios de sesión de flujo nativo no deben depender de vistas similares a las de la web para el flujo de inicio de sesión. Esto hace que los usuarios confíen demasiado en ellos y hace que los usuarios sean víctimas de estafas reales de secuestro de cookies de vista web.

En segundo lugar, se necesita un cambio técnico en la implementación de webview de Android. No se debe permitir que las aplicaciones accedan a las cookies de ningún sitio web que carguen. Las vistas web deben estar protegidas y la aplicación debe comunicarse con ellas a través de una API muy delgada y limitada, para evitar que secuestren las credenciales de los usuarios.

Ir al contenido