Experiment se vytvořením NPM balíčku závislého na všech balíčcích v repozitáři

Jeden z vývojářů JavaScriptových balíčků provedl experiment s vytvářením a umístěním balíčku „everything“ do repozitáře NPM, který pokrývá závislostmi všechny existující balíčky v repozitáři. K realizaci této možnosti je balíček „everything“ přímo závislý na pěti balíčcích „@everything-registry/chunk-N“, které se zase vážou závislostmi na více než 3000 balíčků „sub-chunk-N“, přičemž každý z nich je spojen se 800 existujícími balíčky v repozitáři.

Umístění „everything“ v NPM vedlo k dvěma zajímavým efektům. Za prvé se balíček „everything“ stal jakýmsi nástrojem pro provádění DoS útoků, protože pokus o jeho instalaci vede ke stažení milionů balíčků umístěných v NPM a vyčerpání dostupného diskového prostoru nebo zastavení provádění sestavovacích procesů. Podle statistik byl balíček NPM stažen přibližně 250krát, ale nikdo nebrání tomu, aby byl přidán do závislostí jiného balíčku po hacknutí účtu vývojáře k provedení diverze. Kromě toho se nevědomky útoků staly oběťmi některé služby a nástroje monitorující a kontrolující nové balíčky umístěné v NPM.

Za druhé, publikace balíčku „everything“ fakticky zablokovala možnost odstraňování jakýchkoli balíčků v NPM, které se ocitly na seznamu jeho závislostí. Balíček z NPM může být autorem odstraněn pouze tehdy, pokud ještě není používán v závislostech jiných balíčků, ale po publikace „everything“ byly závislostmi pokryty všechny balíčky v repozitáři. Zajímavé je, že odstranění samotného balíčku „everything“ bylo rovněž zablokováno, protože před 9 lety byl v repozitáři umístěn testovací balíček „everything-else“, ve kterém byla uvedena položka „everything“ v seznamu závislostí. Tím pádem se balíček „everything“ po publikaci ocitl v závislostech jiného balíčku.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster