Homebrew est un gestionnaire de paquets créé pour macOS, un outil qui permet d’installer des apps graphiques ou non en passant par le terminal. Il est très populaire sur les ordinateurs vendus par Apple, si bien que l’annonce de la découverte d’une faille de sécurité le concernant a de quoi inquiéter. Pas de panique toutefois, même si la faille était potentiellement dangereuse, elle a été corrigée la semaine dernière et n’a jamais été exploitée.
La faille a été découverte par Ryoktak, un chercheur en sécurité japonais qui décrit un scénario effrayant. Il a trouvé un moyen d’infecter le dépôt GitHub qui contient la liste des apps macOS que Homebrew peut installer pour faire en sorte que la commande brew
exécute du code arbitraire à chaque exécution. Dans sa démonstration, il s’est contenté d’afficher un message, mais on pourrait imaginer le pire, l’exécution d’un script qui contaminerait le Mac.
Pire, ce code en Ruby est exécuté en premier à chaque utilisation de la commande brew
. Concrètement, cela aurait pu facilement permettre de bloquer le processus de mise à jour de la ligne de commande, empêchant ainsi toute correction de la faille de sécurité. Face au danger, on comprend que les développeurs de Homebrew n’aient pas trainé et la faille de sécurité a été corrigée en un jour seulement.
La bonne nouvelle, c’est qu’on sait que cette faille n’a jamais été exploitée. Puisqu’elle repose sur un défaut dans la conception d’un dépôt GitHub, on peut facilement vérifier grâce à son historique que personne ne l’a utilisée, à part le chercheur en sécurité avec une démonstration réalisée il y a quelques jours. C’est le seul cas dans le dépôt, ce qui veut dire qu’aucun Mac utilisant Homebrew a été contaminé par le passé.
Et pour éviter que cela se reproduise, les responsables du projet ont annoncé plusieurs changements, le plus important étant la validation manuelle systématique de tous les changements apportés au dépôt GitHub concerné. La faille de sécurité reposait sur un processus de validation automatisé qui permettait d’alléger la charge de travail. Avec une validation humaine, les mises à jour demanderont un petit peu plus de temps, mais cela renforcera la sécurité du projet.