Colors.js hack

2022.01.09 éjjel már szembejött a hír, de ma megtapasztaltam. A colors.js npm csomagját, amit node projektek használnak széles körben "támadás" érte. 

A forrásba bejutott egy furcsa dolog, ami végtelen ciklusban küld a kimenetre random karaktereket. Az első pár sorban színesen jelenik meg a LIBERTY szó. A forrás az NPM kezelőbe is eljutott, így minden automatikusan frissülő telepítés megkaphatta. (Csak patch frissítéskor automatikusan települ). Magát a colors.js csomagot nem biztos hogy használja a projekted, de ha valamelyik include-olt csomagod "alcsomagként" használja, akkor implicit bekerül a projektedbe. És le us fut, még ha nincs is benne színezett kimenet.

https://www.theverge.com/2022/1/9/22874949/developer-corrupts-open-sour…

Hozzászólások

Tanulság, ahelyett, hogy "használd a legfrisebbet" módon hivatkozzák be a függőséget egy projektben, legyen explicit megadva egy adott verzió. És tudatosan léptetve.
Esetleg az sem árt, ha van mirror a projektben használt libekről reprodukálhatóság miatt, hogy akár offline is buildelhető legyen. (pl akár úgy hogy build után offline módú build tesztel visszaellenőrizni a maven cachet / kimenteni a pakkot az adott maven verzióval együtt.)

Másrészt, ha valahol pénzt keresnek mások munkájára alapozva, akkor néha hívják már meg kávéra azt, akire építenek.

Nem hack volt, hanem a fejlesztője kapott idegösszeroppanást és e módot választotta az önkifejezésre. Hasonló sorsra jutott a faker.js lib is. Kissé zavaros a történet, de az biztos, hogy a karbantartónak professzionális segítségre van szüksége, remélhetőleg megkapja.

Elsőre én is ezt hittem, majd kicsit utána olvastam és ekkor kezdett nagyon furcsává válni a történet. Kezdve egy tavalyi hírrel, hogy a tisztelt karbantartó NY-i lakos bombát próbált otthon készíteni, amivel felgyújtotta a lakását. Ezután kért segítséget twitteren, majd mintha a GoDaddy-től kapott volna szponzorációt. Hogy ezzel mi lett hosszútávon, az bizonytalan.

A libeket MIT licenc alatt adta ki, azaz nem volt kötelező értük fizetni. Mehetett volna azon az úton is, hogy duál licenc alatt adja ki őket és a cégeknek fizetős. De MIT-val ne várjon ilyet.

Ha beleállsz az opensource világba, akkor vállalod, hogy teszel valamit a közjóért (sic!). Pontosabban a munkát, amit megcsinálnál, közzéteszed, hátha másnak is jó. Ha az elején érzed, hogy ezért illene fizetni, akkor nem publikálod.

Nem olyan egyszerű pénzt csinálni valamiből, amit nem akarsz ingyen adni, nem csak egy választóvonal van közte. De a public github-ot fel lehet fogni CV-ként is, nézzék meg hogy kódolok, miket csináltam. Erre is jó a public.

Szerintem a srác is utólag jött rá, hogy sokan használják. A használók pedig inkább megcsinálják maguk, ha pénzbe került volna. Itt is van egy szakadék.

Sajat repo-ja, elhiszed neki hogy hiteles. De igazabol a nagy, production ready repoknak hiszed el hogy csmak olyanokat rantanak be, ami hiteles.

Minel tobb repoja van valakinek annal hitelesebb (?) de annal nagyobb bajt is tud okozni. Mint a rozsaszin kutyas kölök, akinek 1000 repoja van es szinte minden projektbe be van rantva. Nala van a digitalis atombomba inditotaskaja. Kiveve ha vannak tesztek es npm ci --production kapcsolo.

edit: https://github.com/sindresorhus

ki az, aki automatikus frissít? szépen dolgozzon mindenki a lock fájl alapján. és a frissítéssel megbízott kollléga frissítsen és teszteljen. ha jó, mehet a lock file update

4 és fél éve csak vim-et használok. elsősorban azért, mert még nem jöttem rá, hogy kell kilépni belőle.

Szerkesztve: 2022. 01. 17., h – 09:56

Ez volt már?

We're a group of engineers who were using Faker in prod when the main package was deleted. We have eight maintainers currently....

What has the team done so far?

1. Created a GitHub org [repository] for the new Faker package under @faker-js/faker.
2. Put together a team of eight maintainers.
3. Released all previous versions of Faker at @faker-js/faker on npm.
4. Released the Version 6 Alpha
5. Almost completed migrating to TypeScript so that DefinitelyTyped no longer needs to maintain its external @types/faker package.
6. Created a public Twitter account for communicating with the community.
7. Released the first official Faker documentation website....

Linkek:

trey @ gépház

Újabb NPM szennyeződés

A múltkori colors.js elszennyzés miatt már bosszankodtam egy sort (folyamatos console.log-ot generált az elégedetlen programozó vélemény kinyilvánítása), most van egy újabb. Feltalálták a protestware kifejezést, ami valami odaállás egy "nagy ügy" érdekében. Erre csináltak egy package-et is, ami fájlokat hoz létre - főleg a desktopon - valami "WITH-LOVE-FROM-AMERICA" fájlnévvel és unicode szivecskékkel. Az npm csomagnak még unit-test-jei is vannak és jó a code-coverage is. https://www.npmjs.com/package/peacenotwar

Ezt a csomagot pedig beemelte a node-ipc csomag kezelője, támogatásáról biztosítva a protestware fejlesztőjét. Emiatt a node-ipc is fájlokat generál. A node-ipc egy közepesen népszerű csomag, heti 1m letöltéssel, de a github-on 760.000 projektet írnak, ami használja ezt. Jelenleg nem találtam meg backend vagy frontend projektjeinkben, de ha feltűnnének a szivecskés fájlok, akkor az nem egy fájl elkódoló "vírus", hanem a saját termékünk.

A git és az npm ilyenkor tesz lépéseket hogy a zavarodott package-eket visszavonják, addig ne frissítsünk npm-eket. És én továbbra is kiállok az opensource mellett, még ha néha ide is keverednek beteg emberek.

npm i alapbol ugy rakja be a package.json-be hogy patch automatikusan felmegy. Pontosabban npm i eseten a legfrissebb kerul bele, npm ci eseten pedig a lock alapjan ervenyes. Ez igy egyben nem jelentene problemat, de nemely esetben a build folyamat is a kontenerben zajlik, ilyenkor az npm i megy le, majd npm prune. Ez utobbi nem lepteti vissza a csomagokat.