Les utilisateurs de macOS Big Sur pistés par Apple ? Ce n’est pas aussi simple…

Les utilisateurs de macOS Big Sur pistés par Apple ? Ce n’est pas aussi simple…

Rendez-vous chez le notaire

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

17/11/2020 12 minutes
18

Les utilisateurs de macOS Big Sur pistés par Apple ? Ce n’est pas aussi simple…

Ces derniers jours, Apple a fait face à une tempête qui s’est rapidement levée dans le sillage de l’arrivée de Big Sur. Des applications ne se lançaient plus et, pire, la société était accusée d’enregistrer leur fréquence d’utilisation et l’IP des utilisateurs. Entre bourdes et « conspirations », la société a clarifié la situation.

L’arrivée du dernier macOS n’a pas été de tout repos. D’une part, le système est arrivé plus tard que les années précédentes. Apple n'a communiqué la date finale que durant l’évènement de la semaine dernière (notre compte rendu), consacré à sa puce M1 et aux trois modèles de Mac l’embarquant (et qui sont disponibles dès aujourd’hui).

Le lancement très chaotique de Big Sur

D’autre part, la disponibilité du système a rapidement saturé les serveurs de l’entreprise. Même si Big Sur n’est pas encore envoyé automatiquement aux Mac compatibles (tous les modèles commercialisés à partir de 2013), l’attente générée – Apple ne remanie pas intégralement son interface tous les quatre matins – a provoqué un raz-de-marée de demandes sur le Mac App Store, qui distribue depuis des années les nouvelles versions de macOS.

Résultat, les taux de transferts se sont rapidement effondrés, aboutissant soit à de très longs temps de récupération (le système pèse pas moins de 12 Go), soit à un plantage de la procédure. Étonnant, Apple a lancé au cours de la même soirée la première bêta d’iOS 14.3, avant de se rendre compte que c’était une très mauvaise idée. La préversion a été retirée des serveurs moins d’une heure après.

Seulement voilà, la saturation des serveurs n’a pas uniquement concerné le téléchargement du système. De nombreux utilisateurs, après installation de Big Sur, ont été surpris de constater que leurs applications pouvaient ne plus se lancer. Pire, la société était accusée d’épier ses utilisateurs.

Gatekeeper et la notarisation au cœur de toutes les attentions

Avant d’évoquer en détail ce problème, revenons sur ce qu’est un service de notarisation. Mécanisme non spécifique à la société, il permet « la vérification et l'archivage des preuves d'échanges et d'archivage électroniques par un tiers de confiance agréé », pour reprendre la description donnée par Wikipedia.

Ce tiers de confiance agit littéralement comme un notaire. À une différence près : si en France l’activité notariée est régie par le droit et est donc strictement encadrée, on parle ici d’une structure numérique privée, ce qui implique une confiance a posteriori. Il s’agit certes d’une question de réputation, mais aussi – et avant tout – de vérification. La confiance se mérite et, dans le cas d’Apple, un martèlement marketing sur le respect de la vie privée ne suffit pas.

Le notarisation a été mise en place par Apple en 2018 pour compléter Gatekeeper. Dans les grandes lignes, elle permet de prouver qu’une application est bien ce qu’elle prétend être et d’en garder une trace. Le service fonctionne selon un système asymétrique classique : une clé privée pour le développeur et une clé publique pour l’utilisateur. Quand l’application démarre (un point capital sur lequel nous reviendrons), la clé publique est utilisée pour en vérifier l’authenticité.

Le certificat est dans tous les cas obligatoire pour distribuer une application sur le Mac App Store, mais le réglage par défaut de macOS depuis plusieurs années aboutit de toute façon au même résultat si l’application vient de l’extérieur : si le certificat est absent ou révoqué, l’application ne peut plus s’exécuter. Réglage que l’on peut changer dans les paramètres de sécurité du système, qui se fera une joie de vous alerter sur les dangers d’un tel mode.

Mac Big Sur

Données personnelles et HTTP ne font pas bon ménage

OCSP (Online Certificate Status Protocol) est le protocole servant chez Apple à contrôler l’intégrité des applications, plus précisément de leur certificat X.509. La firme n’a rien inventé, le protocole existant depuis longtemps. Il est standardisé par l’IETF dans la RFC 6960 et a été créé pour résoudre certains problèmes inhérents aux listes de révocation des certificats. Notamment, le client n’a plus à récupérer de liste : il communique uniquement avec le serveur OCSP, qui lui répond alors que le certificat est valide ou non.

