Chyba, ktorá umožnila vydanie aktualizácie pre ľubovoľný balík v úložisku NPM

GitHub zverejnil dva incidenty vo svojej infraštruktúre úložiska balíkov NPM. 2. novembra bezpečnostní výskumníci tretích strán (Kajetan Grzybowski a Maciej Piechota) v rámci programu Bug Bounty nahlásili prítomnosť zraniteľnosti v úložisku NPM, ktorá vám umožňuje publikovať novú verziu ľubovoľného balíka pomocou vášho účtu, ktorá nie je oprávnená vykonávať takéto aktualizácie.

Zraniteľnosť bola spôsobená nesprávnymi kontrolami povolení v kóde mikroslužieb, ktoré spracúvajú požiadavky na NPM. Autorizačná služba vykonala kontroly povolení balíka na základe údajov odovzdaných v požiadavke, ale iná služba, ktorá odovzdala aktualizáciu do archívu, určila, že balík sa má zverejniť na základe obsahu metadát odovzdaného balíka. Útočník by teda mohol požiadať o zverejnenie aktualizácie pre svoj balík, ku ktorému má prístup, ale v samotnom balíku uviesť informáciu o inom balíku, ktorý by sa prípadne aktualizoval.

Problém bol vyriešený 6 hodín po nahlásení zraniteľnosti, ale zraniteľnosť bola prítomná v NPM dlhšie ako pokrytie telemetrických protokolov. GitHub tvrdí, že od septembra 2020 neboli žiadne stopy útokov využívajúcich túto zraniteľnosť, no neexistuje žiadna záruka, že problém nebol zneužitý už predtým.

K druhému incidentu došlo 26. októbra. Pri technickej práci s databázou služby replicate.npmjs.com bola odhalená prítomnosť dôverných údajov v databáze prístupných externým požiadavkám, ktoré odhalili informácie o názvoch interných balíkov, ktoré boli uvedené v protokole zmien. Informácie o takýchto menách možno použiť na uskutočnenie útokov na závislosť na interných projektoch (vo februári podobný útok umožnil spustenie kódu na serveroch PayPal, Microsoftu, Apple, Netflixu, Uberu a 30 ďalších spoločností).

Navyše, vzhľadom na narastajúci počet prípadov odcudzenia úložísk veľkých projektov a propagácie škodlivého kódu prostredníctvom kompromitujúcich vývojárskych účtov, sa GitHub rozhodol zaviesť povinnú dvojfaktorovú autentifikáciu. Zmena vstúpi do platnosti v prvom štvrťroku 2022 a bude sa týkať správcov a správcov balíkov zahrnutých v zozname najobľúbenejších. Okrem toho sa hovorí o modernizácii infraštruktúry, v rámci ktorej bude zavedené automatizované monitorovanie a analýza nových verzií balíkov pre včasnú detekciu škodlivých zmien.

Pripomeňme si, že podľa štúdie vykonanej v roku 2020 iba 9.27 % správcov balíkov používa dvojfaktorovú autentifikáciu na ochranu prístupu a v 13.37 % prípadov sa vývojári pri registrácii nových účtov pokúsili znova použiť kompromitované heslá, ktoré sa objavili v úniky známych hesiel. Počas kontroly zabezpečenia hesiel bolo sprístupnených 12 % účtov NPM (13 % balíkov) vďaka použitiu predvídateľných a triviálnych hesiel, ako napríklad „123456“. Medzi problémové patrili 4 používateľské účty z Top 20 najobľúbenejších balíčkov, 13 účtov s balíčkami stiahnutými viac ako 50 miliónov za mesiac, 40 s viac ako 10 miliónmi stiahnutí za mesiac a 282 s viac ako 1 miliónom stiahnutí za mesiac. Ak vezmeme do úvahy načítanie modulov pozdĺž reťazca závislostí, kompromitácia nedôveryhodných účtov by mohla ovplyvniť až 52 % všetkých modulov v NPM.

Zdroj: opennet.ru

Pridať komentár