Zoom pour Mac corrige le bug get-root – mettez à jour maintenant ! Intelligence des données PlatoBlockchain. Recherche verticale. Aï.

Zoom pour Mac corrige le bogue get-root - mettez à jour maintenant!

Lors du célèbre festin de sécurité DEF CON à Las Vegas, Nevada, la semaine dernière, le chercheur en cybersécurité Mac Patrick Wardle révélé un "get-root" élévation de privilège (EoP) bogue dans Zoom pour Mac :

Dans le tweet, qui a suivi son discours [2022-08-12], Wardle a noté :

Actuellement, il n'y a pas de patch [:FRIED-EGG EYES DEPICTING ALARM EMOJI:] [:EDVARD MUNCH SCREAM EMOJI:]

Zoom a immédiatement travaillé sur un correctif pour la faille, qui a été annoncé le lendemain en Bulletin de sécurité Zoom ZSB-22018, gagnant des félicitations répondre de Wardle dans le processus :

Mahalos à @Zoom pour la solution (incroyablement) rapide ! [:LES DEUX MAINS LEVÉES EN CÉLÉBRATION ET agitées autour d'EMOJI :]

Divulgation zero-day

Compte tenu de la rapidité et de la facilité apparentes avec lesquelles Zoom a pu émettre un correctif pour le bogue, surnommé CVE-2022-28756, vous vous demandez probablement pourquoi Wardle n'a pas informé Zoom du bogue à l'avance, fixant le jour de son discours comme date limite pour révéler les détails.

Cela aurait donné à Zoom le temps de diffuser la mise à jour à ses nombreux utilisateurs de Mac (ou du moins de la mettre à la disposition de ceux qui croient en corrigez tôt/corrigez souvent), éliminant ainsi l'écart entre Wardle expliquant au monde comment abuser du bogue, et la correction du bogue.

En fait, il semble que Wardle ait fait de son mieux pour avertir Zoom de ce bogue, ainsi que d'un tas de failles interconnectées dans le processus de mise à jour automatique de Zoom, il y a quelques mois.

Wardle explique le calendrier de divulgation des bogues dans le diapositives de son discours DEF CON, et répertorie un flux de mises à jour Zoom liées aux failles qu'il a découvertes.

Une épée à double tranchant

Les bogues dont Wardle a discuté concernaient généralement le mécanisme de mise à jour automatique de Zoom, une partie de tout écosystème logiciel qui est un peu une épée à double tranchant – une arme plus puissante qu'une épée ordinaire, mais par conséquent plus difficile à manipuler en toute sécurité.

La mise à jour automatique est un composant indispensable de toute application client moderne, car elle facilite et accélère la distribution des correctifs critiques, aidant ainsi les utilisateurs à combler de manière fiable les failles de cybersécurité.

Mais la mise à jour automatique comporte une mer de risques, notamment parce que l'outil de mise à jour lui-même nécessite généralement un accès au système au niveau racine.

En effet, le travail du programme de mise à jour consiste à écraser le logiciel d'application (ce qu'un utilisateur normal n'est pas censé faire) et peut-être à lancer des commandes privilégiées du système d'exploitation pour apporter des modifications à la configuration ou au niveau du système.

En d'autres termes, si les développeurs ne font pas attention, l'outil même qui les aide à maintenir leur application sous-jacente à jour et plus sécurisée pourrait devenir une tête de pont à partir de laquelle les attaquants pourraient renverser la sécurité en incitant le programme de mise à jour à exécuter des commandes non autorisées avec des privilèges système. .

Notamment, les programmes de mise à jour automatique doivent prendre soin de vérifier le authenticité des packages de mise à jour qu'ils téléchargent, pour empêcher les attaquants de leur fournir simplement un faux ensemble de mises à jour, avec des logiciels malveillants ajoutés.

Ils doivent également maintenir la intégrité des fichiers de mise à jour qu'ils consomment finalement, de sorte qu'un attaquant local ne puisse pas modifier sournoisement le groupe de mises à jour "vérifié sûr" qui vient d'être téléchargé dans la brève période entre sa récupération et son activation.

Contourner le contrôle d'authenticité

Comme l'explique Wardle dans son papier, l'un des bogues qu'il a découverts et divulgués était une faille dans la première étape répertoriée ci-dessus, lorsque le programme de mise à jour automatique de Zoom a tenté de vérifier l'authenticité du package de mise à jour qu'il venait de télécharger.

Au lieu d'utiliser les API macOS officielles pour valider directement la signature numérique du téléchargement, les développeurs de Zoom ont décidé de faire l'authentification indirectement, en exécutant l'utilitaire macOS. pkgutil --check-signature en arrière-plan et en examinant la sortie.

Voici un exemple de pkgutil sortie, en utilisant une ancienne version du Zoom.pkg pack logiciel :

$ pkgutil --check-signature Zoom.pkg Package "Zoom.pkg": Statut : signé par un certificat de développeur émis par Apple pour la distribution Signé avec un horodatage de confiance le : 2022-06-27 01:26:22 +0000 Chaîne de certificats : 1. Installateur ID développeur : Zoom Video Communications, Inc. (BJ4HAAB9B3) Expire : 2027-02-01 22:12:15 +0000 SHA256 Empreinte digitale : 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ----------------------------------- ------------------------------------- 2. L'autorité de certification de l'ID de développeur expire : 2027-02-01 22:12:15 +0000 SHA256 Empreinte digitale : 7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 F2 9C 88 CF B0 B1 BA 63 58 7F -------- -------------------------------------------------- -------------- 3. Apple Root CA expire : 2035-02-09 21:40:36 +0000 SHA256 Empreinte digitale : B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

Malheureusement, comme Wardle l'a découvert lorsqu'il a décompilé le code de vérification de signature de Zoom, le programme de mise à jour de Zoom n'a pas traité le pkgutil données de la même manière que le feraient des observateurs humains.

Nous vérifierions la sortie en suivant la séquence visuelle utile dans la sortie.

Tout d'abord, nous chercherons d'abord le statut souhaité, par exemple signed by a developer certificate issued by Apple for distribution.

Ensuite, nous trouverions le sous-titre Certificate Chain:.

Enfin, nous revérifierions que la chaîne était composée de ces trois signataires, dans le bon ordre :

  1. Zoom Video Communications, Inc. 2. Autorité de certification d'ID de développeur 3. Apple Root CA

Étonnamment, le code de Zoom a simplement vérifié que chacune des trois chaînes ci-dessus (sans même vérifier l'identifiant unique de Zoom BJ4HAAB9B3) s'est présenté quelque part dans la sortie de pkgutil.

Ainsi, créer un package avec un nom absurde mais valide tel que Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg inciterait le vérificateur de paquet à trouver les « chaînes d'identité » qu'il recherchait.

Le nom complet du package est répercuté dans le pkgutil en-tête de sortie sur la première ligne, où le malheureux "vérificateur" de Zoom correspondrait aux trois chaînes de texte dans la mauvaise partie de la sortie.

Ainsi, le contrôle de « sécurité » pourrait être trivialement contourné.

Une correction partielle

Wardle dit que Zoom a finalement corrigé ce bogue, plus de sept mois après l'avoir signalé, à temps pour DEF CON…

… mais après avoir appliqué le correctif, il a remarqué qu'il y avait encore un trou béant dans le processus de mise à jour.

Le programme de mise à jour a essayé de faire la bonne chose :

  • 1. Déplacez le package téléchargé dans le répertoire appartenant à root, et donc théoriquement interdit à tout utilisateur régulier.
  • 2. Vérifier la signature cryptographique du package téléchargé, en utilisant des API officielles, et non via un bodge de correspondance de texte contre pkgutil sortie.
  • 3. Désarchivez le fichier de package téléchargé, afin de vérifier son numéro de version, pour empêcher les attaques de rétrogradation.
  • 4. Installez le fichier de package téléchargé, en utilisant les privilèges root du processus de mise à jour automatique.

Malheureusement, même si le répertoire utilisé pour stocker le package de mise à jour appartenait à root, dans le but de le protéger des utilisateurs indiscrets essayant de subvertir le fichier de mise à jour pendant son utilisation…

… le fichier de package nouvellement téléchargé a été laissé "world-writable" dans son nouvel emplacement (un effet secondaire d'avoir été téléchargé par un compte régulier, pas par root).

Cela a donné aux attaquants locaux une échappatoire pour modifier le package de mise à jour après sa signature numérique avait été validée (étape 2), sans affecter les détails de la vérification de la version (étape 3), mais juste avant le programme d'installation a pris le contrôle du fichier de package afin de le traiter avec les privilèges root (étape 4).

Ce type de bogue est connu sous le nom de condition de course, car les attaquants doivent chronométrer leur arrivée pour rentrer chez eux juste avant le démarrage du programme d'installation, et doivent donc apporter leurs modifications malveillantes juste avant.

Vous entendrez également ce type de vulnérabilité désigné par l'acronyme aux consonances exotiques TOCTOU, court pour de l'heure de vérification à l'heure d'utilisation, un nom qui rappelle clairement que si vous vérifiez vos faits trop longtemps à l'avance, ils pourraient être obsolètes au moment où vous vous y fierez.

Le problème TOCTOU est la raison pour laquelle les sociétés de location de voitures au Royaume-Uni ne demandent plus simplement à voir votre permis de conduire, qui aurait pu être délivré il y a jusqu'à 10 ans, et aurait pu être suspendu ou annulé pour diverses raisons depuis lors, probablement parce que de conduite dangereuse ou illégale de votre part. En plus de votre licence physique, vous devez également présenter un code alphanumérique unique de "preuve de validité récente", émis au cours des 21 derniers jours, pour réduire l'écart potentiel TOCTOU de 10 ans à seulement trois semaines.

Le correctif est maintenant en place

Selon Wardle, Zoom a maintenant empêché ce bogue en modifiant les droits d'accès sur le fichier de package de mise à jour copié à l'étape 1 ci-dessus.

Le fichier utilisé pour la vérification de la signature, la validation de la version et l'installation finale au niveau racine est désormais limité à l'accès par le compte root uniquement, à tout moment.

Cela supprime la condition de concurrence, car un attaquant non privilégié ne peut pas modifier le fichier entre la fin de l'étape 2 (vérification réussie) et le début de l'étape 4 (l'installation commence).

Pour modifier le fichier de package afin d'inciter le système à vous donner un accès root, vous devez déjà avoir un accès root, vous n'avez donc pas besoin d'un bogue EoP de ce type en premier lieu.

Le problème TOCTOU ne s'applique pas car la vérification de l'étape 2 reste valide jusqu'au début de l'utilisation du fichier, ne laissant aucune fenêtre d'opportunité pour que la vérification devienne invalide.

Que faire?

Si vous utilisez Zoom sur un Mac, ouvrez l'application, puis, dans la barre de menus, accédez à zoom.us > Check for Updates...

Si une mise à jour est disponible, la nouvelle version s'affiche et vous pouvez cliquer sur [Install] pour appliquer les patchs :

Zoom pour Mac corrige le bug get-root – mettez à jour maintenant ! Intelligence des données PlatoBlockchain. Recherche verticale. Aï.

La version que vous voulez est 5.11.5 (9788) ou plus tard.


Horodatage:

Plus de Sécurité nue