D’où est née la tempête ? D’un billet de blog du chercheur en sécurité Jeffrey Paul, daté du 12 novembre. Intitulé « Votre ordinateur n’est plus le vôtre », il décrivait comment Apple transformait petit à petit les Mac en nouvelles variantes de l’iPhone, augmentant son contrôle via des mécanismes comme Gatekeeper.

Plus précisément, Gatekeeper et OCSP permettraient à l’entreprise de savoir qui lance quoi, quand et à quelle fréquence. Apple tiendrait en effet un journal contenant les adresses IP des utilisateurs, l’empreinte des applications, celle du certificat, ainsi que l’heure et la date de la demande. De quoi bâtir un vaste tableau des habitudes des utilisateurs ? Inquiétant, d’autant plus que la communication vers les serveurs de la société se fait en HTTP, donc sans aucune sécurité.

L’article a fait sensation. En trois jours, la question était devenue prégnante : Apple épie-t-elle les habitudes de ses usagers ? On trouvait cette thématique notamment chez Framasoft et Tristan Nitot, qui évoquaient un avenir sombre pour l’informatique d’Apple, préfigurant ce que seraient les Mac de demain. Tristant Nitot a depuis nuancé son propos, pas Framasoft. Après tout, Big Sur est en cours de déploiement sur les Mac des sept dernières années et sera livré avec les premiers Mac M1, dont les livraisons ont commencé.

La vérité est plus nuancée.

Que s’est-il passé ?

Ce qui a attiré l’attention en premier lieu, c’est le plantage de l’infrastructure d’Apple gérant ces requêtes de vérification. Au moment même où Big Sur était lancé sur le Mac App Store, une erreur de configuration (a priori) laissait les applications en plan.

Pourquoi ? Parce que si Apple a prévu un mécanisme permettant aux applications de se lancer quand il n’y a pas de connexion internet (encore heureux), rien n’a été prévu pour le cas où il y a connexion, mais un problème avec les serveurs eux-mêmes. Les requêtes envoyées ne recevaient pas de réponse, et les applications, après avoir bondi pendant un temps dans le Dock, finissaient par signaler qu’elles avaient rencontré une erreur.

Apple OCSP Gatekeeper

Une application notariée par Apple à son premier lancement

Tout était rentré dans l’ordre en moins d’une heure, mais ce laps de temps a été suffisant pour que beaucoup se posent des questions, à juste titre.

L’article de Jeffrey Paul n’a pas non plus tardé à être confronté à d’autres informations, notamment celles soulevées par un autre chercheur, Jacopo Jannone. Selon sa propre analyse, commandes et captures d’écran à l’appui, il brosse un portrait autrement plus nuancé.

Deux découvertes principalement. D’une part, l’empreinte de l’application n’est pas envoyée à chacun de ses démarrages. C’est bien le hash du certificat du développeur qui est transmis pour comparaison avec les informations que possède Apple sur l’application.

D’autre part, et c’est le plus important, cette empreinte ne peut pas identifier une application à coup sûr. Pourquoi ? Parce qu’un même certificat peut être utilisé pour plusieurs logiciels. Jannone a fait le test avec Firefox et Thunderbird : Mozilla utilise bien le même certificat pour les deux.

Il confirme en revanche que certaines informations sont bien envoyées : l’adresse IP, ainsi que l’heure et la date de la demande. Mais contrairement à ce qu’affirme Jeffrey Paul, Apple n’est pas en mesure de savoir quelle personne spécifiquement a lancé une application, du moins si l'on se base sur la seule analyse des requêtes. Si par exemple vous vous trouvez chez un ami et que vous lancez une application, l’adresse IP sera celle de son domicile et aucune de ces informations ne permettra de vous identifier.

Si l’on en croit l’analyse de Jannone, les requêtes ne contiennent aucune information permettant d’identifier à coup sûr une machine ou un utilisateur, comme une adresse Mac ou le compte Apple.

Cela étant, il y a quand même plusieurs problèmes.

Apple réagit et promet des améliorations

