npm a extins la toate conturile o măsură de protecție care fusese aplicată inițial doar conturilor cu impact ridicat: după o autentificare reușită folosind un recovery code, contul intră într-un security hold de 72 de ore. În acest interval, utilizatorul se poate autentifica, poate naviga și instala pachete, dar nu poate publica versiuni noi și nu poate efectua alte operațiuni sensibile de securitate.
Printre acțiunile suspendate se numără publicarea pachetelor și crearea de access tokens. Pauza expiră automat, fără ca utilizatorul să deschidă un tichet de suport. GitHub, compania care operează npm, explică măsura prin nevoia de a încetini tentativele de account takeover în care atacatorul a obținut unul dintre codurile de recuperare.
Codurile de recovery sunt concepute ca metodă de rezervă atunci când utilizatorul nu mai are acces la metoda principală de autentificare. Tocmai această funcție le face valoroase pentru atacatori: un cod compromis poate oferi o cale alternativă de intrare într-un cont protejat altfel de 2FA.
Fereastra de 72 de ore schimbă economia atacului. Chiar dacă autentificarea reușește, un atacator nu poate trece imediat la publicarea unei versiuni malițioase sau la emiterea unui token persistent. Proprietarul legitim are astfel timp să observe accesul neobișnuit și să reacționeze înainte ca incidentul să se transforme într-un atac asupra supply chain-ului.
GitHub precizează că utilizatorii care sunt blocați în mod neașteptat de la publicare și nu au folosit recovery code-ul ar trebui să contacteze imediat npm Support. Un astfel de semnal poate indica faptul că altcineva a folosit un cod de recuperare asociat contului.
De ce contează: ecosistemul npm rămâne o țintă atractivă deoarece compromiterea unui singur maintainer poate afecta rapid mii de proiecte dependente. Măsura nu previne compromiterea codului de recovery, dar introduce o barieră temporală exact între accesul inițial și acțiunile cu cel mai mare impact.
Sursa:
GitHub Changelog – npm extends recovery-code security holds to all accounts