
Dans un article intitulé On the Weaponisation of Open Source, Gerald Benischke examine comment l'invasion de l'Ukraine par la Russie s'est répercutée sur les domaines du développement logiciel, avec des conséquences inattendues. Benischke s'intéresse en particulier à la décision de MongoDB de couper ses services en Russie, au changement destructeur d'une bibliothèque de nœuds qui a supprimé des fichiers sur des IP russes, et même à un changement de code/licence dans un module terraform communautaire pour affirmer que Poutine est une « tête de nœud ».
MongoDB coupe les clients russes et déclare : « Nous avons le regret de vous informer qu'en raison des nouvelles sanctions américaines et internationales à l'encontre de la Russie et de la Biélorussie, votre atlas MongoDB, environnement......, sera résilié. Si vous avez des données importantes, nous vous conseillons de télécharger des sauvegardes immédiatement avant qu'elles ne deviennent définitivement irrécupérables », déclare MongoDB.
« Vous vous demandez à quoi pourrait ressembler votre système informatique si d'autres fournisseurs IaaS, PaaS et SaaS décidaient de vous fermer. Et si AWS décidait de fermer votre compte ? Dans quelle mesure votre dépendance à l'égard du cloud est-elle critique pour votre entreprise ? », interroge Oleg Brodt, Directeur de l'innovation, Cyber@Ben-Gurion University.
Notons que MongoDB est un système de gestion de bases de données orienté documents, répartissable sur un nombre quelconque d'ordinateurs et ne nécessitant pas de schéma prédéfini des données. Il permet de manipuler des objets structurés au format BSON (JSON binaire), sans schéma prédéterminé. Il est écrit en C++. Le serveur et les outils sont distribués sous licence SSPL.
Selon certains témoignages, MongoDB est une technologie qui change la vie de nombreux développeurs, leur permettant de créer des applications plus rapidement qu'avec des bases de données relationnelles. Cependant, MongoDB a abandonné ses racines Open Source, en changeant la licence en SSPL, ce qui le rend inutilisable pour de nombreux projets Open Source et commerciaux.
Selon le consultant en ingénierie logicielle Gerald Benischke, il y aurait un peu d'incohérence dans le secteur technologique pour savoir si une offre SaaS et le paiement d'un abonnement équivalent à une nouvelle vente, mais je pense que c'est dans l'esprit des sanctions, rendre difficile l'activité des entreprises russes.
Mongo est une entité commerciale et, en tant que telle, elle peut choisir à qui vendre ses produits. Bien que Benischke déclare son accord avec la décision de MongoDB de se couper des clients russes, le consultant indique que, « cela pose une question intéressante ». « Qu'arriverait-il à votre organisation si un fournisseur de services disparaissait ? Je ne pense pas que cela signifie que nous devions tous nous précipiter pour construire nos propres centres de données, écrire nos propres bases de données et exécuter tous nos propres services.
« La simplification et l'optimisation de l'utilisation du logiciel en tant que service ne doivent pas être négligées. Toutefois, il n'est pas inutile d'être prudent et de procéder à une évaluation des risques pour savoir ce qui se passerait si le service disparaissait. Encore une fois, je ne pense pas que cela doive être considéré comme une incitation à tout exécuter en multi-cloud, car je pense que l'augmentation globale de la complexité réduirait en fait la fiabilité. »
Le développeur à l'origine du populaire paquet npm node-ipc a expédié ce mois-ci une nouvelle version pour protester contre l'invasion de l'Ukraine par la Russie. Mais les changements ont introduit un comportement indésirable qui cible les utilisateurs avec des adresses IP situées en Russie ou en Biélorussie et efface tous leurs fichiers lors de l'installation pour les remplacer par un émoji de cœur. Néanmoins, cet acte de sabotage a suscité de nouvelles inquiétudes quant à la sécurité de la chaîne d'approvisionnement des logiciels et des logiciels libres.
Notons que, node-ipc est un module Node.js pour « la communication interprocessus locale et distante » avec un support complet pour Linux, Mac et Windows. Il supporte également toutes les formes de communication par socket, des sockets bas niveau d'Unix et de Windows aux sockets UDP et sécurisés TLS et TCP. Avec plus de 1,1 million de téléchargements hebdomadaires, node-ipc est un paquet important utilisé par des bibliothèques majeures comme Vue.js CLI.
Cependant, le développeur de node-ipc, Brandon Nozaki Miller, a saboté le paquet pour nuire aux utilisateurs se trouvant en Russie ou en Biélorussie, en vue de militer contre l'invasion russe en Ukraine. Sous le nom de « protestware », la dépendance peacenotwar a été injectée dans des dépendances qui affectaient vuejs cli (et unreal unity selon certains rapports). peacenotwar vérifie l'adresse IP de l'ordinateur sur lequel il s'exécute et, s'il est considéré comme se trouvant en Russie, supprime tous les fichiers.
« Cette histoire est un peu plus sinistre », déclare Benischke. Maintenant, les attaques de la chaîne d'approvisionnement contre les modules de nœuds n'ont rien de nouveau. Il ne se passe pas beaucoup de mois sans que l'on entende parler parler d'un module de nœud détourné qui installe des portes dérobées ou des cryptomonnaies. « Je pense que l'on peut tous se mettre d’accord pour dire que ces attaques sont malveillantes et que les actions sont celles de criminels. Ces actions doivent être condamnées, d'autant plus que le fait de "supprimer des fichiers en fonction des adresses IP de géofencing" risque de provoquer des dommages collatéraux. »
« Je ne sais pas quelle est la part de vérité dans la question soulevée sur le dépôt peacenotwar selon laquelle une ONG américaine a perdu 30 000 fichiers documentant les crimes de guerre russes - mais il faut se rappeler que la géolocalisation n'est pas toujours juste », précise le consultant en ingénierie informatique.
Des preuves anecdotiques d'erreurs d'identification d'adresses IP font de cette arme une arme très aveugle. On pourrait réfléchir au fait que si les bombardements massifs de cibles civiles par les forces armées russes doivent être abhorrés, l'effacement global des fichiers dans la plage d'adresses IP de la Russie n'est pas exactement une action ciblée.
« Enfin, j'aimerais revenir sur une histoire selon laquelle les modules terraform de la communauté pour AWS ont été mis à jour pour inclure des déclarations politiques », déclare Benischke. Il y aurait d'abord eu une modification de la licence « Conditions d'utilisation supplémentaires pour les utilisateurs de Russie et du Belarus ».
En utilisant le code fourni dans ce dépôt, vous acceptez ce qui suit :
- La Russie a illégalement annexé la Crimée en 2014 et a apporté la guerre dans le Donbas suivie d'une invasion à grande échelle de l'Ukraine en 2022 ;
- La Russie a apporté de la tristesse et des dévastations à des millions d'Ukrainiens, tué des centaines d'innocents, endommagé des milliers de bâtiments et forcé plusieurs millions de personnes à fuir ;
- Poutine khuylo !
Code : | Sélectionner tout |
1 2 3 4 5 | variable "putin_khuylo" { description = "Do you agree that Putin doesn't respect Ukrainian sovereignty and territorial integrity? More info: https://en.wikipedia.org/wiki/Putin_khuylo!" type = bool default = true } |
En mettant la variable à false, le module de terraformation ne fonctionnerait pas. Selon Benischke, c'est problématique sur deux fronts :
- Cela ne devrait plus être classé désormais comme open source ;
La définition d'une licence Open Source est assez claire : « Je n'ai pas vraiment envie de devoir lire chacune de mes licences de dépendances et de dépendances transitives pour déterminer si j'accepte des termes discriminatoires en utilisant une bibliothèque. » « Je pense qu'il est tout à fait indésirable de politiser/armer l'open source de cette façon. Selon le type d'organisation avec laquelle vous travaillez, il pourrait être totalement inacceptable et hors de portée des permissions pour un ingénieur d'accepter ce genre de contrats. Je ne peux pas imaginer qu'une agence gouvernementale veuille découvrir que le logiciel qu'elle utilise lui impose une certaine position politique. »- Qu'en est-il d'une licence qui exige que vous vous absteniez de manger de la viande ou que vous la souteniez ?
- Qu'en est-il d'un permis qui exige que vous soyez pro-vie/pro-choix ?
- Qu'en est-il d'une licence qui exige que vous votiez démocrate/républicain ?
- Cela ne pourrait pas s'appliqué ;
Certains analystes soutiennent qu'il n'est pas pratique d'encoder la moralité dans les licences, car elle serait de toute façon soit ignorée, soit bifurquée. La licence JSON « Le logiciel doit être utilisé pour le bien et non pour le mal » est inapplicable, et les licences sont conçues avec la clause 6 à l'esprit : « Pas de discrimination contre les domaines d'activité » afin d'éviter les pièges des licences provenant de dépendances en aval.
Selon Gerald Benischke, le résultat du changement putin_khuylo est que ce module terraform AWS ne peut plus remplir aucune de ces clauses et ne peut donc plus être classé comme open source. L'auteur de la modification en aurait discuté sur Hacker News et a depuis changé la clause en « Informations supplémentaires » plutôt qu'en « Conditions générales supplémentaires » mais la modification du code putin_khuylo reste dans le module.
Selon Gerald Benischke, cela soulève des interrogations sur la « sécurité » de ces composants. Il semble que ces modifications aient été apportées directement dans la branche principale sans demande de révision, ce qui suggère un manque de processus de révision. Ces actions ont eu un impact négatif sur la confiance dans les mainteneurs. Et cela amène à se demander si l'utilisation de ces composants est sûre.
De plus, du point de vue des licences, certaines organisations ont des directives concernant les licences autorisées. Ainsi, si l'on peut démontrer que le code enfreint les clauses de la licence, est-il toujours possible de l'utiliser en toute sécurité ? Certaines histoires de guerre sur la suppression frénétique de bibliothèques sous GPL "infectieuses" font penser que les avocats pourraient avoir une journée de travail.
Imaginons une organisation où il y a des centaines d'équipes et des milliers de microservices. Et essayons de réfléchir à la manière dont on peut évaluer le risque de milliers de dépendances et de millions de lignes de code. « Sans confiance, le seul moyen d'y parvenir serait de forker toutes les librairies, d'empêcher l'open source et, plus généralement, de tuer toute agilité et toute vélocité », déclare Benischke.
La Russie est sur le coup de nombreuses sanctions : la chaîne d'information russe RT (Russia Today) a dû se retourner vers la plateforme de vidéo en ligne Rumble sur laquelle elle poursuivra ses diffusions. Google a procédé au blocage des applications mobiles liées à RT et Sputnik sur sa boutique d’applications Play en Europe, les spécialistes de la filière IT ne peuvent partir du pays ou subvenir à leurs besoins en raison des restrictions imposées par Visa et Mastercard, etc. Red Hat a allongé la liste et fait l’annonce de l’interruption de ses ventes et services en Russie et en Biélorussie. La Russie pour sa part envisage de légaliser le piratage de logiciels dans certains cas afin d’atténuer les sanctions.
Je [Paul Cormier - président et CEO de Red Hat] suis sûr de parler au nom de tous lorsque je dis que la guerre qui se déroule en Ukraine est déchirante. En tant qu'entreprise, nous sommes unis à toutes les personnes touchées par la violence et nous condamnons l'invasion de l'Ukraine par l'armée russe. Nous[/paul cormier - président et ceo de red hat]...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.