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.
Druhý incident sa stal 26. októbra. Počas údržby databázy replicate.npmjs.com boli v externe prístupnej databáze objavené dôverné údaje, ktoré odhalili informácie o názvoch interných balíkov uvedených v denníku zmien. Informácie o takýchto názvoch možno použiť na útok na závislosti v interných projektoch (vo februári podobný útok umožnil spustenie kódu na servery PayPal, Microsoft, Apple, Netflix, Uber 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
