Zephyrnet-logo

JavaScript-ontwikkelaar vernietigt eigen projecten in supply chain "les"

Datum:

Je hebt waarschijnlijk het nieuws gezien, zelfs als je niet zeker weet wat er is gebeurd.

Tenzij u een JavaScript-programmeur bent en u vertrouwde op een of beide modules genaamd faker.js en colors.js.

Als je een gebruiker was van een van deze projecten, en als je geneigd bent (of was!) geneigd om alle updates van je broncode automatisch te accepteren zonder enige vorm van code-review of testen...

… u weet waarschijnlijk heel goed wat er precies is gebeurd en hoe het u heeft beïnvloed.

Aanvallen in de toeleveringsketen

Lezers op lange termijn van Naked Security zullen bekend zijn met het probleem van zogenaamde aanvallen in de toeleveringsketen in open source softwarebibliotheken, omdat we al eerder over dit soort problemen in het programmeren van ecosystemen hebben geschreven.

We hebben geschreven over beveiligingslekken die plotseling opduiken in tal van codeergemeenschappen, waaronder: PHP programmeurs, Pythonista's, Ruby gebruikers, en NPM fans.

Vorig jaar hadden we zelfs reden om debatteren over de moraal van zelfbenoemde academische onderzoekers die opzettelijk de broncoderepository van de Linux-kernel gebruikten als proeftuin voor wat ze onbeschaamd noemden hypocriet begaat.

Aanvallen op de toeleveringsketen van software hebben doorgaans betrekking op giftige, gevaarlijke of anderszins opzettelijk gewijzigde inhoud die uw netwerk of uw ontwikkelteam indirect infecteert, in tegenstelling tot een directe hack waarbij aanvallers uw netwerk binnendringen en een frontale aanval uitvoeren.

Supply chain-aanvallen worden vaak geheel onbewust doorgegeven door een van uw leveranciers van producten en diensten, die mogelijk zelf de ongeoorloofde wijzigingen van iemand stroomopwaarts van hen hebben overgenomen, enzovoort.

MEER INFORMATIE OVER SUPPLY CHAIN-AANVALLEN

Klik en sleep op de onderstaande geluidsgolven om naar een willekeurig punt in de podcast te gaan.
Ook luister direct op Soundcloud, of lees een volledig transcript.


Onethisch misschien, maar soms niet crimineel

Zoals we hierboven vermeldden, komen dit soort problemen in de toeleveringsketen echter niet altijd voort uit criminele bedoelingen, ook al kunnen ze uiteindelijk als onethisch (of infantiel, of slecht doordacht, of een combinatie daarvan) worden beoordeeld.

We hebben het al genoemd hypocriet begaat, die bedoeld waren om ons er allemaal aan te herinneren dat het mogelijk is om kwaadaardige achterdeurcode te injecteren onder het mom van twee of meer wijzigingen die op zichzelf geen beveiligingslekken introduceren, maar wel een kwetsbaarheid creëren wanneer ze worden gecombineerd.

En we linkten naar het verhaal van een "onderzoeker" die ons er zo graag aan wilde herinneren hoe gemakkelijk het is om verraderlijke softwarepakketten te maken die hij opzettelijk heeft geüpload bijna 4000 van hen in een aanhoudende uitbarsting van "behulpzaamheid".

Zoals we destijds suggereerden, lijken beide 'experts' - de huichelaars en de overloader - het egoïstische motto te hebben aangenomen dat een baan die het waard is om te doen de moeite waard is overdrijven...

...waardoor enorme hoeveelheden onnodig werk worden gecreëerd voor andere onschuldige vrijwilligers in respectievelijk de Linux- en Python-gemeenschappen.

Kleuren en Faker gaan schurkenstaten

Deze keer is de oprichter van twee populaire JavaScript-coderingsmodules bekend als: colors.js en faker.js heeft twee iets andere roet in het eten gegooid.

kleuren is een kleine en eenvoudige toolkit die u helpt gekleurde tekst toe te voegen aan uw console-uitvoer, vaak om de informatie interessanter te maken om naar te kijken en gemakkelijker te lezen.

Toen we bijvoorbeeld onze Log4Shell – De film video hebben we onlangs een vleugje kleur toegevoegd aan de uitvoer van onze nagemaakte LDAP-server om het gemakkelijker te maken om inkomende verzoeken te volgen, met behulp van ANSI-besturingsreeksen in de terminaluitvoer om groene en rode markeringen toe te voegen om successen en mislukkingen aan te duiden:

Spaarzaam gebruik van groene en rode terminalmarkeringen voor visuele aantrekkingskracht en duidelijkheid.

Helaas voor colors.js gebruikers, de oprichter van het project, hebben, nadat ze sinds 2019 geen updates meer hebben gepubliceerd, plotseling nieuwe code toegevoegd om het releasenummer van te gebruiken 1.4.0 naar de ietwat ongebruikelijke versie-ID van 1.4.4-liberty-2.

