Zephyrnet-Logo

JavaScript-Entwickler zerstört eigene Projekte in Supply Chain „Lektion“

Datum:

Sie haben wahrscheinlich die Nachrichten gesehen, auch wenn Sie sich nicht sicher sind, was passiert ist.

Es sei denn, Sie sind ein JavaScript-Programmierer und verlassen sich auf eines oder beide Module namens faker.js und colors.js.

Wenn Sie Benutzer eines dieser Projekte waren und geneigt sind (oder waren!), alle Aktualisierungen Ihres Quellcodes automatisch zu akzeptieren, ohne Code zu überprüfen oder zu testen ...

…Sie wissen wahrscheinlich genau, was passiert ist und wie sich das auf Sie ausgewirkt hat.

Angriffe auf die Lieferkette

Langjährige Leser von Naked Security kennen das Problem der sogenannten Supply-Chain-Angriffe in Open-Source-Softwarebibliotheken, weil wir bereits über diese Art von Problem bei der Programmierung von Ökosystemen geschrieben haben.

Wir haben über Sicherheitslücken geschrieben, die plötzlich in zahlreichen Programmier-Communitys auftauchen, einschließlich PHP Programmierer, Pythonisten, Ruby Benutzer und NPM Fans.

Letztes Jahr hatten wir sogar Grund dazu die Moral debattieren von selbsternannten akademischen Forschern, die das Quellcode-Repository des Linux-Kernels absichtlich als Testgelände für das verwendeten, was sie schamlos nannten Heuchler begeht.

Angriffe auf die Software-Lieferkette beinhalten normalerweise giftige, gefährliche oder anderweitig absichtlich veränderte Inhalte, die Ihr Netzwerk oder Ihr Entwicklungsteam indirekt infizieren, im Gegensatz zu einem direkten Hack, bei dem Angreifer in Ihr Netzwerk einbrechen und einen Frontalangriff starten.

Angriffe auf die Lieferkette werden oft völlig unwissentlich von einem Ihrer Mitarbeiter weitergegeben Anbieter von Produkten und Dienstleistungen, die möglicherweise selbst die nicht autorisierten Änderungen von jemandem aufgenommen haben, der ihnen vorgelagert ist, und so weiter.

ERFAHREN SIE MEHR ÜBER SUPPLY-CHAIN-ANGRIFFE

Klicken und ziehen Sie auf die Soundwellen unten, um zu einem beliebigen Punkt im Podcast zu springen.
Sie können uns auch direkt zuhören auf Soundcloud, oder eine komplette Transskription lesen.


Unethisch vielleicht, aber manchmal nicht kriminell

Wie bereits erwähnt, entstehen Lieferkettenprobleme dieser Art jedoch nicht immer aus krimineller Absicht, auch wenn sie letztendlich als unethisch (oder infantil oder schlecht durchdacht oder eine Kombination davon) beurteilt werden können.

Wir haben bereits erwähnt Heuchler begeht, die uns alle daran erinnern sollten, dass es möglich ist, bösartigen Backdoor-Code unter dem Deckmantel von zwei oder mehr Änderungen einzuschleusen, die von sich aus keine Sicherheitslücken einführen, aber in Kombination eine Schwachstelle schaffen.

Und wir haben die Geschichte eines „Forschers“ verlinkt, der uns daran erinnern wollte, wie einfach es ist, tückische Softwarepakete zu erstellen, die er absichtlich hochgeladen hat fast 4000 davon in einem anhaltenden Ausbruch von „Hilfsbereitschaft“.

Wie wir damals vermuteten, scheinen beide „Experten“ – die Heuchler und die Überlaster – das selbstsüchtige Motto übernommen zu haben, dass eine lohnende Arbeit wert ist übertreiben...

…und schaffen dadurch Unmengen an unnötiger Arbeit für andere unschuldige Freiwillige in der Linux- bzw. Python-Community.

Farben und Faker werden abtrünnig

Diesmal ist der Gründer von zwei beliebten JavaScript-Codierungsmodulen bekannt als colors.js und faker.js hat zwei leicht unterschiedliche Schraubenschlüssel ins Werk geworfen.

Farben ist ein kleines und einfaches Toolkit, mit dem Sie farbigen Text in Ihre Konsolenausgabe einfügen können, oft um die Informationen interessanter und leichter lesbar zu machen.

Zum Beispiel, als wir unsere Log4Shell – Der Film Video vor kurzem haben wir der Ausgabe unseres nachgebildeten LDAP-Servers einen Farbtupfer hinzugefügt, um die Verfolgung eingehender Anfragen zu erleichtern, indem wir ANSI-Kontrollsequenzen in der Terminalausgabe verwenden, um grüne und rote Markierungen hinzuzufügen, um Erfolge und Misserfolge anzuzeigen:

Sparsamer Einsatz von grünen und roten Anschlussmarkierungen für optische Attraktivität und Übersichtlichkeit.

Leider für colors.js Benutzer, der Gründer des Projekts, fügte, nachdem er seit 2019 keine Updates mehr veröffentlicht hatte, plötzlich einen neuen Code hinzu, um die Release-Nummer von zu nehmen 1.4.0 zur etwas ungewöhnlichen Versionskennung von 1.4.4-liberty-2.

