Az NPM elleni támadás, amely lehetővé teszi a csomagok jelenlétének meghatározását a magántárolókban

Hibát azonosítottak az NPM-ben, amely lehetővé teszi a zárt tárolókban lévő csomagok jelenlétének észlelését. A problémát a különböző válaszidők okozzák, amikor egy meglévő és nem létező csomagot kér egy harmadik féltől, aki nem fér hozzá a tárolóhoz. Ha a privát tárolókban egyetlen csomaghoz sem fér hozzá, a registry.npmjs.org szerver hibát ad vissza „404” kóddal, de ha létezik a kért nevű csomag, akkor a hiba észrevehető késéssel jelenik meg. A támadók ezt a szolgáltatást használhatják egy csomag jelenlétének meghatározására úgy, hogy szótárak segítségével keresik a csomagneveket.

A privát lerakatokban lévő csomagnevek meghatározása szükséges lehet egy függőségi keverési támadás végrehajtásához, amely manipulálja a függőségi nevek metszéspontját a nyilvános és belső lerakatokban. Tudva, hogy mely belső NPM-csomagok vannak jelen a vállalati lerakatokban, a támadó az azonos nevű és újabb verziószámú csomagokat elhelyezheti a nyilvános NPM-lerakatban. Ha az összeállítás során a belső könyvtárak nincsenek kifejezetten a tárolójukhoz kapcsolva a beállításokban, az npm csomagkezelő a nyilvános tárolót magasabb prioritásúnak tekinti, és letölti a támadó által készített csomagot.

A GitHubot márciusban értesítették a problémáról, de architekturális korlátokra hivatkozva elutasították a támadás elleni védelmet. A privát adattárakat használó cégeknek azt javasoljuk, hogy rendszeresen ellenőrizzék átfedő nevek megjelenését a nyilvános adattárban, vagy készítsenek csonkokat a nevükben olyan nevekkel, amelyek megismétlik a privát tárolókban lévő csomagok nevét, hogy a támadók ne helyezzék el átfedő névvel a csomagjaikat.

Forrás: opennet.ru

Hozzászólás