2 points par GN⁺ 2024-07-29 | 1 commentaires | Partager sur WhatsApp
  • 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 bump du 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.com de 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 apps
    • Access 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.cer et new_ca.cer dans le dossier assets
  • 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

 
GN⁺ 2024-07-29
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 ?

    • Nielsen fait quelque chose de similaire avec la télévision. Ils installent des boîtiers de capture dans les foyers de leur panel pour savoir ce qu’ils regardent : https://www.nytimes.com/athletic/3194414/2022/03/22/the-ulti...
      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
    • D’après l’article, il s’agit d’une nouvelle affaire, différente de celle couverte par TechCrunch, où Facebook payait des adolescents pour collecter des données sur leurs habitudes d’utilisation
      Cette affaire avait entraîné le retrait de l’app Onavo des app stores et une amende
    • Sur le fait que « cela ressemble à du piratage mais ne semble pas en être », les meilleurs piratages, et les plus efficaces, consistent généralement à faire télécharger à quelqu’un quelque chose qu’il ne devrait pas recevoir afin de contourner la sécurité
    • L’article n’a pas omis quelque chose, il mélange des affaires différentes. Celui-ci concerne Onavo Protect, « Free VPN + Data Manager », qui ne payait pas les utilisateurs
      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...
    • La partie disant que « FB a payé des utilisateurs de SC pour participer à une étude de marché et leur a fait installer un proxy » semble confondue avec une affaire précédente. Cette app était accessible à tout le monde sur Google Play et l’Apple App Store
      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

    • Je garde en tête ce conseil : chaque fois que vous envoyez quelque chose par écrit, imaginez ce que vous ressentiriez si vous deviez répéter la même chose au tribunal ou si ce message se retrouvait dans la presse. Je n’ai jamais écrit quelque chose d’aussi grave, mais ça aide quand même
    • Est-ce qu’on préférerait qu’ils soient plus intelligents et capables de dissimuler les traces de leurs actes malveillants ?
      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
    • Les patrons milliardaires sont entourés d’opportunistes et de flatteurs. Avec le temps, comme une immense zone de déchets, ce groupe devient ingérable, et quiconque se comporte un tant soit peu normalement est traité comme une menace ontologique pour leurs fantasmes, leur domination, leurs manipulations, leur luxe et leurs loisirs, puis écarté
    • Tout ce qu’il faut savoir sur Meta, c’est sa contribution au génocide au Myanmar. La tragédie, c’est que travailler dans une entreprise liée à la défense suscite souvent le mépris, alors que travailler chez Meta est généralement perçu comme neutre. Pourtant, l’impact négatif de la seconde pourrait être largement supérieur à celui de la première
      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
    • Si l’une de ces personnes cherche un nouveau poste, votre entreprise fera aussi la queue pour l’intégrer à sa boucle d’entretiens
  • 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 ?

    • Ils injectent effectivement du JS. Il y avait autrefois un problème qui cassait certains appels JS dans l’autoremplissage des paiements.
      https://x.com/jameshartig/status/1534886418266431488
    • Je ne savais pas que WKWebView donnait autant de pouvoir à une app. Y a-t-il un moyen de savoir, quand un utilisateur ouvre une page web, si c’est WKWebView ou SFSafariViewController ? Je n’utilise pas FB, mais j’utilise les webviews d’autres apps, et j’aimerais qu’elles ne puissent pas faire ce genre de choses.
    • À propos du fait que ce ne serait pas courant parce qu’il fallait télécharger l’app Onavo, d’après AndroidRank il y a eu 10 millions d’installations sur Android.
      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...
    • Voir cet article : https://krausefx.com/blog/ios-privacy-instagram-and-facebook...
    • Je n’ai pas Instagram et j’utilise Facebook ; quand des gens m’envoient des liens vers des vidéos Instagram via Messenger, je ne peux pratiquement pas les regarder dans l’app sans me connecter — donc, en fait, sans créer un compte. Il faut absolument que je les ouvre à l’extérieur dans Safari pour les voir.
  • 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.

    • La raison est probablement un mélange de plusieurs choses. Ils ont une longue histoire d’affaiblissement de la vie privée pour accroître leurs profits, depuis des affaires comme celle-ci jusqu’aux pixels de suivi, aux soi-disant comptes fantômes, et à leur opposition à tout ce qui gêne le pistage. Parmi les entreprises citées, seule Google recoupe un peu cela, mais pas à ce point.
      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.
    • Continuer à utiliser WhatsApp contribue au monopole de Meta. Le monopole de WhatsApp grandit, et ils ont même commencé à copier ouvertement leur concurrent Telegram.
      Si je renforce d’abord l’adversaire, m’y opposer publiquement n’a aucun effet.
    • L’entreprise s’appelle désormais Meta, donc c’est peut-être aussi pour cela que tu vois moins d’actualités sur Facebook.
  • 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.

    • Cela ne viole-t-il pas aussi le DMCA ? Puisqu’il s’agit de contourner un système chiffré.
      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.

    • Le fait que certaines sociétés d’études de marché fournissent une information suffisante ne signifie absolument pas qu’Onavo l’ait fait. Onavo ne se présentait pas aux utilisateurs comme une « société d’études de marché » ; elle ressemblait à une app pratique gratuite permettant de classer l’utilisation des données Internet.
  • 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

    • Les gens semblent oublier que les recherches qui ont donné Google ont, au départ, aussi été financées par la NSA et la CIA
      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 ?
    • Lors des fuites Prism, presque toutes les grandes entreprises tech ont coopéré
    • Ou alors c’est peut-être une organisation de façade de l’unité 8200. Après tout, on parle de Facebook Israel
  • 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

    • Le Computer Fraud and Abuse Act ne couvre-t-il pas ça ?
  • 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

    • En quoi le TLS mutuel aurait-il aidé ici ?
    • On peut faire du certificate pinning
  • 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