- Des documents publics issus du recours collectif antitrust contre Meta, ainsi que la rétro-ingénierie d’une APK Android Onavo Protect archivée, révèlent une architecture par laquelle Facebook pouvait déchiffrer en attaque de l’homme du milieu le trafic HTTPS d’apps concurrentes
- Le point clé consistait à faire installer sur l’appareil un certificat d’autorité de certification Facebook Research, puis à acheminer le trafic du VPN Onavo vers le
ssl bumpdu proxy transparent Squid sur l’infrastructure de Facebook - Onavo Protect a été installé plus de 10 millions de fois sur Android, et la version diffusée en 2016 incluait un certificat CA dans les ressources de l’app, dont l’un était valide jusqu’en 2027
- Après Android 7, la confiance accordée aux CA ajoutées par l’utilisateur et le flux d’installation des certificats ont été restreints, ce qui a réduit l’efficacité du procédé, mais
sc-analytics.appspot.comde Snapchat a été identifié à l’époque comme un cas où une attaque MITM était possible faute de certificate pinning - Après le renforcement de la sécurité d’Android et la généralisation du pinning, Facebook a même envisagé l’usage de l’Accessibility API, tandis que la configuration des permissions d’Onavo laissait aussi entrevoir un accès à des informations sensibles comme l’IMSI
L’architecture d’Onavo confirmée par des documents publics et la rétro-ingénierie de l’APK
- Les documents publics du recours collectif en cours contre Meta contiennent des éléments laissant penser que Facebook a pu enfreindre le Wiretap Act
- Selon l’explication d’un utilisateur de HN, l’affaire en elle-même n’est pas un procès pour écoute illégale mais un dossier antitrust portant sur une violation du Sherman Act, les avocats des plaignants ayant découvert de manière fortuite, lors de la procédure de production de preuves, des éléments liés au Wiretap Act
- L’analyse repose sur des documents judiciaires publics et sur la rétro-ingénierie d’un package d’application Android Onavo Protect archivé
- Les informations rendues publiques sont limitées et partielles, de sorte que certains faits peuvent être inexacts ou incomplets
- On ignore encore si le trafic de tous les utilisateurs de l’app a été intercepté ou seulement celui d’une partie d’entre eux
Comment ssl bump servait à déchiffrer certains trafics HTTPS
- Facebook appelait cette technique
ssl bump, un nom dérivé de la fonction de proxy transparent du proxy de cache Squid - Le fonctionnement était proche de la chaîne suivante
- installation sur l’appareil d’un certificat de confiance émis par Facebook Research
- envoi du trafic de l’appareil vers une infrastructure contrôlée par Facebook via le VPN Onavo
- redirection du trafic vers un proxy transparent Squid
- déchiffrement du trafic TLS de domaines ciblés via la configuration
ssl bump
- Dans les documents judiciaires, les domaines d’intérêt semblent liés à Snapchat, Amazon et YouTube
- Avec la seule app Onavo archivée, il est difficile de vérifier si le trafic d’autres utilisateurs a réellement été intercepté ou s’il n’a fait que transiter par un proxy
Permissions et capacités de collecte de l’app Onavo Protect
- L’app Android Onavo Protect a été installée plus de 10 millions de fois et contenait du code incitant l’utilisateur à installer un certificat CA dans le magasin de certificats de confiance utilisateur de l’appareil
- L’app demandait plusieurs permissions au nom de la “protection” et de l’affichage de l’usage des données
Display over other appsAccess past and deleted app usage
- Le manifeste Android incluait
android.permission.PACKAGE_USAGE_STATS, ce qui permettait de collecter des statistiques d’usage d’autres apps ainsi que leur consommation réseau - Le schéma de base de données locale semble avoir stocké des données relativement agrégées comme les statistiques d’usage des apps et leur volume de trafic réseau
- Des e-mails cités dans les documents publics mentionnent le besoin de “reliable analytics” sur Snapchat et l’idée d’un “kit pour iOS et Android interceptant le trafic de sous-domaines spécifiques”
Installation du certificat CA et évolution de la sécurité Android
- L’app Onavo incluait une fonction appelant
KeyChain.createInstallIntent()pour installer le certificat, avec une fenêtre d’installation affichant le nom Facebook Research à l’utilisateur KeyChain.createInstallIntent()ne fonctionne plus de la même manière depuis Android 7 Nougat- Les politiques de sécurité d’Android ont ensuite fortement évolué
- les apps ciblant Android 6.0 API level 23 ou inférieur font par défaut confiance au magasin de CA ajouté par l’utilisateur
- à partir d’Android 7, les apps ne font plus confiance par défaut aux CA ajoutées par l’utilisateur, sauf configuration de sécurité spécifique
- sous Android 7, il n’est plus possible d’installer un certificat dans le magasin système sans root
- Android 11 a complètement bloqué le mécanisme par lequel une app pouvait pousser l’utilisateur à installer un certificat, et plus aucune app ne fait par défaut confiance aux certificats du magasin utilisateur
- La méthode possible entre 2016 et 2019 est aujourd’hui difficile à reproduire telle quelle dans l’environnement Android actuel
Les certificats Facebook Research inclus dans l’app
- Une version de l’APK Onavo de septembre 2017 contenait
old_ca.ceretnew_ca.cerdans le dossierassets - Le code associé apparaît dans la classe
ResearchCertificateManager - La différence entre les deux certificats tient à leur durée de validité
- le premier certificat était valide à partir du 8 septembre 2016 pour une durée d’un an
- le second est valide du 8 juin 2017 au 8 juin 2027
- Les documents judiciaires contiennent une mention indiquant que le certificat utilisé pour SSL bump est “généré sur le serveur puis envoyé à l’appareil”
- Dans les apps récupérées, aucune fonction concrète d’ajout d’un certificat depuis le serveur après 2017 n’a encore été confirmée, ce qui demande des recherches supplémentaires
Domaine d’analyse Snapchat et certificate pinning
- Si une app avait appliqué le certificate pinning de façon complète, cette méthode MITM n’aurait pas fonctionné
- Parmi les pièces versées au dossier public figure le domaine lié à Snapchat
sc-analytics.appspot.com - La décompilation d’anciennes versions de Snapchat montre que le trafic vers ce domaine d’analyse n’était pas protégé par certificate pinning
- Facebook avait conscience que le renforcement de la sécurité d’Android et la diffusion du pinning réduisaient la viabilité à long terme de
ssl bump
Examen de l’Accessibility API et accès à des données sensibles
- À mesure que la sécurité d’Android se renforçait et que le certificate pinning se généralisait, Facebook a étudié l’usage de l’Accessibility API comme solution alternative
- Google indique qu’une app ne peut se déclarer comme outil d’accessibilité que si elle aide des personnes en situation de handicap à utiliser leur appareil ou à surmonter des difficultés liées à un handicap
- Le détournement des fonctions d’accessibilité sur Android est généralement associé à des apps malveillantes comme certains banking malware
- L’app Onavo incluait dans son manifeste la permission
READ_PHONE_STATE, qui permettait à l’époque d’obtenir des informations sensibles comme l’IMSI de l’abonné - La possibilité d’accéder à l’IMSI montre qu’il faut aussi vérifier plus avant les autres données qu’Onavo a pu collecter
Les précédentes polémiques Onavo et la différence avec cette analyse
- Les informations sur cette pratique MITM relèvent d’un sujet distinct de la polémique connue en 2019 autour de Facebook Project Atlas et d’Onavo
- En 2019, l’app Onavo a été retirée de l’App Store après une enquête révélant que Facebook rémunérait des adolescents pour utiliser l’app afin de collecter des données sur leurs habitudes d’usage
- En 2023, deux filiales de Facebook ont été condamnées par la Cour fédérale australienne à une amende totale de 20 millions de dollars australiens pour des pratiques trompeuses susceptibles d’enfreindre le droit australien de la consommation
- Cette analyse met l’accent sur le fait que, même après le retrait de l’app, les APK archivées ont permis de confirmer la mise en œuvre technique de l’époque
1 commentaires
Avis sur Hacker News
Pour résumer ce qui est précisément mis en cause, il y a un détail que plusieurs articles semblent avoir omis : à mon avis, FB a payé des utilisateurs de SC pour participer à une étude de marché et leur a fait installer un proxy
La plupart des articles donnent l’impression d’un piratage, mais en réalité ça ne semble pas être le cas. J’aimerais en savoir plus sur ce qu’on a dit aux participants concernant ce pour quoi ils étaient payés, mais il paraît peu probable qu’ils aient ignoré que leurs actions étaient surveillées
Si l’une des parties à la communication casse le chiffrement avec un outil fourni par un tiers, l’argument selon lequel il s’agit d’une écoute paraît un peu faible. Je ne suis pas juriste, mais si c’est de l’écoute, est-ce que le fait que je déchiffre et analyse le trafic API d’un service avec un proxy SSL local en est aussi ?
J’espère qu’ils ont été honnêtes sur ce qu’ils collectaient. L’article ne montrait pas à quoi ressemblait l’écran de consentement avant l’installation du proxy
Cette affaire avait entraîné le retrait de l’app Onavo des app stores et une amende
Séparément, Facebook avait un programme dans lequel il payait des adolescents pour installer Facebook Research VPN via le canal de distribution enterprise, contournant ainsi l’App Store et ses règles, et cette version payante était plus intrusive
Donc cette affaire Onavo est absolument indéfendable
https://apkpure.com/onavo-protect-from-facebook/com.onavo.sp...
https://techcrunch.com/2019/01/29/facebook-project-atlas/?re...
Le billet de blog distingue aussi la controverse précédente — en 2023, la Cour fédérale australienne a ordonné à deux filiales de Facebook de payer au total 20 millions de dollars pour des comportements potentiellement trompeurs enfreignant le droit australien de la consommation — de cette accusation d’écoute
Quant à « est-ce que déchiffrer et analyser mon trafic avec mon proxy SSL local est aussi de l’écoute », si vous regardez votre propre trafic sur votre propre réseau ou équipement, évidemment que non
Certains e-mails sont impressionnants à plusieurs égards, surtout parce qu’ils montrent à quel point les gens de FB étaient stupides ou arrogants. Parler ouvertement de MITM, et laisser par écrit qu’ils avaient aussi fait intégrer ce kit dans les produits de plusieurs autres entreprises, c’est vraiment idiot
Un simple « Zuck, j’ai des idées sur ce que vous proposez, discutons-en en personne » aurait déjà été suspect, mais au moins ce ne serait pas une preuve de culpabilité. On dirait des gens qui n’ont jamais vu de film ni lu un seul article sur d’autres entreprises qui se sont fait prendre
Le vrai problème, c’est l’absence totale d’éthique. On a l’impression que, dans ce genre d’endroit, considérer l’éthique comme un obstacle vous vaudrait d’être moqué en salle de réunion ou licencié. La culture d’entreprise semble avant tout courir après le profit, et c’est particulièrement mauvais dans le logiciel, où trop de gens ne réfléchissent pas du tout aux implications éthiques de leurs actes
Et je n’ai même pas mentionné Instagram
Au fond, ils paient tellement bien et emploient tellement de gens du secteur que les critiques diminuent. Nous avons tous un ami qui a travaillé chez Meta, ou nous y avons peut-être postulé au moins une fois. À l’inverse, peu de gens autour de nous sont passés par une entreprise comme Anduril
Sans vouloir minimiser, ce n’est quand même pas si courant, puisqu’il fallait au moins que l’utilisateur télécharge l’app Onavo.
Ce à quoi je pense plus souvent, ce sont les deux types de webviews non obsolètes utilisables sur iOS : WKWebView et SFSafariViewController. Leurs usages prévus sont très différents.
Quand on appuie sur un lien dans l’app Facebook, elle devrait utiliser SFSafariViewController. Le code de l’app ne peut pas en voir l’intérieur, c’est privé, cela partage les cookies avec Safari, et c’est littéralement conçu pour « charger du contenu web externe dans le contexte de cette app ».
Pourtant, FB utilise encore WKWebView. Avec ça, on peut injecter du JS arbitraire dans la page voulue et tout suivre : navigation, ressources chargées, etc. Au vu de cet article et d’autres révélations, j’ai peur d’imaginer ce que FB fait avec cette fonctionnalité. Il est très possible qu’ils suivent jusqu’au pixel sur lequel l’utilisateur appuie sur des sites externes. Penser qu’ils pourraient aussi suivre tous les noms d’utilisateur et mots de passe saisis dans une webview intégrée peut sembler délirant, mais techniquement c’est possible. Et peut-on vraiment croire qu’ils ne le feraient pas ?
https://x.com/jameshartig/status/1534886418266431488
Ce qu’on ignore encore, c’est dans quel pourcentage de ces installations le trafic des concurrents de FB a été intercepté par MITM.
https://www.androidrank.org/application/onavo_protect_from_f...
Je ne sais pas pourquoi, mais Facebook est la seule entreprise tech que je n’arrive vraiment pas à voir positivement. Google, Microsoft, Apple, Nvidia, AMD, Intel, etc. ont chacune des aspects que j’aime et que je n’aime pas, mais Facebook, je ne l’aime tout simplement pas.
J’ai fermé mon compte Facebook il y a environ 10 ou 11 ans et mis en place un filtre pour retirer Facebook des résultats de recherche, et ça fonctionne. Je vois aussi très peu de contenus liés à Facebook dans mon fil Google News. En revanche, j’utilise encore WhatsApp, parce que c’est la plus grosse app de messagerie en Asie hors de Chine.
Ils sont aussi irresponsables quant à l’effet de leurs algorithmes, qui amplifient les discours haineux. Les autres entreprises n’ont pas de problème de cette ampleur.
Leur marketing est également malhonnête. Dans presque toutes les publicités et présentations de fonctionnalités de Quest, ils utilisent des visualisations conceptuelles pour tromper sur ce qui est possible. Mark aussi recourt souvent à la novlangue quand il traite les problèmes. La novlangue n’est pas propre à Meta, mais par rapport aux autres entreprises citées, ils poussent la publicité trompeuse à la limite.
Dans le cycle actuel de l’IA, la popularité de Meta remonte grâce à ses modèles à poids ouverts, mais pas open source, et Mark essaie aussi de réinventer son image avec une récente offensive de communication.
Malgré tout, parmi les entreprises listées, Meta est culturellement la seule dont le travail ne semble pas avoir de noyau moral. La culture vient d’en haut, et Zuckerberg et Thiel ont insufflé à la façon dont Meta fonctionne une culture où « seul le succès compte ».
Les autres entreprises sont clairement capitalistes elles aussi, mais elles ont tout de même un certain sens de la responsabilité vis-à-vis de ce qu’elles produisent.
Si je renforce d’abord l’adversaire, m’y opposer publiquement n’a aucun effet.
La formulation « Dans l’actuel recours collectif contre Meta, des documents judiciaires affirment que l’entreprise a violé le Wiretap Act » est inexacte.
Ce n’est pas un procès pour écoutes illégales. Toutes les demandes portent sur des violations du Sherman Act, donc sur l’antitrust. Les avocats des plaignants ont simplement trouvé, par hasard lors de la phase de discovery, des éléments laissant penser que Facebook a peut-être violé le Wiretap Act. Il n’y a pas de demande liée aux écoutes ; c’est une affaire d’antitrust.
Je me demande, et je suis perplexe : est-ce que le DMCA n’est pas assez fort pour une affaire de cette ampleur, est-ce un problème de qualité pour agir ou de préjudice démontrable, ou bien les plaignants ont-ils simplement oublié ?
Un membre de ma famille a failli s’inscrire autrefois à une étude de marché essentiellement similaire. Tout le trafic Internet de son téléphone aurait été détourné vers un VPN et un proxy contrôlés par la société d’études de marché, avec installation d’un certificat en plus.
Il aurait reçu une petite rémunération, et il aurait accepté l’installation. Je ne me souviens pas que l’entreprise ait précisément menti sur quoi que ce soit.
Cela dit, même si je ne suis généralement pas très favorable aux politiques excessivement paternalistes, je me demande à quel point le consentement d’une personne ayant relativement peu de connaissances techniques est significatif dans ce genre de situation. Ce n’était pas trompeur, mais ils n’expliquaient pas non plus de façon très parlante à quelqu’un qui ne comprend pas ce qui se passe.
En lisant ça, j’ai l’impression que Facebook a désormais un département qui ressemble tout simplement à une organisation de façade de la NSA
https://qz.com/1145669/googles-true-origin-partly-lies-in-ci...
Aujourd’hui, les voitures sortent avec les services Google et Android intégrés dans le système d’infodivertissement, sans moyen de les retirer. Qu’est-ce qui pourrait mal tourner quand une régie publicitaire voit partout où vous allez et qui monte dans votre voiture ?
Ooooh, SSLbump
Il doit bien exister une jurisprudence considérant comme criminel le fait de sniffer le trafic réseau côté client
Ça devait être l’une des nombreuses affaires liées à l’interception d’informations bancaires
C’est précisément pour ça qu’il faut du TLS mutuel, où le serveur et le client échangent tous deux des certificats avant d’envoyer des informations nuisibles sur Internet. Mais dans la réalité, nooooon
Malheureusement, ce n’est pas surprenant. Un acteur malveillant comme Meta a très probablement déjà intégré de nombreux dark patterns
Par exemple, on peut imaginer un risque de sécurité lié à l’exfiltration de données de capteurs, où des données de capteurs comme l’accéléromètre et le gyroscope seraient surveillées pour déduire des informations audio. En relayant discrètement les données collectées vers l’extérieur et en les traitant, il serait possible de reconstruire des informations sensibles sans accéder directement au micro de l’appareil
Ça ne m’étonnerait pas qu’ils parviennent à faire ce genre de choses
Meta et d’autres entreprises nocives, ainsi que des organismes gouvernementaux, utilisent probablement dans le monde réel des techniques d’écoute bien plus nombreuses, pires et plus simples