La communication de l’entreprise étant largement axée sur la sécurité et le respect de la vie privée, elle ne pouvait pas se permettre de rester silencieuse.

Apple a confirmé que l’adresse IP était bien collectée durant les échanges de données. Le mécanisme a donc été modifié en conséquence. L'entreprise promet que l’adresse n’est plus enregistrée et que toutes celles déjà présentes dans les journaux de connexion vont être supprimées.

En outre, plusieurs éléments vont être améliorés dans l’année qui vient. Premièrement, une version chiffrée du protocole sera mise en place afin de protéger les échanges. Car si OCSP n’impose pas le chiffrement des communications, on aurait apprécié qu’Apple soit proactive dans ce domaine. Deuxièmement, des « protections fortes » seront mises en place pour empêcher le plantage des serveurs. Gatekeeper a pris en effet des airs de SPOF (single point of failure, ou point unique de défaillance).

Enfin, et surtout, un paramètre sera intégré dans les Réglages de macOS afin de pouvoir couper ces mécanismes de protection. Toutes ces annonces sont présentes dans une version modifiée de la fiche technique liée à Gatekeeper, dans la section « Privacy protections » en bas de page. La version française n’a pas encore été mise à jour.

Apple OCSP Gatekeeper

Dans l’ensemble, la situation reste problématique, car il est possible de savoir par exemple qu’à une heure donnée, Tor Browser a été lancé depuis une adresse IP spécifique, même si celle-ci est ensuite effacée. Le fait que ces informations circulent en clair rend la pratique bien peu vertueuse. D’autant que sans le plantage des serveurs OCSP, le loup n’aurait peut-être pas été soulevé avant un bon moment.

De plus, les promesses d’Apple seront à vérifier. Difficile en l’état de confirmer que les adresses IP ont bien été effacées, puisque personne en-dehors de l’entreprise ne peut contrôler ses journaux. Il sera cependant possible de contrôler si d’ici un an les communications passent bien par HTTPS et si le contrôle annoncé est bien implémenté dans macOS, et de quelle manière. Il faudra alors jauger ce qu’une telle désactivation coûtera potentiellement en matière de sécurité.

En clair, tout cela ressemble davantage à une bourde d’Apple qu’à un réel complot visant à surveiller les utilisateurs. La firme n’en ressort pour autant pas grandie : données identifiantes collectées et journalisées, serveurs qui flanchent, connexions non chiffrées… Une chose est sûre : le lancement de Big Sur aura marqué.

La primauté du choix

En filigrane derrière ces incidents, on trouve une problématique loin d’être nouvelle : le positionnement du curseur entre sécurité et liberté.

Le chemin choisi par Apple consiste à baliser le chemin pour le quidam. Aujourd’hui, une application ne peut plus se lancer si elle n’a pas au minimum un certificat authentique et valide intégré par le développeur. Le service de notarisation ajoute une couche supplémentaire, en pouvant pointer si le code a été modifié, ce qui peut indiquer la présence d’un malware.

Aucune de ces protections n’est parfaite, pas plus que celles pouvant protéger d’autres sources d’applications, quel que soit le système d’exploitation. Les logiciels seraient-ils plus sûrs si chacun les compilait soi-même ? Pas nécessairement.

Le fait que des entreprises signent et cosignent des applications est, dans l’absolu, une marque de sécurité. Les mécanismes entourant ces pratiques permettent d’éliminer en partie des contraintes pour les clients. C’est tout au bénéfice desdites structures : un climat de confiance favorise notamment les achats dématérialisés.

Pour notre part, nous ferons deux observations. Premièrement, la vigilance reste primordiale, car en se plaçant comme garantes de l’intégrité et de l’authenticité des applications qu’elles délivrent, les plateformes promettent un espace sécurisé. Ce fut souvent le cas de Google notamment face à certaines menaces sur Android : lumières braquées sur le Play Store et ses protections. Mais l’histoire a montré que même Google ne pouvait pas empêcher les malwares d’entrer dans le circuit. Idem chez Apple. La vérification reste donc de rigueur.

