
Le 4 mai, à quatre heures du matin à Moscou (ou un peu plus tard, selon la chance), toutes les extensions installées ont cessé de fonctionner pour les utilisateurs du navigateur Firefox, et l'installation de nouveaux modules complémentaires est devenue impossible. Le problème était du côté du navigateur - le certificat intermédiaire, par lequel toutes les extensions sont signées, a expiré. Cet événement a une relation indirecte avec la sécurité de l'information - la malchance est née de la volonté logique des développeurs de protéger les utilisateurs contre les extensions malveillantes (à partir de 2015) et du fait que personne n'a remarqué que le certificat expirera bientôt.
Néanmoins, c'est une histoire intéressante avec une fin modérément heureuse: un problème assez non trivial a été résolu en 12 heures. Il s'agit également d'un incident bien documenté, avec de nombreuses informations à la fois des développeurs et des quantités incroyables de
drames des utilisateurs. Au cours du processus, le problème de la vie privée s'est posé, qui a été assez efficacement résolu.
Les premiers rapports de problèmes avec les extensions sont apparus avant l'expiration du certificat, le 3 mai. Il y a au moins une telle
discussion sur Reddit. L'auteur du fil sur l'ordinateur avait une mauvaise date, il a donc été l'un des premiers à découvrir le bogue (et à le «corriger» en fixant la date correcte, mais pas pour longtemps). Un peu plus tard, le problème est apparu pour tous les utilisateurs, mais à des moments différents: la validité des certificats par lesquels les extensions sont signées est vérifiée toutes les 24 heures. Un historique plus détaillé avec différents degrés de détails est décrit ici:
actualités ,
rapport de bogue ,
support technique , un
blog avec des détails techniques et une
histoire sur l'incident au nom de CTO Firefox.
Voici à quoi ressemble le processus de signature des extensions dans Firefox. Le certificat racine au sommet de la chaîne se trouve dans le stockage hors ligne, et une fois tous les plusieurs années avec son aide, un certificat intermédiaire est créé avec lequel les extensions sont signées. C'était le certificat provisoire qui a expiré le 4 mai. La première solution de contournement de la part des développeurs de Firefox a été la sortie d'un correctif qui arrête temporairement la validation des certificats d'extension. Si un tel patch vous a été envoyé avant le contrôle, le problème est passé. De plus, les développeurs avaient deux façons: d'émettre soit une nouvelle version de Firefox, soit un nouveau certificat, qui fera des signatures d'extensions valides dans la version actuelle. Il était impossible de signer à nouveau tous les ajouts (plus de 15 000). Plus précisément, peut-être, mais cela aurait pris très longtemps.

Compte tenu des délais serrés (ils ont découvert le problème dans Firefox dans la soirée du 3 mai, bien sûr, vendredi!), Il a été décidé d'étudier les deux options. Techniquement, il était possible d'émettre un nouveau certificat, a) il était nécessaire de générer ce certificat et b) de le livrer aux utilisateurs le plus rapidement possible. La première partie a été compliquée par le fait que le certificat racine est stocké dans le module matériel, qui doit encore être atteint (
dans la forêt? Dans la cellule de la banque? ). De plus, lorsque les développeurs sont arrivés au certificat racine, il n'a pas été immédiatement possible de générer un nouveau certificat intermédiaire, ce qui a entraîné à chaque fois la perte d'une heure ou deux pour les tests nécessaires. Comment livrer? Pour ce faire, nous avons utilisé le mécanisme Firefox Studies - en fait, le système de distribution de modules complémentaires «du développeur du navigateur», qui est normalement destiné au code expérimental. Cela s'est avéré plus rapide que de construire une nouvelle version et d'envoyer la mise à jour via des canaux réguliers.
Mais ici, le même problème de confidentialité s'est posé. Firefox Studies, en tant que système expérimental, n'est inclus que lors du renvoi des informations d'utilisation du navigateur aux développeurs de Firefox. C'est logique pour les tests bêta, mais cela semble un peu étrange dans le contexte de la livraison d'un patch dont tous les utilisateurs ont généralement besoin. Ce problème a été élégamment résolu: Firefox a décidé de
supprimer toutes les données de télémétrie reçues du 4 au 11 mai.
Ce n'était pas une solution idéale. Ceux dont la télémétrie était désactivée (et les études) devaient activer manuellement ces options. Dans certaines versions, cette option n'est pas du tout. La version Android du navigateur ne prend pas en charge les études. Les utilisateurs des versions antérieures de Firefox affectés de façon permanente qui ne souhaitent pas être mis à jour, mais utilisent des modules complémentaires. Le 8 mai, des versions de Firefox
66.0.5 et Firefox
ESR 60.6.3 ont été publiées, dans lesquelles le problème avec le certificat a finalement été résolu et les études avec la télémétrie ne sont plus nécessaires. Des mises à jour sont prévues pour les anciennes versions du navigateur, à commencer par Firefox 52. Le problème a été résolu, mais pour de nombreux utilisateurs, il n'est pas passé sans trace - il y a des cas de perte de données et de paramètres dans les extensions.
Il y a deux conclusions de cette histoire. Premièrement, Firefox a promis de mettre en place un système de suivi des «bombes à retardement» dans l'infrastructure pour éviter que cela ne se reproduise à l'avenir. Deuxièmement, il est devenu clair que même un système de distribution de mise à jour plus ou moins moderne, avec différentes méthodes pour fournir des correctifs aux utilisateurs, n'est pas aussi efficace que nous le souhaiterions. Selon CTO Firefox, les utilisateurs du navigateur devraient pouvoir recevoir des mises à jour et des correctifs, même s'ils souhaitent désactiver toute autre fonctionnalité expérimentale et / ou télémétrie. Il s'agit d'une histoire de fin heureuse, qui peut conduire à une amélioration du mécanisme de mise à jour de Firefox, un navigateur grand public rare qui n'est lié à aucune grande entreprise informatique. Mais n'oubliez pas qu'elle a commencé par des tirs allégoriques sur ses propres jambes.
Avis de non-responsabilité: les opinions exprimées dans ce recueil ne coïncident pas toujours avec la position officielle de Kaspersky Lab. Chers rédacteurs recommandent généralement de traiter toute opinion avec un scepticisme sain.