Kredit:Alexander Sinn/Unsplash
I mars 2022 bröt författaren till node-ipc, ett mjukvarubibliotek med över en miljon nedladdningar per vecka, medvetet sin kod. Om koden upptäcker att den körs i Ryssland eller Vitryssland, försöker den ersätta innehållet i varje fil på användarens dator med en hjärtemoji.
Ett programbibliotek är en samling kod som andra programmerare kan använda för sina ändamål. Bibliotekets node-ipc används av Vue.js, ett ramverk som driver miljontals webbplatser för företag som Google, Facebook och Netflix.
Denna kritiska säkerhetssårbarhet är bara ett exempel på en växande trend av programmerare som självsaboterar sin egen kod i politiska syften. När programmerare protesterar genom sin kod – ett fenomen som kallas "protestware" – kan det få konsekvenser för de människor och företag som förlitar sig på koden de skapar.
Olika former av protester
Min kollega Raula Gaikovina Kula och jag har identifierat tre huvudtyper av protestware.
Moderna mjukvarusystem är utsatta för sårbarheter eftersom de är beroende av tredjepartsbibliotek. Dessa bibliotek är gjorda av kod som utför särskilda funktioner, skapad av någon annan. Genom att använda den här koden kan programmerare lägga till befintliga funktioner i sin egen programvara utan att behöva "uppfinna hjulet på nytt".
Användningen av tredjepartsbibliotek är vanligt bland programmerare – det påskyndar utvecklingsprocessen och minskar kostnaderna. Till exempel, bibliotek listade i det populära NPM-registret, som innehåller mer än 1 miljon bibliotek, förlitar sig på i genomsnitt fem till sex andra bibliotek från samma ekosystem. Det är som en biltillverkare som använder delar från andra tillverkare för att färdigställa sina fordon.
Dessa bibliotek underhålls vanligtvis av en eller en handfull volontärer och görs tillgängliga för andra programmerare gratis under en mjukvarulicens med öppen källkod.
Framgången för ett tredjepartsbibliotek är baserat på dess rykte bland programmerare. Ett bibliotek bygger upp sitt rykte över tid, eftersom programmerare får förtroende för dess kapacitet och dess underhållares lyhördhet för rapporterade defekter och funktionsförfrågningar.
Om svagheter i biblioteket från tredje part utnyttjas kan det ge angripare tillgång till ett programvarusystem. Till exempel upptäcktes nyligen en kritisk säkerhetsrisk i det populära Log4j-biblioteket. Denna brist kan göra det möjligt för en fjärrangripare att komma åt känslig information som loggats av applikationer som använder Log4j – som lösenord eller annan känslig data.
Tänk om sårbarheter inte skapas av en angripare som letar efter lösenord, utan av programmeraren själv med avsikten att göra användare av sitt bibliotek medvetna om en politisk åsikt? Framväxten av protestware ger upphov till sådana frågor, och svaren är blandade.
Etiska frågor finns i överflöd
Ett blogginlägg på Open Source Initiative-webbplatsen svarar på ökningen av protestware som säger att "protest är en viktig del av yttrandefriheten som bör skyddas" men avslutas med en varning:"Nacksidorna med att vandalisera projekt med öppen källkod överväger vida alla möjliga fördelar, och tillbakaslaget kommer i slutändan att skada de ansvariga projekten och bidragsgivarna."
Vilken är den huvudsakliga etiska frågan bakom protestware? Är det etiskt att göra något värre för att göra en poäng? Svaret på denna fråga beror till stor del på individens personliga etiska övertygelse.
Vissa människor kan se hur mjukvaran påverkar dess användare och hävdar att protestware är oetiskt om det är utformat för att göra livet svårare för dem. Andra kan hävda att om programvaran är utformad för att göra en poäng eller öka medvetenheten om ett problem, kan det ses som mer etiskt acceptabelt.
Ur ett utilitaristiskt perspektiv kan man hävda att om en form av protestware är effektiv för att åstadkomma ett större goda (som politisk förändring), så kan det vara moraliskt motiverat.
Ur teknisk synvinkel utvecklar vi sätt att automatiskt upptäcka och motverka protestware. Protestprogram skulle vara en ovanlig eller överraskande händelse i ändringshistoriken för ett tredjepartsbibliotek. Begränsning är möjlig genom redundanser – till exempel kod som liknar eller är identisk med annan kod i samma eller olika bibliotek.
Framväxten av protestware är ett symptom på ett större socialt problem. När människor känner att de inte blir hörda kan de ta till olika åtgärder för att få fram sitt budskap. När det gäller programmerare har de den unika förmågan att protestera genom sin kod.
Även om protestware kan vara ett nytt fenomen, är det troligtvis här för att stanna. Vi måste vara medvetna om de etiska konsekvenserna av denna trend och vidta åtgärder för att säkerställa att mjukvaruutveckling förblir ett stabilt och säkert område.
Vi förlitar oss på mjukvara för att driva våra företag och våra liv. Men varje gång vi använder programvara sätter vi vårt förtroende till personerna som skrev det. Framväxten av protestware hotar att destabilisera detta förtroende om vi inte vidtar åtgärder. + Utforska vidare
Den här artikeln är återpublicerad från The Conversation under en Creative Commons-licens. Läs originalartikeln.