Der Gründer hatte es anscheinend satt, von den vielen Leuten, die seine Arbeit verwendeten, nie die finanzielle Anerkennung zu bekommen, die er seiner Meinung nach verdiente.

/* 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)
}

Die Schleife am Ende dieses Codes druckt den Text testing testing ... testing immer und immer wieder, nachdem eine Funktion namens . angewendet wurde zalgo verbunden.

Zalgoifizierung

Zalgoifizierung, falls Sie noch nie davon gehört haben, ist eine Möglichkeit, normale römische Zeichen seltsam und bedeutungslos aussehen zu lassen, indem Sie sie mit Akzenten, Zedillen, Umlauten und anderen sogenannten . übersäten diakritische Zeichen – ein bisschen wie die Benennung deiner Band Motörhead statt Motörhead, jedoch ohne die Einschränkung, nur ein einziges zusätzliches Symbol hinzuzufügen.

Zalgoed-Text ist nicht nur bedeutungslos, sondern belastet oft auch die zugrunde liegende Text-Rendering-Software, die versucht, ihn zu komponieren und für die Anzeige bereitzustellen.

Ein menschlicher Kalligraph würde sich davor scheuen, jedem Buchstaben eines Wortes jeden möglichen Akzent hinzuzufügen, da er wusste, dass es überhaupt keinen Sinn machen würde.

Aber ein computergestützter Compositor wird einfach versuchen, dem zu entsprechen, indem er alle gewünschten Markierungen kombiniert und Ihrer Band gibt Zalgometall ein stilisierter Name etwa so:

Diakritische Zeichen werden zufällig und bedeutungslos im gesamten Text hinzugefügt

Ein Denkmal für Aaron Schwartz

Schwindler Benutzer erlebten eine andere Art von Update, wobei das Projekt im Wesentlichen ausgelöscht und durch ein ersetzt wurde README Datei fragen „Was ist wirklich passiert mit Aaron Swartz? "

Schwartz, ein „Hacktivist“, der wegen Bundesvergehen in Bezug auf den unbefugten Zugriff auf wissenschaftliche Arbeiten angeklagt ist, von denen er dachte, dass sie es sollten nicht hinter einer Paywall gehalten werden, hat sich leider umgebracht, während er unter dem Stress auf seinen Prozess wartete.

Das Faker-Projekt geht zu Ende. Beachten Sie den Kommentar „endgame“, das Fehlen von Quellcode-Dateien,
und die README in Erinnerung an Aaron Schwartz.

Faker war ein praktisches Toolkit für Entwickler, das es einfach machte, große Mengen realistischer, aber erfundener Daten zur Qualitätssicherung zu generieren, wie zum Beispiel das Erstellen von 100,000 Namen und Adressen, die Sie während der Entwicklung Ihrer Benutzerdatenbank hinzufügen konnten.

Gefälschte Daten sind ein wichtiger Aspekt, um eine Datenschutzkatastrophe zu vermeiden, während Sie noch mit ungetestetem, unvollständigem Code arbeiten, da dies bedeutet, dass Sie keine echten, sensiblen Daten auf unbedachte (und möglicherweise illegale) Weise preisgeben.

Der Autor von Faker hat es anscheinend versucht das Projekt kommerzialisieren im Laufe des Jahres 2021, aber ohne Erfolg, also sieht es so aus, als hätte er den Code jetzt mit seinem Gnadenstoß.

Dieser Plan ging anscheinend nirgendwo hin, da nur wenige Mittel von Unternehmensbenutzern kamen.

Da der Code seit vielen Jahren unter der MIT-Lizenz veröffentlicht wird – was im Grunde bedeutet, dass jeder ihn kostenlos verwenden kann, auch in kommerziellen Closed-Source-Produkten, solange er nicht behauptet, ihn selbst erstellt zu haben – gibt es nichts, was bestehende Benutzer daran hindert, mit der vorherigen Version oder sogar einer früheren Version fortzufahren.

Sie können sogar nach Belieben eigene Modifikationen und Verbesserungen vornehmen…

… es ist also nicht klar, was das Endergebnis einer so spektakulären Vernichtung des Projekts für den Autor sein wird, da er die Lizenzen von Benutzern, die es bereits heruntergeladen und bereitgestellt haben, nicht nachträglich neu schreiben kann.

Gewinnt jemand oder verlieren wir alle?

Als ein gekränkter Kommentator sagte (jemand, der das Update vermutlich in Produktion genommen hat, ohne zu überprüfen, was sich geändert hatte, und der infolgedessen einen vorübergehenden Ausfall erlitt), hat es für niemanden wirklich gut geendet:

Ist es nicht interessant, dass die Leute ohne Reputation denken, dass Reputation keinen Wert hat?? An alle Leute hier, die sagen: „Wir haben eine wertvolle Lektion über das Vertrauen in freier Software gelernt“; verstehe das…

Um mir 15 Minuten Kummer zu bereiten, musste Marak nur seinen eigenen Ruf irreversibel zerstören.

Auf wessen Seite stehen Sie in so einem Fall? Lass es uns in den Kommentaren unten wissen…


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

spot_img

Neueste Intelligenz

spot_img

Chat mit uns

Hallo! Wie kann ich dir helfen?