Hygiène de la chaîne logicielle
Un Mac de développement accumule les logiciels comme un garage accumule les outils. La plupart ont été installés pour une tâche précise, il y a des années, et personne ne les a regardés depuis. Homebrew est très doué pour mettre ces logiciels sur votre machine. Il n'a rien à dire sur ce qui leur arrive ensuite — et certains ont désormais des CVE publiées.
brew outdated vous dit ce qui a une version plus récente. brew doctor vous dit quand votre installation elle-même est en mauvaise santé. Les deux sont réellement utiles, et aucun n'est un contrôle de sécurité — « une version plus récente existe » et « ce que vous avez est vulnérable » sont deux questions différentes, avec des urgences différentes.
brew audit est la commande vers laquelle on se tourne et celle qui induit le plus en erreur : elle vérifie qu'une formule est bien formée pour être soumise à Homebrew. C'est un contrôle sur la recette, pas sur le logiciel posé sur votre disque. Rien dans la chaîne d'outils par défaut ne compare vos versions installées à une base d'avis de sécurité.
Comment ça marche
Chaque formule et chaque cask installés sont rassemblés avec leur version — la même liste que vous donnerait brew list --versions, sans le copier-coller.
Ces paquets sont interrogés par lots face à OSV. La recherche est en direct : une analyse reflète les avis publiés jusqu'à l'instant où vous la lancez.
Chaque résultat porte la gravité indiquée par l'avis lui-même quand il en publie une, à défaut son score CVSS. C'est le pire résultat d'un paquet qui s'affiche sur sa ligne.
Chaque résultat renvoie à l'avis officiel, et la liste des paquets obsolètes est à un clic — le correctif, c'est presque toujours simplement la version corrigée.
Les résultats viennent d' OSV, la base de vulnérabilités open source maintenue par Google, interrogée en direct plutôt que livrée sous forme d'instantané dans l'application. C'est justement le sujet de cette page : une base figée au moment de la publication est déjà périmée quand vous installez l'application, et cette péremption est précisément le problème à résoudre.
Lire un résultat
Exploitable à distance, ou presque sans effort. À traiter aujourd'hui.
Sérieux, généralement sous conditions. À traiter cette semaine.
Réel mais étroit — demande souvent un accès local ou une configuration inhabituelle.
La gravité vient de l'avis lui-même quand l'éditeur en fournit une, à défaut de son score CVSS. Un paquet qui présente plusieurs résultats est classé selon le pire d'entre eux : la ligne que vous voyez dans la liste est celle sur laquelle le juger.
Brew Doctor couvre l'autre moitié de l'hygiène de la machine — l'état de Homebrew plutôt que les paquets qu'il contient. Il se divise en deux types d'avertissement, et la distinction est voulue :
Kegs non liés, dépendances manquantes, formules obsolètes, métadonnées de cask invalides — brew propose une commande pour cela, alors Doctor vous donne un bouton « Corriger » et relance ensuite le contrôle.
Une commande sudo, un changement de PATH, un appel à xcode-select — cela appartient à votre shell, pas à une application qui exécuterait des commandes à votre place. Doctor les affiche comme des commandes copiables et vous laisse la décision.
C'est ce qui décide si tout le reste sert à quelque chose. Analyser à la demande répond à la question « suis-je exposé en ce moment » — mais les avis sont publiés en continu, et c'est dans l'écart entre publication et découverte que vit l'exposition. Une vulnérabilité apprise avec trois mois de retard ne vaut guère mieux qu'une vulnérabilité jamais apprise.
L'analyse se lance donc au démarrage par défaut, et un agent dans la barre des menus revérifie à l'intervalle que vous fixez et se signale quand quelque chose apparaît. Vous n'avez rien à retenir. C'est toute l'idée : c'est l'alerte qui vient à vous, pas vous qui devez aller la chercher.
Nécessite macOS 14 (Sonoma) ou ultérieur, Apple Silicon ou Intel.
Une analyse vous dit si quelque chose sur votre Mac présente une vulnérabilité connue — et l'agent de la barre des menus continue de vous le dire ensuite. Un achat unique de 10 €.