Napad na NPM, ki vam omogoča ugotavljanje prisotnosti paketov v zasebnih repozitorijih

V NPM je bila ugotovljena napaka, ki vam omogoča ugotavljanje obstoja paketov v zasebnih repozitorijih. Težavo povzročajo različni odzivni časi pri zahtevanju obstoječega in neobstoječega paketa s strani tretje osebe, ki nima dostopa do repozitorija. Če ni dostopa do nobenega paketa v zasebnih repozitorijih, strežnik registry.npmjs.org vrne napako s kodo "404", če pa paket z zahtevanim imenom obstaja, se napaka izda z opazno zamudo. Napadalec lahko uporabi to funkcijo za ugotavljanje prisotnosti paketa tako, da poišče imena paketov iz slovarjev.

Določanje imen paketov v zasebnih repozitorijih bo morda potrebno za izvedbo napada z mešanjem odvisnosti, ki manipulira s presečiščem imen odvisnosti v javnih in notranjih repozitorijih. Če napadalec ve, kateri notranji paketi NPM so v repozitorijih podjetja, lahko pakete z istimi imeni in novejšimi številkami različic postavi v javno repozitorij NPM. Če pri gradnji notranje knjižnice v nastavitvah niso izrecno povezane s svojim repozitorijem, bo upravitelj paketov npm obravnaval javno repozitorij kot prioriteto in prenesel paket, ki ga je pripravil napadalec.

GitHub je bil marca obveščen o težavi, vendar ni želel dodati zaščite pred napadom, pri čemer se je skliceval na arhitekturne omejitve. Podjetjem, ki uporabljajo zasebne repozitorije, svetujemo, da redno preverjajo prekrivajoča se imena v javnem repozitoriju ali v njihovem imenu ustvarijo škrbine z imeni, ki podvajajo imena paketov v zasebnih repozitorijih, tako da napadalci ne morejo postaviti svojih paketov s prekrivajočimi se imeni.

Vir: opennet.ru

Dodaj komentar