Blijkbaar beu, omdat hij nooit de financiële erkenning kreeg die hij voelde te verdienen van de vele mensen die zijn werk gebruikten, vernielde de oprichter zijn eigen code door een oneindige lus als deze toe te voegen:

/* remove this line after testing */
let am = require('../lib/custom/american');
am();
for (let i = 666; i < Infinity; i++) { if (i % 333) { // console.log('testing'.zalgo.rainbow) } console.log('testing testing testing testing testing testing testing'.zalgo)
}

De lus aan het einde van deze code drukt de tekst af testing testing ... testing keer op keer, na het toepassen van een functie genaamd zalgo aan.

Zalgoificatie

Zalgoificatie, als je er nog nooit van hebt gehoord, is een manier om gewone Romeinse karakters er raar en betekenisloos uit te laten zien door ze te bezaaien met accenten, cedilles, umlauts en andere zogenaamde diakritische tekens – een beetje zoals je band een naam geven Motörhead in plaats van motorhead, maar zonder de beperking om slechts een enkel extra symbool toe te voegen.

Tekst van Zalgoed is niet alleen zinloos, maar belast ook vaak de onderliggende tekstweergavesoftware die het probeert op te stellen en op te stellen voor weergave.

Een menselijke kalligraaf zou terugdeinzen als hem werd gevraagd om elk mogelijk accent aan elke letter in een woord toe te voegen, wetende dat het helemaal geen zin zou hebben.

Maar een computergestuurde componist zal gewoon proberen te gehoorzamen door alle markeringen die je vraagt ​​te combineren, waardoor je band Zalgometaal een gestileerde naam zoiets als dit:

Diakritische tekens zijn willekeurig en betekenisloos in de tekst toegevoegd

Een gedenkteken voor Aaron Schwartz

oplichter gebruikers ondervonden een ander soort update, waarbij het project in wezen werd weggevaagd en vervangen door een README bestand vragen “Wat is er echt gebeurd met Aaron Swartz? "

Schwartz, een 'hacktivist' die wordt beschuldigd van federale overtredingen met betrekking tot ongeoorloofde toegang tot academische papers waarvan hij dacht dat die zou moeten niet achter een betaalmuur worden gehouden, pleegde helaas zelfmoord terwijl hij onder de stress stond van het wachten op zijn proces.

Het Faker-project loopt ten einde. Let op de opmerking "eindspel", het ontbreken van broncodebestanden,
en de README herinnerend aan Aaron Schwartz.

Faker was een handige toolkit voor ontwikkelaars die het gemakkelijk maakte om grote hoeveelheden realistische maar verzonnen gegevens te genereren voor kwaliteitsborging, zoals het creëren van 100,000 namen en adressen die u tijdens de ontwikkeling aan uw gebruikersdatabase kon toevoegen.

Nepgegevens zijn een essentieel aspect om een ​​privacyramp te voorkomen terwijl u nog steeds met niet-geteste, onvolledige code werkt, omdat dit betekent dat u geen echte, gevoelige gegevens op ondoordachte (en mogelijk illegale) manieren openbaar maakt.

De auteur van Faker heeft blijkbaar geprobeerd... het project commercialiseren in 2021, maar zonder succes, dus het lijkt erop dat hij nu de code zijn . heeft gekregen staatsgreep.

Dit plan ging blijkbaar nergens over, met weinig geld dat binnenkwam van zakelijke gebruikers.

Aangezien de code al vele jaren is vrijgegeven onder de MIT-licentie – wat in feite betekent dat iedereen het gratis kan gebruiken, zelfs in commerciële, closed-source producten, zolang ze niet beweren het zelf te hebben gemaakt – is er niets houdt bestaande gebruikers tegen om door te gaan met de vorige versie, of zelfs een eerdere versie.

Ze kunnen zelfs hun eigen wijzigingen en verbeteringen aanbrengen als ze dat willen...

...dus het is niet duidelijk wat het uiteindelijke resultaat is van het zo spectaculair vernietigen van het project voor de auteur, aangezien hij niet met terugwerkende kracht de licenties kan herschrijven van gebruikers die het al hebben gedownload en geïmplementeerd.

Wint er iemand of verliezen we allemaal?

Als een benadeelde commentator zei (iemand die vermoedelijk de update in productie heeft genomen zonder te bekijken wat er was veranderd, en als gevolg daarvan een tijdelijke storing had), het is voor niemand echt goed afgelopen:

Is het niet interessant dat het de mensen zonder reputatie zijn die lijken te denken dat reputatie geen waarde heeft?? Aan alle mensen hier die zeggen "we hebben een waardevolle les geleerd over vertrouwen op vrije software"; begrijp dit…

Om me 15 minuten verdriet te bezorgen, hoefde Marak alleen maar zijn eigen reputatie onomkeerbaar te vernietigen.

Aan wiens kant sta jij in een zaak als deze? Laat het ons weten in de reacties hieronder…


Bron: https://nakedsecurity.sophos.com/2022/01/11/javascript-developer-destroys-own-projects-in-supply-chain-lesson/

spot_img

Laatste intelligentie

spot_img