Uvođenje dvofaktorske autentifikacije u PyPI dovelo je do incidenta s uklanjanjem popularnog paketa

Programeri PyPI Python Package Repository objavili su plan za prijelaz na obaveznu dvofaktorsku autentifikaciju za kritične pakete. Važnost je određena brojem preuzimanja, a promjena će se primijeniti na račune održavatelja i vlasnika projekata povezanih s 1% najboljih paketa u 6 mjeseci po preuzimanjima. S obzirom da PyPI repozitorij trenutno uključuje više od 350 tisuća paketa, dvofaktorska autentifikacija će se primijeniti na približno 3500 paketa. Pripremljena je posebna stranica za provjeru je li račun uključen u popis. Točan datum uključivanja obvezne dvofaktorske autentifikacije još nije određen, očekuje se da će se to dogoditi u narednim mjesecima.

Za razliku od prelaska na projekte dvofaktorske autentifikacije RubyGems, NPM i GitHub, PyPI će u početku implementirati shemu koja podrazumijeva poželjnu upotrebu hardverskog tokena s pristupnim ključevima. Veća sigurnost spominje se kao razlog za preporučenu upotrebu tokena i protokola WebAuthn u usporedbi s generiranjem jednokratnih zaporki (mogućnost korištenja TOTP-a umjesto tokena bit će dostupna kao opcija).

Tokeni se mogu dobiti besplatno - Google je sponzorirao inicijativu i za projekt izdvojio 4000 ključeva Titana. Svaki održavatelj može podnijeti zahtjev za dva besplatna USB-C ili USB-A tokena. Drugi token šalje se kao rezerva u slučaju da se glavni token pokvari ili izgubi, kako bi se smanjio rizik od gubitka pristupa repozitoriju i spasili programeri od prolaska kroz težak postupak oporavka pristupa.

Nažalost, tokene je moguće slati samo u Austriju, Belgiju, Kanadu, Francusku, Njemačku, Italiju, Japan, Španjolsku, Švicarsku, UK i SAD. Pratnja iz drugih zemalja može samostalno kupiti tokene usklađene s FIDO U2F, kao što su tokeni Yubikey i Thetis. Alternativno, također je moguće koristiti aplikacije za autentifikaciju temeljene na jednokratnoj lozinci koje podržavaju TOTP protokol, kao što su Authy, Google Authenticator i FreeOTP, umjesto tokena.

Inicijativa nije prošla bez incidenata. Autor paketa Atomicwrites, koji ima 6 milijuna preuzimanja mjesečno i 38 milijuna u 6 mjeseci, nije htio prijeći na dvofaktorsku autentifikaciju te je pokušao resetirati brojač preuzimanja kako bi svoj paket isključio s liste kritičnih. Za resetiranje prvo je uklonio paket, a zatim preuzeo novu verziju. Očekivalo se da će takva manipulacija samo resetirati brojač, ali na iznenađenje programera, sve stare verzije također su uklonjene iz repozitorija, što je dovelo do problema za projekte ovisne o biblioteci, koje su neki programeri usporedili s incidentom koji je proizašao iz uklanjanja paketa lijeve pločice u NPM-u.

Problem je pogoršan činjenicom da nakon uklanjanja autor atomicwritea nije mogao preuzeti stare verzije koje su vraćene tek sljedeći dan nakon intervencije administratora PyPI. Nakon incidenta, autor paketa odlučio je prestati razvijati atomicwrites i obustaviti paket. Kao razlog se navodi to što on projekt razvija kao hobi u svoje slobodno vrijeme i dodatni zahtjevi koji kompliciraju posao nisu vrijedni vremena utrošenog na besplatno održavanje paketa s tolikom popularnosti. Autor atomicwrites tvrdi da bi radije samo napisao kod za zabavu, a dodatnu zaštitu od napadača možete preuzeti kada platite za to.

Knjižnica atomicwrites sadrži oko 200 redaka koda i pruža funkcije za atomsko pisanje datoteka. Kao zamjenu možete koristiti uobičajene pozive os.replace i os.rename (operacija se svodi na pisanje u datoteku s privremenim nazivom i preimenovanje u ciljnu datoteku kada bude spremna).

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster