Crédit :Alexander Sinn/Unsplash
En mars 2022, l'auteur de node-ipc, une bibliothèque de logiciels avec plus d'un million de téléchargements hebdomadaires, a délibérément cassé leur code. Si le code découvre qu'il s'exécute en Russie ou en Biélorussie, il tente de remplacer le contenu de chaque fichier sur l'ordinateur de l'utilisateur par un emoji en forme de cœur.
Une bibliothèque de logiciels est une collection de code que d'autres programmeurs peuvent utiliser à leurs fins. La bibliothèque node-ipc est utilisée par Vue.js, un framework qui alimente des millions de sites Web pour des entreprises telles que Google, Facebook et Netflix.
Cette faille de sécurité critique n'est qu'un exemple de la tendance croissante des programmeurs à saboter eux-mêmes leur propre code à des fins politiques. Lorsque les programmeurs protestent par le biais de leur code (phénomène connu sous le nom de "protestware"), cela peut avoir des conséquences pour les personnes et les entreprises qui s'appuient sur le code qu'ils créent.
Différentes formes de protestation
Ma collègue Raula Gaikovina Kula et moi-même avons identifié trois principaux types de protestware.
Les systèmes logiciels modernes sont sujets aux vulnérabilités car ils s'appuient sur des bibliothèques tierces. Ces bibliothèques sont constituées de code qui exécute des fonctions particulières, créées par quelqu'un d'autre. L'utilisation de ce code permet aux programmeurs d'ajouter des fonctions existantes dans leur propre logiciel sans avoir à "réinventer la roue".
L'utilisation de bibliothèques tierces est courante chez les programmeurs, elle accélère le processus de développement et réduit les coûts. Par exemple, les bibliothèques répertoriées dans le registre populaire NPM, qui contient plus d'un million de bibliothèques, s'appuient en moyenne sur cinq à six autres bibliothèques du même écosystème. C'est comme un constructeur automobile qui utilise des pièces d'autres constructeurs pour compléter ses véhicules.
Ces bibliothèques sont généralement gérées par un ou une poignée de bénévoles et mises gratuitement à la disposition d'autres programmeurs sous une licence de logiciel open source.
Le succès d'une bibliothèque tierce repose sur sa réputation auprès des programmeurs. Une bibliothèque construit sa réputation au fil du temps, car les programmeurs gagnent en confiance dans ses capacités et dans la réactivité de ses responsables aux défauts signalés et aux demandes de fonctionnalités.
Si les faiblesses de la bibliothèque tierce sont exploitées, cela pourrait donner aux attaquants l'accès à un système logiciel. Par exemple, une vulnérabilité de sécurité critique a été récemment découverte dans la populaire bibliothèque Log4j. Cette faille pourrait permettre à un attaquant distant d'accéder à des informations sensibles enregistrées par des applications utilisant Log4j, telles que des mots de passe ou d'autres données sensibles.
Et si les vulnérabilités n'étaient pas créées par un attaquant à la recherche de mots de passe, mais par le programmeur lui-même avec l'intention de sensibiliser les utilisateurs de sa bibliothèque à une opinion politique ? L'émergence du protestware suscite de telles questions, et les réponses sont mitigées.
Les questions éthiques abondent
Un article de blog sur le site de l'Open Source Initiative répond à la montée des logiciels de protestation déclarant que "la protestation est un élément important de la liberté d'expression qui doit être protégé" mais se termine par un avertissement :"Les inconvénients du vandalisme des projets open source l'emportent de loin sur tout avantage possible, et le retour de flamme finira par endommager les projets et les contributeurs responsables."
Quelle est la principale question éthique derrière le protestware ? Est-il éthique d'aggraver quelque chose pour faire valoir un point ? La réponse à cette question dépend en grande partie des convictions éthiques personnelles de l'individu.
Certaines personnes peuvent voir l'impact du logiciel sur ses utilisateurs et affirmer que les logiciels de protestation sont contraires à l'éthique s'ils sont conçus pour leur rendre la vie plus difficile. D'autres peuvent faire valoir que si le logiciel est conçu pour faire valoir un point ou sensibiliser à un problème, il peut être considéré comme plus acceptable sur le plan éthique.
D'un point de vue utilitaire, on pourrait soutenir que si une forme de protestware est efficace pour apporter un plus grand bien (comme un changement politique), alors elle peut être moralement justifiée.
D'un point de vue technique, nous développons des moyens de détecter et de contrer automatiquement les logiciels de protestation. Protestware serait un événement inhabituel ou surprenant dans l'historique des modifications d'une bibliothèque tierce. L'atténuation est possible grâce à des redondances, par exemple, un code similaire ou identique à un autre code dans la même bibliothèque ou dans des bibliothèques différentes.
La montée des protestwares est le symptôme d'un problème social plus vaste. Lorsque les gens sentent qu'ils ne sont pas entendus, ils peuvent recourir à différentes mesures pour faire passer leur message. Dans le cas des programmeurs, ils ont la capacité unique de protester à travers leur code.
Bien que les logiciels de protestation soient un phénomène nouveau, ils sont susceptibles de rester. Nous devons être conscients des implications éthiques de cette tendance et prendre des mesures pour garantir que le développement de logiciels reste un domaine stable et sécurisé.
Nous comptons sur les logiciels pour gérer nos entreprises et nos vies. Mais chaque fois que nous utilisons un logiciel, nous accordons notre confiance aux personnes qui l'ont écrit. L'émergence du protestware menace de déstabiliser cette confiance si nous n'agissons pas.
Cet article est republié de The Conversation sous une licence Creative Commons. Lire l'article d'origine. Une étude révèle que l'outil de correction automatique incite davantage de programmeurs à mettre à jour le code