Situación inicial:
Un servicio web RESTful se defiende contra los ataques CSRF utilizando el método de envío doble de cookies. Esto significa que el token de autenticación se envía dos veces y se verifica en el lado del servicio.
Problema / Amenaza de seguridad:
El elemento WebView de las plataformas Android y iOS permite crear un navegador web malicioso que revela y modifica las cookies de sesión. webView.loadUrl("javascript:document.cookie=’’;");
. Si el atacante ya se dio cuenta, cómo se ve la cookie doble enviada, (en este caso es el AuthenticationToken) es capaz de crear un RESTBrowser malicioso. Por lo tanto, agrega el ya conocido CSRFToken al modelo de objeto de documento y, por lo tanto, omite la contramedida CSRF. ¿Está bien hasta ahora?
Prevenciones posibles:
Hasta ahora no tengo idea de cómo puedo evitar que un atacante cree y publique dicha aplicación móvil maliciosa, así como para evitar que se acceda al servicio a través de aplicaciones móviles maliciosas. Sé de la existencia del encabezado User-Agent
y que el servicio puede usar esta información para rechazar solicitudes de otros que no sean navegadores específicos. Pero estoy seguro de que también este encabezado puede ser manipulado dentro de WebView.
¿Cuáles son las contramedidas efectivas contra CSRF en contextos de aplicaciones móviles maliciosas?