Deuxièmement, l’utilisateur devrait toujours avoir le choix, quel que soit le positionnement du curseur choisi par l’entreprise. Les ordinateurs diffèrent des téléphones et tablettes par leur capacité à pouvoir exécuter n’importe quoi, n’importe quand. Si Apple décide de renforcer certains aspects de la sécurité de macOS, le client doit pouvoir s’en débarrasser si cette barrière nuit à son quotidien. Comme d’autres mesures avant, il devra alors être pleinement informé des risques.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Le lancement très chaotique de Big Sur

Gatekeeper et la notarisation au cœur de toutes les attentions

Données personnelles et HTTP ne font pas bon ménage

Que s’est-il passé ?

Apple réagit et promet des améliorations

La primauté du choix

Le brief de ce matin n'est pas encore là

Partez acheter vos croissants
Et faites chauffer votre bouilloire,
Le brief arrive dans un instant,
Tout frais du matin, gardez espoir.

Fermer

Commentaires (18)


Pas glorieux quand même, et c’est sans compter le nouveau lièvre levé hier, certaines apps apple sur cette version de l’os, passent a outre les firewall et vpn, surement un bug, le problème c’est que le bug a déjà été report sur la version beta et n’a pas été corrigé sur la version release, “it’s not a bug, it’s a feature”.



(quote:1837599:UtopY-Xte)
Pas glorieux quand même, et c’est sans compter le nouveau lièvre levé hier, certaines apps apple sur cette version de l’os, passent a outre les firewall et vpn, surement un bug, le problème c’est que le bug a déjà été report sur la version beta et n’a pas été corrigé sur la version release, “it’s not a bug, it’s a feature”.




C’est connu depuis un bout de temps, le trafic réseau système/user est séparé, et de plus les extensions chargées via le DriverKit obligatoire (ex: Wireguard) routent uniquement ce qui est dans l’userspace depuis Big Sur (ce qui peut poser un souci..). Voir: https://openradar.appspot.com/FB8808172


C’est ce que je dis, c’était deja report dans la beta, mais a la release le 12 novembre, le bug, qui est quand meme un “bug” enorme, n’a pas été corrigé.
Apres pourquoi les sites tech ont commencé a en parler hier, je ne sais pas.



“contourne les firewall et vpn” si tu veux



(reply:1837599:UtopY-Xte)




Comment ça outre les firewall et VPN?


Vérifier un programme à chaque lancement via une connexion à un serveur ? Et le système qui refuse de lancer le programme si le serveur répond “non” ou ne répond pas ?



Super, mais ça serait malheureux que le serveur en question soit en panne. Ou fermé par l’éditeur. Ou sous DDoS. Ou piraté. Ou bloqué. Ou bugué.



Vraiment malheureux -_-”



(quote:1837618:le hollandais volant)
Vérifier un programme à chaque lancement via une connexion à un serveur ? Et le système qui refuse de lancer le programme si le serveur répond “non” ou ne répond pas ?



Super, mais ça serait malheureux que le serveur en question soit en panne. Ou fermé par l’éditeur. Ou sous DDoS. Ou piraté. Ou bloqué. Ou bugué.



Vraiment malheureux -_-”




Bah tu sais, on passe tout en TLS donc aujourd’hui la majorité des sites dépendent de la disponibilité des responders OCSP (ou des CRLs pour les plus petits) des vendeurs de certifs publics. Donc sur le plan du risque, on y est déjà.


On peut aussi tout à fait se dire que comme leur machin est sensé fonctionner hors connexion, c’est que c’est pas si grave de considérer le certificat de l’appli comme valide si l’OCSP ne répond pas.



Et si on accepte ce “risque”, comme je le dit plus haut, on n’est plus à quelques minutes près donc on peut imaginer que la liste des révocations peut être récupérée régulièrement en arrière plan, et pas à l’arrache quand tu lances Powerpoint.


Pour les sites web, il y a tout de même l’OCSP stapling qui existe, qui permet :




  • de réduire la charge sur les serveurs OCSP

  • de continuer à fonctionner pendant une courte période si les serveurs OCSP tombent

  • de ne pas fuiter l’information que tu te connectes à un site web donné vers les serveurs OCSP



(quote:1837618:le hollandais volant)
Vérifier un programme à chaque lancement via une connexion à un serveur ? Et le système qui refuse de lancer le programme si le serveur répond “non” ou ne répond pas ?



