Zranitelnost, která umožnila vydat aktualizaci pro jakýkoli balíček v repozitáři NPM

Společnost GitHub zveřejnila informace o dvou incidentech v infrastruktuře repozitáře balíčků NPM. Dne 2. listopadu informovali externí bezpečnostní výzkumníci (Kajetan Grzybowski a Maciej Piechota) v rámci programu Bug Bounty o přítomnosti zranitelnosti v repozitáři NPM, která umožňuje publikovat novou verzi jakéhokoli balíčku pomocí svého účtu, který není autorizován k provádění takových aktualizací.

Zranitelnost byla způsobena nesprávným ověřením oprávnění v kódu mikroslužeb, které zpracovávají požadavky na NPM. Autentizační služba prováděla kontrolu přístupových práv k balíčkům na základě dat předávaných v požadavku, ale jiná služba, která nahrává aktualizace do repozitáře, určovala balíček k publikaci na základě obsahu metadat v nahrávaném balíčku. Útočník tak mohl požadovat publikaci aktualizace pro svůj balíček, ke kterému má přístup, ale uvést v samotném balíčku informace o jiném balíčku, který by byl nakonec aktualizován.

Problém byl odstraněn 6 hodin po zveřejnění informací o zranitelnosti, ale zranitelnost byla přítomna v NPM déle, než pokrývají protokoly s telemetrií. GitHub tvrdí, že stopy po útocích využívající tuto zranitelnost od září 2020 nebyly zaznamenány, ale není zaručeno, že problém nebyl zneužit dříve.

Druhý incident nastal 26. října. Při technických pracích s databází služby replicate.npmjs.com byla zjištěna přítomnost důvěrných dat v databázi dostupné pro externí dotazy, která odhalila informace o názvech interních balíčků, které byly zmíněny v logu změn. Informace o podobných názvech mohou být použity k provedení útoků na závislosti ve vnitřních projektech (v únoru tento typ útoku umožnil provést kód na PayPal, Microsoft, Apple, Netflix, Uber a dalších 30 společností). serverech PayPal, Microsoft, Apple, Netflix, Uber a dalších 30 společností).

Kromě toho, vzhledem k rostoucímu počtu případů převzetí repozitářů velkých projektů a šíření škodlivého kódu prostřednictvím kompromitace účtů vývojářů, společnost GitHub se rozhodla zavést povinnou dvoufaktorovou autentizaci. Změna vstoupí v platnost v prvním čtvrtletí roku 2022 a bude se vztahovat na správce a administrátory balíčků zahrnutých v seznamu nejpopulárnějších. Dále se oznamuje modernizace infrastruktury, ve které bude zaveden automatizovaný monitoring a analýza nových verzí balíčků pro včasné odhalení škodlivých změn.

Připomínáme, že podle výzkumu provedeného v roce 2020 pouze 9,27 % správců balíčků používá dvoufaktorovou autentizaci pro ochranu přístupu, a v 13,37 % případů při registraci nových účtů se vývojáři pokoušeli znovu použít kompromitované hesla, která se objevují v známých únikách hesel. Při prověření spolehlivosti použitých hesel se podařilo získat přístup k 12 % účtů v NPM (13 % balíčků) z důvodu použití předvídatelných a triviálních hesel, jako je „123456“. Mezi problémovými účty se ocitlo 4 účty uživatelů z Top20 nejpopulárnějších balíčků, 13 účtů, jejichž balíčky byly stahovány více než 50 milionůkrát měsíčně, 40 — více než 10 milionů stažení měsíčně a 282 s více než 1 milionem stažení měsíčně. Vzhledem k načítání modulů v řetězci závislostí mohla kompromitace nespolehlivých účtů zasáhnout celkově až 52 % všech modulů v NPM.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster