Tapjacking

Description

Le tapjacking est l'équivalent du clickjacking dans une application Android. Une application malveillante amène l'utilisateur à cliquer sur un contrôle de sécurité (bouton de confirmation permettant de désactiver un élément de sécurité par exemple) en utilisant une superposition, par exemple, pour masquer l'UI. Sur cette page, nous différencions deux variantes d'attaque : l'occlusion complète et l'occlusion partielle. En cas d'occlusion complète, le pirate masque la zone tactile, tandis que dans le cas d'une occlusion partielle, la zone tactile n'est pas masquée.

Occlusion complète

Occlusion partielle

Sandwich d'activité

Si une activité sensible est exportée, il est possible d'importer l'activté dans une application malveillante qui se charge tout simplement de modifier l'UI de manière modifier l'utilisation légitime de l'activité originale.

Exploitation par version de SDK utilisé

Android < 6 (API 23) : android.Manifest.permission.SYSTEM_ALERT_WINDOW

L'autorisation SYSTEM_ALERT_WINDOW permet à une application de créer une fenêtre superposée pour toutes les applications.

Android < 11 (API 30): toast personnalisé

Il est possible d'utiliser Toast.setView() pour personnaliser l'apparence d'un message de type toast. Sur Android 10 (niveau d'API 29) et versions antérieures, des applications malveillantes peuvent lancer de tels toasts en arrière-plan.

Il est possible d'éviter cette limitation dans certains cas à l'aide d'un toast burst, dans lequel il est possible de mettre plusieurs toasts en attente au premier plan, qui continuent de se lancer même une fois que l'application passe en arrière-plan.

Les attaques de toasts en arrière-plan et les toast bursts sont entièrement atténuées depuis Android 12 (niveau d'API 31).

Outils

Tapjacker

Tapjacker est une application design pour PoC des vulnerabilités de tapjacking.

ressource: https://github.com/dzmitry-savitski/tapjacker

Dernière mise à jour