Haavoittuvuus, joka mahdollisti päivityksen julkaisemisen mille tahansa NPM-tietovaraston paketille

GitHub on paljastanut kaksi tapausta NPM-pakettivarastoinfrastruktuurissaan. Kolmannen osapuolen tietoturvatutkijat (Kajetan Grzybowski ja Maciej Piechota), osana Bug Bounty -ohjelmaa, ilmoittivat 2. marraskuuta NPM-tietovaraston haavoittuvuudesta, jonka avulla voit julkaista uuden version mistä tahansa paketista käyttämällä tiliäsi. jolla ei ole lupaa suorittaa tällaisia ​​päivityksiä.

Haavoittuvuus johtui virheellisistä lupatarkistuksista NPM-pyyntöjä käsittelevien mikropalvelujen koodissa. Valtuutuspalvelu teki paketin käyttöoikeustarkistuksia pyynnössä välitettyjen tietojen perusteella, mutta toinen päivityksen arkistoon ladannut palvelu määritti julkaistavan paketin ladatun paketin metatietosisällön perusteella. Siten hyökkääjä voisi pyytää päivityksen julkaisemista paketilleen, johon hänellä on pääsy, mutta itse paketissa voidaan määrittää tiedot toisesta paketista, joka lopulta päivitetään.

Ongelma korjattiin 6 tuntia haavoittuvuuden ilmoittamisen jälkeen, mutta haavoittuvuus oli NPM:ssä kauemmin kuin telemetrialokit kattavat. GitHub väittää, että tätä haavoittuvuutta käyttävistä hyökkäyksistä ei ole ollut jälkiä syyskuun 2020 jälkeen, mutta ei ole takeita siitä, että ongelmaa ei ole hyödynnetty aiemmin.

Toinen tapaus sattui 26. lokakuuta. Palvelun replicate.npmjs.com tietokannan kanssa tehdyn teknisen työn aikana paljastui luottamuksellisten tietojen olemassaolo ulkoisten pyyntöjen tietokannassa, mikä paljasti tietoja muutoslokissa mainittujen sisäisten pakettien nimistä. Tietoa tällaisista nimistä voidaan käyttää riippuvuushyökkäyksien tekemiseen sisäisiin projekteihin (helmikuussa samanlainen hyökkäys salli koodin suorittamisen PayPalin, Microsoftin, Applen, Netflixin, Uberin ja 30 muun yrityksen palvelimilla).

Lisäksi GitHub on päättänyt ottaa käyttöön pakollisen kaksivaiheisen todennuksen, koska suurien projektien tietovarastot kaapataan yhä useammin ja haitallista koodia mainostetaan vaarantavien kehittäjätilien kautta. Muutos astuu voimaan vuoden 2022 ensimmäisellä neljänneksellä ja koskee suosituimpien pakettien ylläpitäjiä ja ylläpitäjiä. Lisäksi kerrotaan infrastruktuurin modernisoinnista, jossa otetaan käyttöön uusien pakettien versioiden automaattinen seuranta ja analysointi haitallisten muutosten varhaiseen havaitsemiseen.

Muistakaamme, että vuonna 2020 tehdyn tutkimuksen mukaan vain 9.27 % pakettien ylläpitäjistä käyttää kaksivaiheista todennusta pääsyn suojaamiseen, ja 13.37 %:ssa tapauksista uusia tilejä rekisteröidessään kehittäjät yrittivät käyttää uudelleen vaarantuneita salasanoja, jotka ilmestyivät tunnetut salasanavuodot. Salasanan suojaustarkistuksen aikana 12 % NPM-tileistä (13 % paketeista) käytettiin ennakoitavien ja triviaalien salasanojen, kuten "123456", käytön vuoksi. Ongelmallisten joukossa oli 4 käyttäjätiliä Top 20 suosituimman paketin joukosta, 13 tiliä, joilla paketteja ladattiin yli 50 miljoonaa kertaa kuukaudessa, 40 tilillä yli 10 miljoonaa latausta kuukaudessa ja 282 tilillä yli miljoona latausta kuukaudessa. Kun otetaan huomioon moduulien latautuminen riippuvuusketjua pitkin, epäluotettavien tilien vaarantaminen voi vaikuttaa jopa 1 prosenttiin kaikista NPM:n moduuleista.

Lähde: opennet.ru

Lisää kommentti