0 votes

Pourquoi ces "astuces" UI ne sont-elles pas exploitées plus souvent ?

De quoi je parle :

  • Facebook publie une application autonome appelée Messenger sur le Play Store. C'est une application de chat, pour des interactions avec d'autres utilisateurs de Facebook. Il implémente quelque chose appelé "chat heads" qui sont ces bulles rondes qui se trouvent au-dessus de tout le reste dans l'interface Android (sauf la barre d'état) qui permettent d'ouvrir une interface de chat toujours visible.

  • Facebook publie également son application phare, qui implémente des notifications intrusives pour elle-même, qui apparaissent en haut de l'écran et contiennent leur contenu pertinent.

    Ils se superposent à la barre d'état système, empêchant l'accès quand l'application n'est pas active

Il s'agit d'exemples bénins mais ils empiètent sur le territoire des utilisateurs et semblent malveillants dans la façon dont ils se manifestent -- apparaissant sans avertissement.

Facebook a donné à ses applications des moyens cachés pour désactiver ces choses.

Ce qui me surprend, c'est qu'il n'y a pas plus d'applications qui exploitent ces "failles" de sécurité de l'interface utilisateur.

Si j'étais dans le business d'infecter les téléphones des gens, j'en profiterais et je ferais le malware le plus énervant possible car c'est comme si un programme avait le contrôle de toute l'interface sans aucune issue.

Imaginez les choses désagréables qu'un morceau de code malveillant pourrait faire s'il empêchait littéralement l'utilisateur de réagir. Ils ne peuvent pas utiliser l'interface, donc ils ne peuvent pas arrêter l'application, ils ne peuvent pas éteindre le téléphone et sur de nombreux téléphones, vous ne pouvez pas retirer la batterie, etc.

Y a-t-il une raison évidente pour laquelle ce genre de choses n'est pas plus exploité ? Je ne trouve pas grand-chose à ce sujet.

0 votes

Juste pour ajouter un peu plus d'informations, les applications publiées sur Google Play sont examinées, et en tant que tel, toute application qui remplit simplement tout l'écran pour une raison aléatoire, à mon avis, ne serait probablement pas mise en ligne sur le magasin Google Play et par conséquent vous ne pourriez pas voir de quoi vous parlez dans votre question ci-dessus. Mais lors de l'installation à partir de sources inconnues, cela pourrait se produire, mais lorsque la plupart des utilisateurs qui installent à partir de sources inconnues, installent des applications, ils savent généralement ce que cela fait, et installent intentionnellement une application malveillante.

0 votes

@Matt07211 Je sais qu'ils sont scannés et vérifiés pour repérer les problèmes évidents, mais est-ce que les soumissions sur le Play Store sont réellement testés par des humains ?

1 votes

À certains égards oui, (dans une certaine mesure de toute façon). Comme on le voit ici: techcrunch.com/2015/03/17/… Edit: Citation: "Aujourd'hui, les applications Android sont approuvées en quelques heures, et non en quelques jours, malgré l'ajout de réviseurs humains."

4voto

Firelord Points 23064

Cette bulle de discussion est là parce que vous avez accordé à Messenger l'autorisation "Dessiner par-dessus d'autres applications". En termes simples, appelez cela une superposition. Le nom qualifié de l'autorisation est android.permission.SYSTEM_ALERT_WINDOW.

Permet à une application de créer des fenêtres en utilisant le type TYPE_SYSTEM_ALERT, affiché au-dessus de toutes les autres applications. Très peu d'applications devraient utiliser cette autorisation ; ces fenêtres sont destinées à une interaction au niveau du système avec l'utilisateur.

(Souligné par moi)

Je ne pense pas que les bulles de discussion de Messenger, en aucune manière, soient destinées à une interaction au niveau du système avec son utilisateur, vous pouvez donc supposer que les développeurs de cette application et de toute autre application de ce type ont choisi d'abuser de la fonctionnalité du système à des fins personnelles.

De plus, vous n'êtes certainement pas la première personne à avoir pensé à l'exploitation de la fonction de superposition d'Android.

ArsTechnica : Un nouveau ransomware Android bloque les victimes en changeant le code PIN de l'écran de verrouillage

Surnommée Android/Lockerpin.A, l'application ... superpose une fausse fenêtre d'installation de correctif sur un avis d'activation. Lorsque les cibles cliquent sur le bouton continuer, elles accordent vraiment aux applications malveillantes des droits élevés qui leur permettent de modifier les paramètres d'Android. À partir de là, Lockerpin définit ou réinitialise le PIN qui déverrouille l'écran, obligeant ainsi les utilisateurs à effectuer une réinitialisation d'usine pour reprendre le contrôle de l'appareil.

...