Super, mais ça serait malheureux que le serveur en question soit en panne. Ou fermé par l’éditeur. Ou sous DDoS. Ou piraté. Ou bloqué. Ou bugué.



Vraiment malheureux -_-”




C’est plus compliqué que ça : le système est sensé fonctionner hors connexion : la connexion ne sert pas à vérifier que l’appli en elle même est “autorisée” mais que le certificat (délivré par Apple) qui a signé cette application n’a pas été révoqué par Apple.



Autrement dit, sans connexion, le système est toujours valable de savoir si une app est signée par un certificat développeur, lui même signé par Apple. Pas besoin de connexion pour vérifier une signature.



Là où Apple a fait du zèle, c’est de vouloir vérifier la validité du certificat à chaque lancement ou presque. Une politique plus raisonnable aurait peut être été de mettre régulièrement à jour la liste des certificats révoqués en arrière plan : la “sécurité” aurait été la même, mais la machine n’aurait jamais besoin de communiquer les certificats qu’elle possède.



jpaul a dit:


On peut aussi tout à fait se dire que comme leur machin est sensé fonctionner hors connexion, c’est que c’est pas si grave de considérer le certificat de l’appli comme valide si l’OCSP ne répond pas.



Et si on accepte ce “risque”, comme je le dit plus haut, on n’est plus à quelques minutes près donc on peut imaginer que la liste des révocations peut être récupérée régulièrement en arrière plan, et pas à l’arrache quand tu lances Powerpoint.




Le principe même d’OCSP est d’offrir une réponse rapide et actuelle. La bonne vieille CRL est son pendant offline basé sur du cache. Je ne comprends pas vraiment le choix technique d’Apple. Tout ceci est aussi vieux que les PKI… Dans les certificats publics, tu auras quasiment toujours OCSP et CRL pour justement offrir un fallback. Pourquoi Apple ne le fait pas ? Mystère !


Sans rentrer dans les détails techniques : OCSP ou implem maison, ce que je voulais dire, c’est que ça ne sert à rien de complexifier le système au point de devoir mettre une énorme infra capable de répondre instantanément aux millions de mac de la planète en un temps record, si derrière tu peux quand même lancer l’appli quand tu n’es tout simplement pas en ligne. C’est bien qu’il n’y a pas urgence à vérifier la révocation.


Le soucis du serveur ocsp chez Apple, c’était qu’au lieu de répondre une erreur, il faisait partir les requêtes en timeout… car si le serveur est « en panne » il y a un fallback et le système considère le certificat valide.



Et probablement qu’il y a une liste de révocations qui est récupérée régulièrement par trustd (et lors des mises à jour du système, tous les ordinateurs ne sont pas forcément raccordés à internet donc il faut pouvoir bloquer les app dont le certificat a été révoqué entre temps !)



jpaul a dit:


Sans rentrer dans les détails techniques : OCSP ou implem maison, ce que je voulais dire, c’est que ça ne sert à rien de complexifier le système au point de devoir mettre une énorme infra capable de répondre instantanément aux millions de mac de la planète en un temps record, si derrière tu peux quand même lancer l’appli quand tu n’es tout simplement pas en ligne. C’est bien qu’il n’y a pas urgence à vérifier la révocation.




Ce qui me fait penser que ce truc a été implémenter de manière partielle. La question c’est pourquoi ? Pourquoi n’être pas aller jusqu’au bout ?



Je pense que la direction prise par Apple est de faire de MacOS la version PC d’iOS, comme on le dit depuis longtemps. Mais que lors de l’implémentation, certains dev ont vu que ce n’était pas possible.



Cette décision fait que le scénario serveur dispo mais pas de réponse n’a pas été envisagé, preuve d’une tension entre le “tout online tout le temps” et l’ancien monde des gens qui possèdent leur PC sans l’œil de Moscou Apple .


Firefox distribue de manière proactive une CRL agrégeant toutes les CRL de toutes les CA (https://blog.mozilla.org/security/2020/01/21/crlite-part-3-speeding-up-secure-browsing/). Apple pourrait s’en inspirer s’ils le voulaient…


Je me demande quelle est la taille de la CRL complète…



flan_ a dit:


Je me demande quelle est la taille de la CRL complète…




CMB


Encore un truc implémenté à l’arrache par un stagiaire :transpi:


Mais il fait combien de boite ce stagiaire?