Zavedenie dvojfaktorovej autentifikácie v PyPI viedlo k incidentu s odstránením populárneho balíka

Vývojári repozitára Python balíkov PyPI zverejnili plán prechodu na povinnú dvojfaktorovú autentifikáciu pre balíky, ktoré spadajú do kategórie kriticky dôležitých. Dôležitosť sa určuje podľa počtu stiahnutí a zmena sa bude uplatňovať na účty správcov a vlastníkov projektov, ktoré súvisia s 1 % balíkov, ktoré vedú v počte stiahnutí za posledných 6 mesiacov. S zohľadnením, že v súčasnosti repozitár PyPI obsahuje viac ako 350 tisíc balíkov, dvojfaktorová autentifikácia sa bude uplatňovať približne na 3500 balíkov. Na overenie, či sa účet nachádza v zozname, bola pripravená špeciálna stránka. Presný dátum zavedenia povinnej dvojfaktorovej autentifikácie zatiaľ nie je určený, predpokladá sa, že k tomu dôjde v najbližších mesiacoch.

Na rozdiel od prechodu na dvojfaktorovú autentifikáciu projektov RubyGems, NPM a GitHub, v PyPI bude spočiatku zavedený systém, ktorý predpokladá preferované použitie hardvérového tokenu s prístupovými kľúčmi. Ako dôvod odporúčaného použitia tokenov a protokolu WebAuthn sa uvádza vyššia bezpečnosť v porovnaní s generovaním jednorazových hesiel (možnosť použitia TOTP namiesto tokenov bude dostupná formou možnosti).

Tokeny bude možné získať zadarmo — spoločnosť Google sa stala sponzorom iniciatívy a vyčlenila pre projekt 4000 kľúčov Titan. Každý správca môže požiadať o bezplatné získanie dvoch tokenov s rozhraním USB-C alebo USB-A. Druhý token sa zasiela ako záložný v prípade poruchy alebo straty hlavného, aby sa minimalizovalo riziko straty prístupu k repozitáru a zbavilo vývojárov nutnosti prechádzať zložitou procedúrou obnovy prístupu.

Žiaľ, tokeny je možné zasielať iba do Rakúska, Belgicka, Kanady, Francúzska, Nemecka, Talianska, Japonska, Španielska, Švajčiarska, Spojeného kráľovstva a USA. Sprievodcovia z iných krajín si môžu zakúpiť kompatibilné s FIDO U2F tokeny, ako sú napríklad tokeny Yubikey a Thetis. Alternatívne sa môže použiť aj aplikácia na autentifikáciu založená na jednorazových heslách, ktorá podporuje protokol TOTP, ako napríklad Authy, Google Authenticator a FreeOTP.

Iniciatíva sa neobišla bez incidentu. Autor balíka Atomicwrites, ktorý má 6 miliónov stiahnutí mesačne a 38 miliónov za 6 mesiacov, sa odmietol prepnúť na dvojfaktorovú autentifikáciu a na vylúčenie svojho balíka zo zoznamu kriticky dôležitých sa pokúsil resetovať počet stiahnutí. Na resetovanie najprv odstránil balík a potom načítal novú verziu. Očakávalo sa, že takáto manipulácia iba resetuje počet, ale na prekvapenie vývojára boli z repozitára odstránené aj všetky staré verzie, čo spôsobilo problémy závislým projektom, ktoré niektorí vývojári porovnali s incidentom, ktorý spôsobil odstránenie balíka left-pad v NPM.

Problém sa zhoršil tým, že po odstránení autor atomicwrites nemohol načítať staré verzie, ktoré sa podarilo obnoviť až nasledujúci deň po zásahu administrátorov PyPI. Po týchto udalostiach sa autor balíka rozhodol ukončiť vývoj atomicwrites a previesť balík do stavu zastaraného. Ako dôvod uvádza, že projekt vyvíja ako hobby vo svojom voľnom čase a dodatočné požiadavky, ktoré komplikujú prácu, nestojí za čas venovaný bezplatnej podpore balíka s takou popularitou. Autor atomicwrites tvrdí, že by radšej jednoducho písal kód pre zábavu a starosti o dodatočnú ochranu pred útokmi možno zveriť niekomu, kto za to platí.

Knižnica atomicwrites obsahuje približne 200 riadkov kódu a ponúka funkcie na atomárne zápisy súborov. Ako náhradu je možné použiť štandardné volania os.replace a os.rename (operácia spočíva v zápise do súboru s dočasným názvom a premenovaní na cieľový súbor po dokončení).

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster