Hyökkäys NPM:ää vastaan, jonka avulla voit määrittää pakettien olemassaolon yksityisissä arkistoissa

NPM:ssä on havaittu virhe, jonka avulla voit havaita suljetuissa arkistoissa olevien pakettien olemassaolon. Ongelma johtuu erilaisista vastausajoista pyydettäessä olemassa olevaa ja ei-olemassa olevaa pakettia kolmannelta osapuolelta, jolla ei ole pääsyä tietovarastoon. Jos yksityisissä arkistoissa ei ole pääsyä millekään paketille, registry.npmjs.org-palvelin palauttaa virheen koodilla "404", mutta jos pyydetynniminen paketti on olemassa, virhe annetaan huomattavalla viiveellä. Hyökkääjä voi käyttää tätä ominaisuutta määrittääkseen paketin olemassaolon etsimällä pakettien nimiä sanakirjojen avulla.

Pakettien nimien määrittäminen yksityisissä arkistoissa saattaa olla tarpeen riippuvuussekoitushyökkäyksen suorittamiseksi, joka manipuloi riippuvuusnimien leikkauskohtaa julkisissa ja sisäisissä arkistoissa. Tietäen, mitä sisäisiä NPM-paketteja on yrityksen tietovarastoja, hyökkääjä voi sijoittaa paketteja, joilla on sama nimi ja uudempi versionumero julkiseen NPM-tietovarastoon. Jos kokoonpanon aikana sisäisiä kirjastoja ei ole erikseen linkitetty arkistoonsa asetuksissa, npm-paketinhallinta pitää julkista arkistoa korkeampana prioriteettina ja lataa hyökkääjän valmisteleman paketin.

GitHubille ilmoitettiin ongelmasta maaliskuussa, mutta hän kieltäytyi lisäämästä suojaa hyökkäystä vastaan ​​vedoten arkkitehtonisiin rajoituksiin. Yksityisiä tietovarastoja käyttäviä yrityksiä suositellaan säännöllisesti tarkistamaan päällekkäisten nimien esiintyminen julkisessa arkistossa tai luomaan niiden puolesta nimiä, jotka toistavat yksityisissä arkistoissa olevien pakettien nimiä, jotta hyökkääjät eivät voi sijoittaa pakettejaan päällekkäin nimillä.

Lähde: opennet.ru

Lisää kommentti