Activation de la caméra cachée par les navigateurs: Big Brother ou erreur de calcul technologique?

image


Bonjour à tous!


Je m'appelle Vadim et je suis l'un des consultants techniques et, en combinaison, l'administrateur système de RosKomSvobody .


Mais ce post ne parlera pas de moi. Ce sera l'histoire d'une situation suspecte (en termes de confidentialité dans le contexte des téléphones mobiles) que nous avons récemment rencontrée.
Cela pourrait être dans le style de "Aaaaaaaaa! Regardez, Big Brother (Google) nous suit", mais je vais quand même essayer de faire une sorte d'analyse et de proposer des hypothèses plausibles sur pourquoi ce qui s'est passé peut arriver.


Je m'excuse à l'avance si quelqu'un n'aime pas le format à la "magazine} {akep to zero". Écrivez - je serai corrigé.


Alors. Un de nos lecteurs s'est approché de nous, affirmant qu'en entrant sur notre site (qui, assez ironiquement, la tuile supérieure de notre campagne contre la reconnaissance faciale - BanCam se bloque en haut), la caméra frontale est activée.


Le fait est qu'il est le propriétaire d'un téléphone d'une nouvelle génération de téléphones sans "manilles", dans lequel la caméra avant est placée dans un bac "sortant" séparé. Ce qui, en fait, laisse lors de l'accès à la caméra.



Comme vous l'avez probablement deviné, mes premières pensées ont été les soupçons que nous étions en quelque sorte miraculeusement, malgré tous les "mécanismes de sécurité" que je construisais, encore piratés et "construits".


Cependant, l'enquête a révélé que tout est en ordre avec notre site.


Après avoir mené l'enquête susmentionnée et discuté de ses conclusions dans le chat technique de RosKomSvoboda, je me suis souvenu que j'avais déjà rencontré sur plusieurs forums sur Internet un cheval de Troie «glissé» à travers des réseaux de bannières (lors de l'ouverture du forum à partir d'un téléphone Android) apk-packages (apparemment, dans l'espoir que l'utilisateur les installera, pensant qu'il s'agit du client officiel de ce forum).


Après avoir réfléchi à cette idée, j'ai suggéré d'essayer de vérifier les "trackers" qui figuraient sur la liste des permis (ce lecteur utilise Firefox et l'addon uBlock qui y est installé).


Quelques heures d'expériences ont montré que la caméra s'arrête de bouger si vous bloquez l'accès au domaine google.com . En outre, quelque part en même temps, cet utilisateur a déclaré que cette situation était également reproduite sur le site Web kod.ru (avant cela, nous travaillions avec la version «uniquement avec nous»).


Après être allé un peu plus loin dans les fouilles, j'ai trouvé que les demandes de google.com provoquaient non seulement des trackers Google (aka "analytics"), mais même "l'incorporation" habituelle de vidéos YouTube sur une page. La reproductibilité de la sortie de la caméra sur kod.ru également tombée dans cette théorie (il s'est avéré qu'il y avait également une vidéo de YouTube sur la page testée).


Afin de confirmer davantage cette théorie, j'ai googlé un article de blog aléatoire sur la "comment insérer une vidéo YouTube dans un blog, une instruction vidéo" avec une vidéo intégrée, et la situation a également été reproduite dessus.


Alors. Bon. Pour le moment, nous avons de telles informations entre nos mains: la présence d'une vidéo YouTube intégrée sur la page déclenche le chargement de certains scripts de google.com , et ceux-ci, à leur tour, déclenchent la sortie de la caméra.


Ok, creusez plus loin.


En fouillant dans les outils de débogage du navigateur, j'ai trouvé qu'un étrange et terriblement obscurci (à tel point qu'aucun des désobfuscateur que j'ai essayé à partir des résultats de recherche ne pouvait gérer) chargé à partir de www.google.com (à savoir www ) chargé, même avec un nom et que obscurci (connaissant Google, je peux supposer qu'après un certain temps ce script disparaîtra et à sa place sera mis un script avec un nom différent (mais également illisible). Donc, voici son code , juste au cas où).


Un rapide coup d'œil au script ne montre aucune référence à la caméra ici, et plonger dans le débogage encore plus profondément et interpréter ce qu'il fait il n'y a pas de temps et d'opportunité (bien que si l'un de vous lecteurs le souhaite, vous pouvez le faire).


Nous essayons d'entrer de l'autre côté:
Personnellement, j’ai un téléphone sans caméra de sortie, donc c’est si facile de l’attirer, je ne peux pas. Mais je peux le connecter via USB et faire adb logcat | grep -C5 camer adb logcat | grep -C5 camer ( grep - parce qu'autrement, il y a trop de déchets inutiles pour chaque éternuement, y compris en tapotant l'écran avec votre doigt ou en déplaçant le téléphone dans l'espace). Qu'est-ce que je fais réellement ...


Alors, la tentative numéro un: je vais sur les sites testés, et ... rien!


La pensée se glisse, que le problème semble, après tout, quelque part du côté de l'utilisateur.


Parallèlement à ce processus, nous discutons de la situation dans le chat technique susmentionné de RosKomSvobody. Après un certain temps, l'un des participants a reçu l'avis que, disent-ils, les navigateurs mobiles sont rusés: ils ne demandent pas toujours des droits d'accès globaux à la caméra, et s'ils ne sont pas accordés, dans certains cas, ils peuvent ne pas demander!


Je vais dans les paramètres de l'application et je vois que oui, je n'ai pas défini d'autorisations pour la caméra pour Firefox. Je l'allume, je le vérifie à nouveau et je vois une feuille pour quelques "écrans" avec ce qui suit:


capture d'écran


Ouais! Faites appel à la caméra, alors il y en a encore!
De plus, immédiatement après la ligne avec "obtenir les informations sur l'appareil", il y a une ouverture explicite de l'appareil photo:


 12-12 17:10:14.734 751 6924 I QCamera : <HAL><INFO> int qcamera::QCamera2Factory::cameraDeviceOpen(int, struct hw_device_t **): 405: Open camera id 0 API version 256 

Je vérifie la même chose avec Chrome, et tout est reproduit: si les droits sur la caméra sont supprimés, puis dans le journal "silence des agneaux", et si émis - la même feuille que l'accès à la caméra apparaît avec le bouchon de lait au safran.


Le problème est donc:
a) non local pour l'utilisateur,
b) non spécifique au navigateur.


Fait intéressant, au cours de tous ces événements, aucun de ces navigateurs n'a essayé de dire un mot sur la demande de permission d'accéder à la caméra depuis l'un des sites participant au test (et, en fait, depuis YouTube et google.com aussi).


À la lumière de ce qui précède, deux hypothèses me sont nées:


  1. Soit Big Brother, cependant, vous regarde, ou
  2. ce script horriblement obscurci appelle en fait une partie de l'API de la caméra dans les navigateurs pour prendre les empreintes digitales de l'utilisateur, mais n'accède pas directement à la caméra. Par conséquent, il n'y a pas de demande d'accès (cependant, si vous regardez la vidéo au début de l'article, vous pouvez voir comment la LED clignote entre l'ouverture et la fermeture de la caméra, ce qui vous fait réfléchir).

Les navigateurs, cependant, adhèrent à la logique ici: "lors de l'initialisation de l'API de la caméra, s'il n'y a pas accès à la caméra, nous ne faisons rien (nous ne le demandons même pas jusqu'à ce qu'il y ait un réel besoin), et si c'est le cas, nous initialisons les caméras et vérifions quels appareils nous avons là et quoi ils peuvent "(pour lequel, apparemment, l'appareil est" découvert ").


Le vendeur de téléphone de l'utilisateur, semble-t-il, ne s'est pas particulièrement plongé dans l'invention des béquilles logicielles au-dessus de la caméra et a résolu le problème simplement (pour lequel, d'ailleurs, il respecte): lors de l'accès à la caméra, elle s'en va. Lorsque vous ouvrez l'appareil et échangez des données avec lui, la diode clignote.


Au total, il s'avère que le problème n'est pas aussi fatal qu'il semblait au début, et, espérons-le, personne ne prend de photos (bien que cela ne soit néanmoins pas "exact", car ma compétence à savoir Les codes source d'Android ne suffisent pas à garantir sans ambiguïté dans quel cas la feuille d'appels à l'appareil photo dans logcat parle de la photo prise, et dans laquelle - à peu près parler de l'application avec l'appareil).


Cependant, le fait que l'ouverture de toute page Web sur laquelle il y aura un iframe avec une vidéo intégrée de YouTube conduit à un appel à la caméra (et même à une sorte de négociation avec l'appareil) est encore assez triste dans le contexte de la confidentialité et, il me semble, ça vaut quand même la discussion de la communauté.


Qu'en penses-tu?


PS En anglais, cet article a été publié sur Medium .


UPD : merci aux habrachians berez et ksil pour un paquet de corrections d'orthographe (sinon, quand vous lisez et réécrivez différents morceaux de texte, comme d'habitude, "corriger quelques bugs, en apporter plein d'autres")

Source: https://habr.com/ru/post/fr480056/


All Articles