Une fois que le bouton continuer est pressé, l'application acquerra des droits d'administrateur [devient un administrateur de l'appareil]. À partir de là, il changera le PIN et continuera périodiquement à superposer une fausse fenêtre dans le but de conserver les privilèges élevés. Il s'agit du premier ransomware Android de l'écran de verrouillage à définir un code PIN sur un téléphone. Étant donné qu'il oblige les victimes à réinitialiser leurs téléphones sans payer, elles perdent toutes leurs données.

(Souligné par moi)

Juste pour que vous le sachiez, Android comprend les dommages potentiels que la superposition peut causer à un appareil, donc lorsque une superposition est activement affichée à l'écran et que l'utilisateur tente de charger une application, le bouton d'installation refuse simplement de fonctionner. Voir Pourquoi ne puis-je pas appuyer sur le bouton Installer lors de l'installation d'applications provenant de sources inconnues ?

Si seulement Android étendait cette fonctionnalité à l'activation/désactivation des administrateurs de périphériques, ce serait très gentil de leur part.

Si vous souhaitez savoir quelle autre application dispose de la même autorisation, vous pouvez utiliser ma réponse sur Déterminer quelle application superpose d'autres applications ?


Les notifications que vous avez mentionnées, aussi intrusives soient-elles, sont appelées notifications Heads-up. Jusqu'à Android 5.1, les utilisateurs n'avaient pas de moyen officiel de s'en débarrasser sans perdre toutes les notifications d'une application.

Design Android : Notification Heads-up

Lorsqu'une notification à haute priorité arrive ..., elle est présentée aux utilisateurs pendant une courte période avec une disposition étendue exposant des actions possibles.

Après cette période, la notification se replie dans la barre de notification. Si la priorité d'une notification est marquée comme élevée, maximale ou plein écran, elle obtient une notification Heads-up.

(Souligné par moi)

Comme vous l'avez probablement deviné, les notifications Heads-up ne sont pas le type de notification par défaut qu'un système devrait afficher à un utilisateur et un développeur doit explicitement l'opter dans le code de l'application. C'est juste que certains développeurs estiment que les actions de leur application sont de la plus haute importance dans la vie de l'utilisateur, sans parler du système, donc ils choisissent souvent d'afficher chaque notification sous la forme d'une notification Heads-up.

Cela dit, les notifications Heads-up ont été introduites uniquement dans Lollipop tandis que votre appareil exécute Android KitKat, donc certainement, comme l'a dit Andrew T. dans les commentaires, cela doit être le code natif de Facebook qui crée et affiche à la fois ces pseudo-notifications Lollipop en haut et au-dessus d'une fenêtre.

La raison pour laquelle vous ne pouvez pas interagir avec la barre du système lorsque cette pseudo-notification Lollipop est active, est très probablement l'utilisation de superpositions bloquantes pour afficher une vue qui est perçue comme une notification par l'utilisateur. La réponse de Aaron a expliqué cela avec un bon exemple d'application fonctionnelle.

J'ai recherché sur le web entre octobre 2013 et octobre 2014 (l'âge de développement d'Android 4.4.x) et j'ai appris qu'il y avait des applications disponibles sur le Play Store principalement destinées à créer ces pseudo-notifications Lollipop. Une de ces applications est Floatifications et l'autre que j'ai trouvée était Metro Notifications Free. Les deux utilisent la même superposition bloquante pour créer ces pseudo-notifications Lollipop.

Je suis surpris que vous n'ayez pas trouvé les toa ûtes assez agaçantes.

1 votes

En ce qui concerne la notification heads up, je suis un peu dans le doute car OP mentionne Android 4.x qui n'avait pas cette fonctionnalité, alors qu'il l'a reconnue comme une notification "pseudo-Lollipop". Donc... Si elle est apparue sur KitKat, alors je pense que c'est le code personnalisé de FB...

0 votes

@AndrewT. merci. J'ai manqué cette information critique. Veuillez voir si la réponse éditée clarifie maintenant vos doutes. Faites-moi savoir si ce n'est pas le cas.

0 votes

Wow, belle réponse! J'aimerais juste noter que moi en tant qu'utilisateur final, je n'étais pas au courant que Messenger avait cette autorisation spécifique que vous avez mentionnée car ce n'est que récemment dans Marshmallow que Google s'est rendu compte qu'ils devaient améliorer leur modèle de permissions sur les applications, et ce n'était pas spécifiquement mentionné ou visible depuis le magasin.

3voto

Aaron Gillion Points 1494

Facebook fait beaucoup plus que simplement surcharger votre fenêtre de visualisation. Avez-vous vu toutes les autorisations qu'il exige ?!

Les méthodes que Facebook utilise pour ajouter des bulles de chat sont appelées « Overlays de blocage ». Il s'agit d'une fonctionnalité intégrée d'Android. Il existe une application appelée Tasker qui visualise bien ces fonctionnalités. Tasker est une application d'automatisation, mais vous pouvez également créer des activités appelées « Scènes » sur lesquelles vous pouvez concevoir des interfaces utilisateur. Tasker vous permet d'afficher ces scènes comme suit :

  • Activités en pleine fenêtre,
  • Dialogues de blocage (avec une option d'arrière-plan sombre, qui ne permet pas à l'utilisateur de cliquer derrière la fenêtre),
  • Overlays de blocage (qui permettent à l'utilisateur de continuer à utiliser l'application en premier plan, un peu comme les bulles de chat),
  • et des overlays non-bloquants (qui ne peuvent pas être ciblés ou tapés, les tapes passent directement à travers l'overlay vers ce qui se trouve en dessous).

Les overlays non-bloquants semblent inutiles, mais c'est ainsi que sont créées les applications "mode nuit" et "limiteur de luminosité". Il s'agit simplement d'un overlay semi-transparent sur l'écran.

Par conséquent, ce n'est pas si mal que les applications puissent utiliser votre espace de fenêtre, tant qu'elles ne sont pas abusées, elles peuvent offrir des fonctionnalités. Dans le cas de Facebook Messenger, toutes les petites fonctionnalités sympas ont certainement un coût, en termes de vie privée (autorisations de l'application).

J'espère avoir contribué à expliquer un peu mieux ces « hacks d'interface utilisateur », et qu'ils ne sont pas toujours mauvais.

0 votes

J'ai vu toutes les autorisations qu'il nécessite et à quel point c'est terrible, mais c'est mieux que le site web ¯_()_/¯ Pour répondre à votre dernier point/s, oui, ils sont utiles pour ces cas et bien d'autres, je suis d'accord, mais les mises en œuvre par FB me dérangent toujours. Merci pour votre réponse!

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X