{"id":261357,"date":"2022-01-10T12:22:26","date_gmt":"2022-01-10T11:22:26","guid":{"rendered":"https:\/\/www.borncity.com\/blog\/?p=261357"},"modified":"2022-03-02T15:46:57","modified_gmt":"2022-03-02T14:46:57","slug":"entwickler-sabotieren-open-source-colors-js-und-faker-js-module-in-npm-betrifft-tausende-projekte","status":"publish","type":"post","link":"https:\/\/borncity.com\/blog\/2022\/01\/10\/entwickler-sabotieren-open-source-colors-js-und-faker-js-module-in-npm-betrifft-tausende-projekte\/","title":{"rendered":"Entwickler sabotiert Open Source Module colors.js und faker.js in NPM, betrifft Tausende Projekte"},"content":{"rendered":"<p><img decoding=\"async\" style=\"float: left; margin: 0px 10px 0px 0px; display: inline;\" title=\"Stop - Pixabay\" src=\"https:\/\/borncity.com\/blog\/wp-content\/uploads\/2021\/06\/Stop01.jpg\" alt=\"Stop - Pixabay\" align=\"left\" \/>[<a href=\"https:\/\/borncity.com\/win\/2022\/01\/10\/entwickler-sabotieren-open-source-colors-js-und-faker-js-module-in-npm-betrifft-tausende-projekte\/\" target=\"_blank\" rel=\"noopener\">English<\/a>]Da deutet sich eine gr\u00f6\u00dfere Sache im Bereich Open Source an. Tausende Projekte, die die Open Source-Module <em>colors.js<\/em> und <em>faker.js <\/em>\u00fcber den Paketmanager npm eingebunden haben, sind jetzt in ein fettes Problem gelaufen. Denn die Nutzerschaft, die Software einsetzt, die auf diese Module angewiesen ist, steht vor nicht mehr funktionierenden oder abst\u00fcrzenden Programmen. Die Vermutung, dass die betreffenden NPM-Bibliotheken kompromittiert worden sind, stellte sich als falsch heraus. Vielmehr baute der Entwickler dieser Bibliotheken absichtlich eine Endlosschleife in den Code ein. Der Grund: Frust, dass sich Mega-Konzerne und kommerzielle Nutzer von Open-Source-Projekten an dieser kostenlosen Bibliothek bedienen, ohne etwas zur\u00fcck zu geben.<\/p>\n<p><!--more--><\/p>\n<h2>Kleine Einordnung<\/h2>\n<p><a title=\"https:\/\/de.wikipedia.org\/wiki\/Npm_(Software)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Npm_(Software)\" target=\"_blank\" rel=\"noopener\">npm<\/a> (<i>Node Package Manager<\/i>) ist ein Paketmanager f\u00fcr die JavaScript-Laufzeitumgebung <em>Node.js<\/em>. <i>npm<\/i> wurde 2010 von Isaac Schlueter als Mitarbeiter der kalifornischen Cloud-Plattform-Anbieters Joyent programmiert. \u00dcber npm werden Javascript-Pakete verteilt. Die Wikipedia merkt an, dass die <i>npm Registry, w<\/i>ie jedes Repository daf\u00fcr anf\u00e4llig ist, dass Pakete mit Schadcode eingestellt werden. Werden solche Pakete via Abh\u00e4ngigkeiten in einem Softwareprojekt verwendet, k\u00f6nnen verschiedenste Supply-Chain-Angriffe ausgef\u00fchrt werden. In der Vergangenheit wurden Attacken via Typosquatting und Social Engineering bekannt.<\/p>\n<p>Die <em>colors.js<\/em>-Bibliothek wird allein auf npm \u00fcber 20 Millionen Mal pro Woche heruntergeladen und fast 19.000 Projekte verwenden diese Bibliothek. <em>Faker.js<\/em> wird w\u00f6chentlich \u00fcber 2,8 Millionen Mal auf npm heruntergeladen und hat \u00fcber 2.500 Abh\u00e4ngigkeiten. Da basieren also sehr viele Projekte auf diesen beiden Komponenten.<\/p>\n<h2>Der Entwickler hat die Faxen dicke<\/h2>\n<p>Im November 2020 hatte der Entwickler von <em>colors.js und faker.js<\/em>, der Entwickler Marak Squires, gewarnt, dass er die gro\u00dfen Unternehmen nicht l\u00e4nger mit seiner \"kostenlosen Arbeit\" unterst\u00fctzen werde und dass kommerzielle Unternehmen in Betracht ziehen sollten, entweder die Projekte zu forken oder den Entwickler mit einem sechsstelligen Jahresgehalt zu entsch\u00e4digen.<\/p>\n<h2>&#8230; und nun hat es geknallt<\/h2>\n<p>Hat aber wohl wenig gefruchtet, denn am Wochenende tauchten pl\u00f6tzlich im Web Berichte auf, dass die npm-Bibliotheken, die die beiden genannten JS-Module verwenden, kompromittiert sein k\u00f6nnten. Auf GitHub gibt es f\u00fcr AWS einen <a href=\"https:\/\/github.com\/aws\/aws-cdk\/issues\/18323\" target=\"_blank\" rel=\"noopener\">Issue-Eintrag<\/a>, der sich beklagt, dass beim Einbinden des cdk (Amazon Development Kit) per pnpm in <em>node.js<\/em> 16.3.0 nur noch nachfolgende Ausgabe erfolge:<\/p>\n<p><img decoding=\"async\" title=\"cdk output\" src=\"https:\/\/i.imgur.com\/RfEhXJA.png\" alt=\"cdk output\" \/><\/p>\n<p>Der nachfolgende <a href=\"https:\/\/twitter.com\/s0enke\/status\/1480248975722692617\" target=\"_blank\" rel=\"noopener\">Tweet<\/a> greift dies auf und zeigt auch einen Screenshot der Ausgaben. Dort wird von einem Bug in <em>colors.js<\/em> gesprochen.<\/p>\n<p><a href=\"https:\/\/twitter.com\/s0enke\/status\/1480248975722692617\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" title=\"Bug in colors.js \" src=\"https:\/\/i.imgur.com\/DRWe0Cm.png\" alt=\"Bug in colors.js \" \/><\/a><\/p>\n<p>Die Kollegen von Bleeping Computer weisen in nachfolgendem <a href=\"https:\/\/twitter.com\/BleepinComputer\/status\/1480182019854327808\" target=\"_blank\" rel=\"noopener\">Tweet<\/a> darauf hin, dass es geknallt habe und beschreiben das gesamte Ausma\u00df in <a href=\"https:\/\/www.bleepingcomputer.com\/news\/security\/dev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps\/\" target=\"_blank\" rel=\"noopener\">diesem Beitrag<\/a>.<\/p>\n<p><a href=\"https:\/\/twitter.com\/BleepinComputer\/status\/1480182019854327808\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" title=\"npm bricked\" src=\"https:\/\/i.imgur.com\/PyDlhUx.png\" alt=\"npm bricked\" \/><\/a><\/p>\n<p>Es war kein Hack oder Angriff, sondern der Entwickler Marak Squires hat schlicht ein neues Commit durchgef\u00fchrt und ein american flags-Modul in <em>v1.4.44-liberty-2 <\/em>hinzugef\u00fcgt, welches die Ausgaben erzeugt.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/i.imgur.com\/qRRSTC4.png\" \/><\/p>\n<p>Gleiches passierte f\u00fcr <em>faker.js<\/em> und der Entwickler postete <a href=\"https:\/\/github.com\/Marak\/colors.js\/issues\/285\" target=\"_blank\" rel=\"noopener\">hier<\/a> f\u00fcr <em>colors.js <\/em>den Hinweis \"It's come to our attention that there is a zalgo bug in the v1.4.44-liberty-2 release of colors\", und das man an einer L\u00f6sung arbeite.<\/p>\n<p>Der Grund f\u00fcr diesen Winkelzug seitens des Entwicklers scheint, so Bleeping Computer, eine Vergeltungsma\u00dfnahme gegen Megakonzerne und kommerzielle Nutzer von Open-Source-Projekten zu sein. Diese greifen in gro\u00dfem Umfang auf kostenlose und von der Gemeinschaft betriebene Software zur\u00fcck, geben aber nach Ansicht des Entwicklers nichts an die Gemeinschaft zur\u00fcck.<\/p>\n<p>Die <a href=\"https:\/\/web.archive.org\/web\/20220221084550\/https:\/\/github.com\/Marak\/faker.js\" target=\"_blank\" rel=\"noopener\">README<\/a> f\u00fcr das GitHub-Repository mit der modifizierten <em>faker.js<\/em>-Bibliothek enth\u00e4lt nun den Text \"What really happened with Aaron Swartz?\".<\/p>\n<blockquote><p><a href=\"https:\/\/de.wikipedia.org\/wiki\/Aaron_Swartz\" target=\"_blank\" rel=\"noopener\">Aaron Hillel Swartz<\/a> war ein US-amerikanischer Programmierer, Unternehmer, Autor, Organisator politischer Bewegungen und Hacktivist; bekannt vor allem als Mitgr\u00fcnder von Reddit und f\u00fcr seinen Einsatz gegen Internetzensur. Am 19. Juli 2011 wurde Swartz angeklagt, 4,8 Millionen wissenschaftliche Artikel von dem Zeitschriftenarchiv JSTOR illegal heruntergeladen zu haben. Er wollte diese Dokumente \u00f6ffentlich zug\u00e4nglich machen.<\/p>\n<p>Nachdem Swartz die Daten an JSTOR ausgeh\u00e4ndigt hatte, k\u00fcndigte der Betreiber an, keine zivilrechtlichen Anspr\u00fcche gegen Swartz zu stellen. Der Fall wurde vom Staatsanwalt Stephen Heymann weiterverfolgt (Swartz drohten 35 Jahre Haft). Noch vor Beginn des Gerichtsprozesses, der f\u00fcr April 2013 angesetzt war, beging Swartz, der seit Jahren an Depressionen litt, Suizid.<\/p><\/blockquote>\n<p>GitHub hat das Konto des Entwicklers gesperrt (siehe <a href=\"https:\/\/twitter.com\/marak\/status\/1479200803948830724?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1479200803948830724%7Ctwgr%5E%7Ctwcon%5Es1_&amp;ref_url=https%3A%2F%2Fwww.bleepingcomputer.com%2Fnews%2Fsecurity%2Fdev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps%2F\" target=\"_blank\" rel=\"noopener\">diesen Tweet<\/a> vom 6. Januar 2021) und NPM hat die Bibliotheken auf den vorherigen Stand zur\u00fcckgerollt, so dass die abh\u00e4ngigen Pakete wieder funktional in die Projekte eingebunden werden. Die ganze Aktion war ein Warnschuss und hat eine Diskussion in der Open Source-Szene ausgel\u00f6st. Der Fall zeigt, auf welch wackeligen F\u00fc\u00dfen viele Projekte stehen &#8211; und ein Lieferkettenangriff k\u00f6nnte erneut Schockwellen durch die IT schicken. Im Grunde brauchen wir aber nicht \u00fcber Supply-Chain-Attacks zu diskutieren, denn die Episode zeigt, wie kaputt der gesamte Prozess der Software-Entwicklung ist. Weitere Details k\u00f6nnt ihr bei Bedarf bei den Kollegen <a href=\"https:\/\/www.bleepingcomputer.com\/news\/security\/dev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps\/\" target=\"_blank\" rel=\"noopener\">hier<\/a> nachlesen.<\/p>\n<blockquote><p>Auf Twitter ist inzwischen <a href=\"https:\/\/twitter.com\/zkat__\/status\/1480207003867877379\" target=\"_blank\" rel=\"noopener\">diese Diskussion<\/a> um die Person des Entwicklers entbrannt. Zu diesem Thema kann ich nichts sagen, zumal es wenig Web-Treffer zu den dort aufgeworfenen Stichworten gibt &#8211; im d\u00fcmmsten Fall ist es eine Person gleichen Namens. Ist im Kontext des obigen Artikels auch nicht relevant, da es dort eher um Fragen \"wie halten wir es mit FOSS in Bezug auf Multi-Millionen-Dollar-Firmen, die das kostenlos ausnutzen?\" und \"wie kann ein einzelner Entwickler Tausende node.js-Projekte ans Wackeln bringen?\" geht.<\/p><\/blockquote>\n<p><strong>\u00c4hnliche Artikel:<\/strong><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/2021\/06\/30\/problem-dependency-hijacking-in-der-software-entwickler-microsoft-erneut-betroffen\/\">Problem Dependency Hijacking in der Software-Entwicklung; Microsoft erneut betroffen<\/a><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/2021\/10\/27\/staatliche-hacker-aus-nordkorea-zielen-auf-die-it-supply-chain\/\">Staatliche Hacker aus Nordkorea zielen auf die IT Supply Chain<\/a><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/2021\/04\/18\/codecov-tool-gehackt-entwickler-zugangsdaten-wohl-abgezogen\/\">Codecov-Tool gehackt \u2013 Entwickler-Zugangsdaten wohl abgezogen<\/a><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/2021\/01\/27\/vier-sicherheitsanbieter-besttigen-solarwinds-vorflle\/\">Vier Sicherheitsanbieter best\u00e4tigen SolarWinds-Vorf\u00e4lle<\/a><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/2021\/02\/02\/operation-nightscout-supply-chain-hack-zielt-auf-online-gaming-in-asien\/\">Operation NightScout: Supply-Chain-Hack zielt auf Online-Gaming in Asien<\/a><br \/>\n<a href=\"https:\/\/borncity.com\/blog\/2020\/12\/17\/supply-chain-angriff-auf-vietnams-zertifizierungsstelle\/\">Supply-Chain-Angriff auf Vietnams Zertifizierungsstelle<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[English]Da deutet sich eine gr\u00f6\u00dfere Sache im Bereich Open Source an. Tausende Projekte, die die Open Source-Module colors.js und faker.js \u00fcber den Paketmanager npm eingebunden haben, sind jetzt in ein fettes Problem gelaufen. Denn die Nutzerschaft, die Software einsetzt, die &hellip; <a href=\"https:\/\/borncity.com\/blog\/2022\/01\/10\/entwickler-sabotieren-open-source-colors-js-und-faker-js-module-in-npm-betrifft-tausende-projekte\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7459],"tags":[419,3836],"class_list":["post-261357","post","type-post","status-publish","format-standard","hentry","category-software","tag-bug","tag-software"],"_links":{"self":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/261357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/comments?post=261357"}],"version-history":[{"count":0,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/posts\/261357\/revisions"}],"wp:attachment":[{"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/media?parent=261357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/categories?post=261357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/borncity.com\/blog\/wp-json\/wp\/v2\/tags?post=261357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}