Implementarea autentificării cu două factorii în PyPI a dus la un incident de ștergere a unui pachet popular

Dezvoltatorii depozitului de pachete Python, PyPI, au publicat un plan de trecere la autentificarea cu două factori obligatorie pentru pachetele din categoria critică. Importanța este determinată de numărul de descărcări și modificarea se va aplica conturilor menținatorilor și deținătorilor de proiecte asociate cu 1% din pachetele ce conduc în numărul descărcărilor în ultimele 6 luni. Având în vedere că în prezent depozitul PyPI include mai mult de 350 de mii de pachete, autentificarea cu două factori va fi aplicată pentru aproximativ 3500 de pachete. Pentru a verifica includerea contului în listă, a fost pregătită o pagină specială. Data exactă a introducerii autentificării cu două factori obligatorii nu a fost stabilită încă, estimându-se că aceasta se va întâmpla în următoarele luni.

Spre deosebire de trecerea la autentificarea cu două factori pentru proiectele RubyGems, NPM și GitHub, în PyPI va fi implementat inițial un sistem care preconizează utilizarea dorită a unui token hardware cu chei de acces. Motivul pentru recomandarea utilizării tokenurilor și a protocolului WebAuthn este menționarea unei securități mai ridicate în comparație cu generarea de parole unice (posibilitatea de a utiliza TOTP în loc de tokenuri va fi disponibilă ca opțiune).

Tokenurile vor putea fi obținute gratuit - compania Google a sponsorizat inițiativa și a alocat pentru proiect 4000 de chei Titan. Fiecare menținător poate solicita obținerea gratuită a două tokenuri cu interfață USB-C sau USB-A. Al doilea token este trimis ca rezervă în caz de defectare sau pierdere a primului, pentru a minimiza riscul de pierdere a accesului la depozit și a scuti dezvoltatorii de necesitatea de a trece printr-o procedură complicată de recuperare a accesului.

Din păcate, tokenurile pot fi trimise doar în Austria, Belgia, Canada, Franța, Germania, Italia, Japonia, Spania, Elveția, Regatul Unit și Statele Unite. Menținătorii din alte țări pot achiziționa pe cont propriu tokenuri compatibile cu specificația FIDO U2F, de exemplu, tokenurile Yubikey și Thetis sunt potrivite. Ca alternativă, este disponibilă și opțiunea utilizării aplicațiilor de autentificare bazate pe parole unice, care suportă protocolul TOTP, precum Authy, Google Authenticator și FreeOTP.

Inițiativa nu a fost fără incidente. Autorul pachetului Atomicwrites, care are 6 milioane de descărcări pe lună și 38 de milioane în ultimele 6 luni, nu a dorit să treacă la autentificarea cu două factori și, pentru a-și exclude pachetul din lista celor critice, a încercat să reseteze contorul descărcărilor. Pentru a reseta, a șters întâi pachetul și apoi a încărcat o nouă versiune. Se aștepta ca o astfel de manipulare să reseteze doar contorul, dar, spre surprinderea dezvoltatorului, toate versiunile anterioare au fost șterse din depozit, ceea ce a dus la probleme pentru proiectele dependente de această bibliotecă, pe care unii dezvoltatori le-au comparat cu incidentul rezultat din ștergerea pachetului left-pad din NPM.

Problema s-a agravat deoarece, după ștergere, autorul atomicwrites nu a putut să încarce versiunile anterioare, care au fost restaurate abia în ziua următoare după intervenția administratorilor PyPI. După cele întâmplate, autorul pachetului a decis să oprească dezvoltarea atomicwrites și să-l declare învechit. Ca motiv, acesta a menționat că dezvoltă proiectul ca hobby în timpul liber, iar apariția unor cerințe suplimentare care complică activitatea nu merită timpul depus pentru întreținerea gratuită a unui pachet atât de popular. Autorul atomicwrites susține că ar prefera pur și simplu să scrie cod pentru distracție, iar grija pentru protecția suplimentară împotriva atacurilor cibernetice ar trebui să fie preluată de cei care plătesc pentru asta.

Biblioteca atomicwrites conține aproximativ 200 de linii de cod și oferă funcții pentru scrierea atomică a fișierelor. Ca alternativă, se pot utiliza apelurile standard os.replace și os.rename (operația constă în scrierea într-un fișier cu nume temporar și redenumirea în fișierul țintă după finalizare).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster