Situation initiale :
Un service web RESTful se défend contre les attaques CSRF en utilisant l'approche du cookie à double soumission. Cela signifie que le jeton d'authentification est soumis deux fois et vérifié du côté du service.
Problème / menace de sécurité :
L'élément WebView des plates-formes Android et iOS permet de créer un navigateur web malveillant qui dévoile et modifie les cookies de session. webView.loadUrl("javascript:document.cookie=’’;");
. Si l'attaquant a déjà compris à quoi ressemble le cookie soumis en double (dans ce cas, il s'agit de l'AuthenticationToken), il est en mesure de créer un RESTBrowser malveillant. Il ajoute donc le CSRFToken déjà connu au modèle d'objet du document et contourne ainsi la contre-mesure CSRF. Est-ce que cela est correct jusqu'à présent ?
Préventions possibles :
Jusqu'à présent, je n'ai aucune idée de la façon dont je peux empêcher un attaquant de créer et de publier une telle application mobile malveillante, ainsi que d'empêcher l'accès au service par des applications mobiles malveillantes. Je connais l'existence du User-Agent
et que le service peut utiliser ces informations pour rejeter les demandes provenant d'autres navigateurs que certains. Mais je suis sûr que cet en-tête peut aussi être manipulé dans le WebView.
Quelles sont les contre-mesures efficaces contre CSRF dans le contexte des applications mobiles malveillantes ?