Un certain niveau de confiance (et de chance) est au cœur de la plupart des projets open source, pour le meilleur ou pour le pire. En raison du fait que le titulaire du droit d'auteur donne à des tiers le droit d'utiliser, de modifier, d'étudier et de distribuer le logiciel et son code source à d'autres parties et à quelque fin que ce soit. Il peut également être développé publiquement. Les logiciels libres proposent des outils utiles qui peuvent favoriser l'innovation et la collaboration, mais leur sécurisation peut s'avérer difficile pour de multiples raisons.
Open Source : des contributions caritatives, non sans risques
Un large éventail de personnes créent des produits logiciels open source. Certains d'entre eux sont gérés par des entreprises ou des organisations à but non lucratif, qui créent et vendent également des versions des outils séparément pour générer des revenus. Cependant, de nombreux projets open source s'appuient largement sur des bénévoles dévoués qui apportent leur expertise, probablement en plus d'autres emplois. Parfois, ces personnes tirent des revenus de contributions directes via des dons en ligne d'utilisateurs reconnaissants de leurs produits logiciels, mais ils sont souvent utilisés sans compensation. Bien que leur passion soit louable, le manque de financement combiné à une bande passante limitée pour les contrôles de sécurité peut compliquer l'examen méticuleux de chaque mise à jour de code soumise au projet. Cela crée une vulnérabilité potentielle que des acteurs malveillants pourraient exploiter.
C'est exactement ainsi que la récente porte dérobée a été implantée dans XZ Utils. Un développeur connu ayant un historique de contributions positives au projet open source a soumis une nouvelle contribution contenant des modifications malveillantes apportées au code, établissant ainsi une porte dérobée.
Cela met en évidence la nécessité d'adopter une approche plus durable de la sécurité des sources ouvertes.
Les portes dérobées open source : ce n'est pas un nouveau risque
En ce qui concerne les logiciels libres, ce type de risque n'est pas nécessairement nouveau. Cependant, cela varie par rapport à certains des risques auxquels sont confrontés les logiciels propriétaires. Cela dit, si vous examinez la plupart des technologies actuelles, pratiquement toutes contiennent au moins un composant logiciel open source, du système d'exploitation aux packages en langage de codage, en passant par les gestionnaires de packages et les utilitaires de base tels que ssh.
Lorsque des géants de l'Internet tels que Google et Facebook modifient leur code, ils disposent d'une énorme quantité d'instruments et d'automatisation pour valider l'impact des modifications, les tester et s'assurer qu'elles n'introduisent pas de vulnérabilités. Aujourd'hui, il ne s'agit pas d'une prévention à 100 % des bogues et des vulnérabilités, mais fondamentalement, ils déploient des méthodes éprouvées à grande échelle pour réduire considérablement la probabilité et le risque d'introduction d'une vulnérabilité. Ensuite, lorsque des vulnérabilités sont introduites, comme cela se produit, elles sont rapidement corrigées.
Que pouvons-nous apprendre de la porte dérobée de XZ Utils ?
Dans le cas de XZ Utils, nous voyons la limite des petits logiciels open source dans leur capacité à filtrer efficacement les contributions pour détecter les problèmes de sécurité et à détecter rapidement les problèmes de sécurité une fois qu'ils ont été introduits dans leur code déjà déployé.
La porte dérobée de XZ Utils n'a pas été découverte pendant des semaines, jusqu'à ce qu'un ingénieur dédié de Microsoft détecte la moindre anomalie dans la synchronisation SSH. À certains égards, nous avons eu de la chance que le problème de sécurité ait été découvert aussi rapidement qu'il l'a été, mais c'est de la chance.
Ces dernières années, Google a pris des mesures importantes en matière de sécurité des logiciels libres, notamment en proposant un fuzzing gratuit pour les logiciels open source courants afin de détecter les failles de sécurité. Il s'agit de programmes d'une importance cruciale qui aident les projets open source sous-financés à atteindre de meilleures bases de sécurité.
Un plat clé à emporter ?
J'adorerais voir davantage de grandes entreprises technologiques mettre en place ces programmes, et j'aimerais voir les entreprises utilisatrices de ces projets de logiciels libres consacrer des fonds importants à des équipes dans le seul but de sécuriser la chaîne d'approvisionnement des logiciels.