Sårbarhed, der gjorde det muligt at frigive opdateringer for enhver pakke i NPM-repositoriet.

GitHub har afsløret oplysninger om to hændelser i infrastrukturen for NPM-pakkeopbevaringen. Den 2. november informerede eksterne sikkerhedsforskere (Kajetan Grzybowski og Maciej Piechota) i forbindelse med Bug Bounty-programmet om en sårbarhed i NPM-opbevaringen, der gør det muligt at offentliggøre en ny version af enhver pakke ved at bruge en konto, der ikke er autoriseret til at udføre sådanne opdateringer.

Sårbarheden blev forårsaget af mangelfuld kontrol af de beføjelser, der var i mikrotjenesterne, der behandlede forespørgsler til NPM. Autorisationstjenesten udførte kontrol af adgangsrettighederne til pakker baseret på de data, der blev sendt med forespørgslen, men en anden tjeneste, der opdaterede opbevaringen, bestemte, hvilken pakke der skulle offentliggøres baseret på metadataindholdet i den uploadede pakke. På den måde kunne en angriber anmode om offentliggørelse af en opdatering til sin pakke, som han havde adgang til, men angive oplysninger om en anden pakke i selve pakken, som så endte med at blive opdateret.

Problemet blev løst seks timer efter opdagelsen af sårbarheden, men sårbarheden var til stede i NPM i længere tid, end telemetrilogfilerne dækker. GitHub hævder, at der ikke er registreret spor af angreb med denne sårbarhed siden september 2020, men der er ingen garanti for, at problemet ikke er blevet udnyttet tidligere.

Den anden hændelse fandt sted den 26. oktober. Under teknisk arbejde med databasen for tjenesten replicate.npmjs.com blev der opdaget tilgængelighed af fortrolige oplysninger i en database, der var tilgængelig for eksterne forespørgsler, som afslørede navne på interne pakker, der blev nævnt i ændringsloggen. Oplysninger om sådanne navne kan bruges til at udføre angreb på afhængigheder i interne projekter (i februar gav et sådant angreb mulighed for at køre kode på servere PayPal, Microsoft, Apple, Netflix, Uber og yderligere 30 virksomheder).

Derudover, på grund af den stigende forekomst af krænkelser af store projekters repository og spredning af skadelig kode gennem kompromitterede udviklerkonti, har GitHub truffet beslutning om at indføre obligatorisk tofaktorautentificering. Ændringen træder i kraft i første kvartal af 2022 og vil gælde for vedligeholdere og administratorer af de mest populære pakker. Derudover rapporteres der om opgradering af infrastrukturen, hvor automatiseret overvågning og analyse af nye versioner af pakker vil blive implementeret for tidligt at opdage skadelige ændringer.

Lad os minde om, at ifølge en undersøgelse fra 2020 bruger kun 9,27 % af paketvedligeholdere tofaktorautentificering til at beskytte adgangen, og i 13,37 % af tilfældene forsøgte udviklerne at genbruge kompromitterede adgangskoder, der fremgår af kendte lækager. Under kontrollen af sikre adgangskoder lykkedes det at få adgang til 12 % af kontiene i NPM (13 % af pakkerne) på grund af brugen af forudsigelige og triviale adgangskoder som "123456". Blandt de problematiske var der 4 brugeraccounts fra Top20 de mest populære pakker, 13 brugeraccounts, hvis pakker blev downloadet mere end 50 millioner gange om måneden, 40 med mere end 10 millioner downloads om måneden, og 282 med mere end 1 million downloads om måneden. I betragtning af download af moduler via afhængighedskæder kunne kompromittering af usikre konti ramme op til 52 % af alle moduler i NPM.

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