Skip to main content

Il faut toute une communauté : répondre aux critiques sur l’open source après Log4Shell

Écrit par
Open Source Blog

24 décembre 2021

0 minutes de lecture

La semaine dernière a été mouvementée pour à peu près tout le monde dans le monde de la technologie, à la suite de la divulgation publique de la vulnérabilité Log4Shell. En tant qu’entreprise spécialisée dans la sécurité des développeurs, Snyk a bâti son activité autour de l’automatisation proactive, qui permet de détecter et de corriger les problèmes de sécurité dans les applications. Dire que nous avons été très occupés cette semaine serait un euphémisme.

Cela dit, l’un des discours que nous avons entendus cette semaine à propos de Log4Shell est que l’open source est fondamentalement défaillant : il n’y a pas assez de contributeurs pour créer des logiciels « fiables », il n’y a pas assez de contrôles de sécurité et les financements sont insuffisants pour garantir la pérennité des logiciels open source.

Et si ces affirmations ne sont pas sans fondement, nous sommes résolument en désaccord avec l’idée que l’open source est défaillant. L’open source, c’est formidable. C’est ce qui fait avancer la communauté des développeurs, ce qui nous permet de « nous appuyer sur les épaules des géants » et, très franchement, ce qui nous permet d’agir en communauté pour assurer leur sécurité — une chose impossible avec les logiciels propriétaires.

Pour revenir un instant sur ce dernier point, l’open source repose sur la communauté. Lorsqu’un problème de sécurité urgent survient dans un projet open source, la communauté peut unir ses forces pour le résoudre, diffuser largement le correctif et évaluer l’ampleur du problème. Les vulnérabilités ne sont jamais une bonne nouvelle, mais elles sont l’occasion pour la communauté open source de renforcer ses protocoles et ses pratiques. Quand des millions de personnes se mobilisent, elles peuvent accomplir des choses extraordinaires — comme corriger une vulnérabilité zero-day notée 10,0 !

L’open source est-il parfait ? Absolument pas : il existe de vrais problèmes de financement, des déséquilibres dans les contributions, des problèmes de sécurité, etc. Mais des personnes comme vous et moi peuvent remédier à tout cela. Avec l’open source, tout le monde peut agir !

Les problèmes de l’open source aujourd’hui

Examinons quelques-uns des problèmes de l’open source que d’autres ont signalés ces dernières semaines :

  • Les logiciels open source ont besoin de financements.

  • Les logiciels open source ont besoin de plus de contributeurs pour effectuer des revues, apporter des améliorations, etc.

  • Les logiciels open source ne prennent pas la sécurité au sérieux.

Les logiciels open source ont besoin de financements

C’est tout à fait vrai ! Comme le souligne Christine Dodrill dans son récent article, avant que la vulnérabilité Log4Shell ne fasse prendre conscience de la situation, la bibliothèque `log4j` (utilisée par d’innombrables applications Java) ne comptait que trois sponsors rémunérés.

C’est un vrai problème. Les bibliothèques open source dont dépendent les utilisateurs ont souvent besoin de financements pour que leurs responsables disposent de suffisamment de temps pour corriger les problèmes et garantir la stabilité et la sécurité de leurs applications.

Comme pour Log4j, avant l’annonce de la vulnérabilité Heartbleed, le projet OpenSSL était maintenu par deux personnes disposant d’un budget total d’environ 2 000 $ US par an. Ces ressources étaient loin d’être suffisantes pour un élément aussi essentiel de l’infrastructure Internet.

Les logiciels open source ont besoin de plus de contributeurs

Si de nombreux projets bien connus comptent plusieurs contributeurs, beaucoup de bibliothèques open source essentielles sont développées par un petit nombre de personnes. Il y a donc toujours un risque que les bogues ne soient pas corrigés assez rapidement, que des problèmes de sécurité non résolus apparaissent ou que les responsables se consacrent à d’autres projets, laissant la maintenance à l’abandon.

Par exemple, l’outil et la bibliothèque curl, largement utilisés depuis 1998 pour récupérer des données, ont été maintenus par une seule personne pendant de nombreuses années !

L’open source ne prend pas la sécurité au sérieux

Cette affirmation revient souvent ces derniers temps. S’il est vrai que l’open source n’est pas exempt de vulnérabilités de sécurité, de nombreux experts estiment que les logiciels open source présentent plusieurs avantages par rapport aux logiciels propriétaires en matière de sécurité. De plus, comme l’ont récemment montré les événements, lorsque des vulnérabilités de sécurité apparaissent, la communauté open source trouve généralement des moyens de les corriger, même avec des financements et des effectifs limités.

Le problème plus général, c’est que la plupart des développeurs — qu’ils travaillent sur des projets open source ou non — ne disposent pas des connaissances, de la formation et des outils nécessaires pour « prendre la sécurité au sérieux » de manière efficace. Notre rapport 2019 sur l’état de la sécurité de l’open source a révélé que seuls trois responsables de projets open source sur dix estimaient avoir un « niveau élevé de connaissances en sécurité ».

Ce n’est pas la faute des développeurs open source, mais un échec de tout l’écosystème du développement : depuis aussi longtemps que je me souvienne, la sécurité est restée en marge du secteur. Pourtant, si nous voulons créer des logiciels plus fiables et plus sûrs, la sécurité doit devenir une composante essentielle du processus de développement logiciel :

  • Les outils de sécurité doivent faire partie de la boîte à outils de chaque développeur, au même titre qu’un IDE ou un éditeur.

  • Les alertes de sécurité doivent être pertinentes, utiles et à forte valeur ajoutée (les fausses alertes ou celles qui apportent peu de valeur sont une source de distraction pénible).

  • La sécurité doit être étroitement intégrée aux flux de travail et aux outils des développeurs (pipelines CI/CD, processus de revue de code, etc.).

  • La sécurité doit être enseignée dans les cursus d’informatique et intégrée aux éléments fondamentaux des programmes d’études.

Les atouts de l’open source aujourd’hui

Maintenant que nous avons abordé certaines des principales critiques formulées à l’égard de l’open source, parlons de ses aspects positifs.

L’open source est en plein essor

Il y a aujourd’hui plus de développeurs open source que jamais. En 2018, GitHub a publié un excellent article détaillant le nombre de développeurs open source présents sur sa plateforme, après avoir atteint les 100 millions de dépôts.

À l’époque, GitHub indiquait que 31 millions de développeurs, venus de presque tous les pays du monde, collaboraient et avaient réalisé 1,1 milliard de contributions.

Le nombre de personnes qui contribuent à l’open source pour la première fois a lui aussi considérablement augmenté : en 2019, GitHub en a recensé près de 2 millions, et seulement deux ans plus tard, en 2021, ce chiffre avait dépassé les 3 millions.

En bref, de nombreux développeurs du monde entier travaillent sur des projets open source et y contribuent !

L’open source est à la base de… presque tout

Quel que soit votre avis sur l’open source, son impact sur le monde moderne est indéniable. Depuis plus de 20 ans, l’open source est à la base de presque toutes les grandes entreprises, applications et tous les grands projets.

Imaginez créer aujourd’hui une application Web sans vous appuyer sur un framework Web open source (comme Django), ou développer une application de bureau sans utiliser au moins quelques bibliothèques open source. C’est presque impensable pour un développeur.

Qu’on le veuille ou non, l’open source est utilisé partout, des plus petits projets personnels aux applications Web les plus gigantesques de la planète (et même au-delà !). Selon un rapport, 98 % des bases de code s’appuient sur des logiciels open source. Le monde fonctionne grâce à l’open source.

Des efforts sont déployés pour financer l’open source

Même si de nombreux projets open source ont un besoin urgent de financements — et c’est une réalité —, de nombreuses initiatives et évolutions sociales contribuent à résoudre ces problèmes.

Par exemple, à ce jour, Ralph Goers compte désormais 105 sponsors, en tant que responsable principal de la maintenance du projet Log4j. Il aurait été préférable que ces financements soient en place avant Log4Shell, mais la communauté a pris conscience du problème et de nombreuses personnes et organisations se sont mobilisées pour apporter les financements nécessaires. C’est un bel exemple de communauté qui s’unit pour résoudre un problème.

Des fondations comme The Linux Foundation (The Apache Foundation, The Python Foundation, etc.) proposent de nombreuses ressources aux projets open source qui ont besoin d’aide, financière ou autre. Il reste beaucoup à faire, mais ces organisations ont un impact direct sur des projets open source à forte valeur ajoutée, en veillant à ce qu’ils disposent des financements, des ressources et de la visibilité nécessaires.

Il en va de même pour de nombreuses entreprises : beaucoup d’organisations soutiennent les projets open source, directement ou indirectement en y consacrant le temps de leurs employés, pour répondre à leurs besoins. La liste est bien trop longue pour tenir dans un article de blog, mais la plupart des grandes entreprises technologiques financent l’open source d’une manière ou d’une autre.

La sécurité de l’open source s’améliore rapidement

Comme je l’ai mentionné, il n’est pas facile de traiter isolément la sécurité de l’open source, car les lacunes en matière de sécurité touchent l’ensemble du secteur et affectent autant les applications open source que les applications propriétaires.

