Angreb på NPM, der gør det muligt at bestemme tilstedeværelsen af pakker i private repositoryer

I NPM er der opdaget en bug, der gør det muligt at identificere eksistensen af pakker i lukkede repository'er. Problemet skyldes forskelle i responstider, når en ekstern bruger uden adgang til repository'et anmoder om en eksisterende eller ikke-eksisterende pakke. Hvis der ikke er adgang til nogle pakker i private repository'er, returnerer serveren registry.npmjs.org en fejl med koden '404', men i tilfælde af at pakken med det anmodede navn findes, gives fejlen med en mærkbar forsinkelse. En angriber kan udnytte denne egenskab til at bestemme tilstedeværelsen af en pakke ved at gætte pakke navne fra ordlister.

Identifikation af pakke navne i lukkede repository'er kan være nødvendig for at udføre angreb via afhængigheds-sammensmeltning, som manipulerer krydsningen af afhængigheds navne i offentlige og interne repository'er. Ved at vide, hvilke interne NPM-pakker der findes i virksomhedens repository'er, kan en angriber placere pakker med de samme navne og nyere versionsnumre i den offentlige NPM repository. Hvis de interne biblioteker ikke er klart bundet til deres repository i opsætningen under opbygning, vil pakke administratoren npm betragte det offentlige repository som mere prioriteret og downloade den pakke, som angriberen har forberedt.

GitHub blev underrettet om problemet i marts, men nægtede at tilføje beskyttelse mod angrebet og henviste til arkitektoniske begrænsninger. Virksomheder, der bruger private repository'er, anbefales at tjekke for overlapping navne i den offentlige repository fra tid til anden eller at oprette stubbe under deres eget navn med navne, der gentager navnene på pakkerne i de private repository'er, så ondsindede aktører ikke kan placere deres pakker med overlappende navne.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster