Actorii de amenințare utilizează un atac numit „Revival Hijack”, în care înregistrează noi proiecte PyPi folosind numele pachetelor șterse anterior pentru a efectua atacuri asupra lanțului de aprovizionare.
Tehnica „ar putea fi folosită pentru a prelua controlul a 22.000 de pachete existente PyPI și ulterior ar putea duce la sute de mii de descărcări de pachete malitioase”, spun cercetătorii.
Atacul este posibil deoarece PyPI pune imediat la dispoziție pentru înregistrare numele proiectelor Python șterse.
Dezvoltatorii care decid să șteargă un proiect din PyPI primesc doar o avertizare cu privire la consecințele potențiale, inclusiv scenariul de atac Revival Hijack.
Potrivit cercetătorilor de la JFrog, o platformă de lanț de aprovizionare a software-ului, există peste 22.000 de pachete șterse pe PyPI care sunt vulnerabile la atacul Revival Hijack, iar unele dintre ele sunt destul de populare.
JFrog spune că media lunară a pachetelor șterse pe PyPI este de 309, indicând un flux constant de noi oportunități pentru atacatori.
În mijlocul lunii aprilie, JFrog a observat că Revival Hijack a fost folosit în sălbăticie, când un actor de amenințare a vizat „pingdomv3” – o implementare a serviciului de monitorizare a site-ului Pingdom API.
Pachetul a fost șters la data de 30 martie, dar un nou dezvoltator a preluat numele și a publicat o actualizare în aceeași zi, indicând că atacatorii știau despre problemă.
Într-o actualizare ulterioară, pachetul a inclus un troian Python care a fost obfuscat folosind Base64 și a vizat medii Jenkins CI/CD.
La trei luni după aceea, JFrog a observat că pachetele din depozitul lor aveau aproape 200.000 de descărcări din scripturi automate și erori de tastare ale utilizatorilor.
Cazul „Revival Hijack” este mult mai periculos decât atacurile obișnuite de tip typosquatting pe PyPI, deoarece utilizatorii care descarcă o actualizare pentru proiectele lor selectate nu fac o greșeală.
Pentru a limita amenințarea, utilizatorii și organizațiile pot folosi fixarea pachetelor pentru a rămâne la versiuni specificate, considerate de încredere, pentru a verifica integritatea pachetului, a audita conținutul său și a fi atenți la modificările de proprietate ale pachetului sau la activitatea de actualizare atipică.
Leave a Reply