La bonne nouvelle, c’est que la sécurité de l’open source s’améliore rapidement. Plusieurs facteurs y contribuent :

  • Au cours des dix dernières années, l’intérêt pour la cybersécurité a augmenté.

  • Les dépenses mondiales en cybersécurité ont presque doublé au cours des quatre dernières années seulement.

  • Les développeurs open source ont désormais accès à des services gratuits et performants pour détecter et corriger les problèmes de sécurité (comme Snyk, dont l’utilisation est entièrement gratuite pour les projets open source).

  • Des organisations comme l’OpenSSF (The Open Source Security Foundation) mènent des initiatives structurées spécifiquement consacrées à la sécurisation de tous les projets open source.

  • Les ressources d’formation gratuite en sécurité sont toujours plus nombreuses pour aider les développeurs — et bien d’autres personnes ! — à apprendre à créer des applications sécurisées, qu’elles soient open source ou non.

Comment améliorer l’open source

En réalité, l’open source ne sera jamais parfait (rien ne l’est !). À nous, membres de la communauté, de laisser les choses dans un meilleur état que nous les avons trouvées et de contribuer à améliorer l’open source.

Un ancien proverbe grec dit : « Une société grandit lorsque des vieillards plantent des arbres à l’ombre desquels ils savent qu’ils ne s’assiéront jamais. » S’il est certainement vrai pour les sociétés dans leur ensemble, nous, membres de la communauté technologique, pouvons à la fois planter des arbres et profiter de leur ombre, grâce à la rapidité des progrès technologiques.

Voici quelques suggestions pour que vous puissiez, à votre échelle, contribuer à améliorer l’open source :

  1. Envisagez de faire un don aux projets open source que vous utilisez le plus afin de soutenir leurs responsables. Vous pouvez le faire via GitHub Sponsors, OpenCollective ou de nombreuses autres plateformes.

  2. Consacrez du temps aux projets open source sur lesquels vous vous appuyez. Par exemple, si vous développez une application Web avec Django et ajoutez une fonctionnalité utile, essayez de la proposer au projet en amont ! Participer au développement open source n’est peut-être pas aussi difficile que vous le pensez.

  3. Utilisez des outils de sécurité gratuits comme Snyk pour détecter et corriger les problèmes de sécurité dans vos projets. Des outils comme Snyk vous permettent de :

    • Analyser vos dépôts de code pour détecter les vulnérabilités et être automatiquement averti de la découverte de nouveaux problèmes

    • Corriger instantanément plusieurs vulnérabilités courantes et maintenir vos dépendances à jour

    • Vous intégrer directement à votre IDE pour détecter les problèmes de sécurité avant même qu’ils ne soient envoyés vers votre dépôt

    • Analyser les conteneurs et les configurations d’infrastructure pour garantir la sécurité de votre infrastructure

    • Vous intégrer aux pipelines CI/CD afin de détecter les problèmes de sécurité critiques avant la mise en production

Enfin, lorsque des problèmes surviennent (comme des vulnérabilités de sécurité critiques), ne paniquez pas. Il est impossible de créer des logiciels parfaitement sécurisés : de nouveaux vecteurs d’attaque et de nouvelles techniques apparaîtront toujours. Même un code considéré comme parfaitement sécurisé aujourd’hui pourrait ne plus l’être l’année prochaine.

Le mieux est de prendre une grande inspiration et de traiter les problèmes urgents au fur et à mesure, en gardant la tête froide. Et… n’oubliez pas de rester en contact avec la communauté ! Partagez vos connaissances et vos bonnes pratiques avec vos pairs : cela aide tout le monde à progresser.

Pour ma part, je suis reconnaissant envers toute la communauté open source et toutes les personnes formidables qui la font vivre (vous y compris !). Je sais que les choses peuvent parfois sembler difficiles, mais n’oubliez pas que des progrès sont réalisés, que la situation s’améliore et que vouspouvez contribuer directement à un changement positif !

Joyeuses fêtes !

Lire la suite

feature insights context
Blog

Les attaques autonomes sont déjà là. La défense doit suivre leur rythme.

Les attaquants autonomes réduisent la fenêtre de défense. Découvrez comment la découverte, la correction, la validation et la prévention continues peuvent aider les équipes de sécurité à suivre le rythme.

feature insights context
Blog

La prévention est-elle essentiellement un problème résolu ?

La prévention dans le code généré par les agents est résolue sur le plan architectural, mais le défi reste de choisir des contrôles qui protègent la sécurité sans ralentir le développement.

Live Stream

Les agents de remédiation démystifiés : pourquoi corriger vaut mieux que détecter

Découvrez comment l’agent de remédiation de Snyk utilise les renseignements de sécurité, l’analyse de la cassabilité et la validation pour transformer les vulnérabilités en pull requests prêtes à être fusionnées.