Mii de proiecte abandonate din Python Package Index (PyPI) ar putea fi deturnate pentru a răspândi malware și a provoca atacuri asupra software supply chain-ului. Aceasta este concluzia unui raport realizat de cercetătorii JFrog, care au descoperit o vulnerabilitate ce permite atacatorilor să reînregistreze pachetele șterse și să introducă cod malițios.
TL;DR
- Vulnerabilitate descoperită în PyPI permite reînregistrarea proiectelor șterse.
- Atacatorii pot introduce malware în pachetele reînregistrate.
- 20.000 de pachete sunt la risc de deturnare.
- Riscul major este atacul asupra software supply chain.
- Consultanță pentru protecție: atenție la actualizări de pachete și scanare riguroasă.
Vulnerabilitatea PyPI
PyPI, un depozit major pentru proiectele open source Python, conține mii de pachete create de diferiți dezvoltatori. O problemă majoră descoperită de cercetătorii JFrog este capacitatea atacatorilor de a reînregistra un pachet șters sub același nume.
“Din păcate, odată ce un proiect popular este șters, atacatorii pot deturna cu ușurință același nume de pachet și, ulterior, infecta orice utilizator care încearcă să actualizeze acel pachet la cea mai recentă versiune sau să-l reinstaleze de la zero”, au subliniat Andrey Polkovnychenko și Brian Moussalli în raport.
Exemple de atacuri
Un caz concret a avut loc pe 30 martie când noul proprietar al pachetului ‘pingdomv3’ a eliberat o actualizare aparent benignă, urmată pe 12 aprilie de o actualizare care includea malware. Pachetul a fost apoi șters de către PyPI după ce a fost notificat.
Acest tip de atac, denumit de JFrog Revival Hijack, poate exploata 22.000 de pachete existente. Aceste pachete pot conduce la zeci de mii de descărcări malițioase.
Riscuri și măsuri de protecție
Dacă un dezvoltator șterge un proiect, acest lucru nu elimină numele pachetului din PyPI. În schimb, numele devine disponibil imediat pentru altcineva. Atacatorii pot reînregistra pachetul, introduce cod malițios și spera ca dezvoltatorii să descarce și să includă pachetul compromis într-o aplicație legitimă. “Este o armă extrem de puternică pentru atacatori,” conform raportului.
Pentru a ameliora riscul, JFrog a creat un cont PyPI numit ‘security holding’, unde cele mai descărcate pachete abandonate au fost transferate. Conținutul folderelor originale a fost înlocuit cu pachete goale.
Protejați-vă proiectele
Autorii articolului recomandă liderilor din securitate să avertizeze echipele că o nouă versiune a unui pachet poate include cod malițios, chiar dacă versiunea anterioară era sigură. Este important să scaneze sau să inspecteze ultima versiune a pachetului înainte de actualizare.
În plus, JFrog recomandă actualizarea unui pachet doar după ce versiunea respectivă a fost disponibilă public pentru cel puțin 14 zile, deoarece majoritatea tentativelor de deturnare sunt descoperite în acest interval de timp.
Prin înțelegerea acestei vulnerabilități și prin monitorizarea atentă a pachetelor utilizate, organizațiile pot reduce riscul de a deveni victime ale atacurilor asupra software supply chain.