Adresár PyPI implementoval nový systém autentifikácie balíkov

Vývojári Python repozitára balíkov PyPI (Python Package Index) oznámili zavedenie podpory pre digitálny atestačný mechanizmus na overenie pravosti publikovaných balíkov, ktorý nahradil overovanie pomocou PGP podpisov. Kľúčový rozdiel oproti atestácii je v tom, že zverejnenie balíka neoveruje vývojár, ale tretia strana (adresár balíka) po potvrdení správnosti publikácie prostredníctvom externého poskytovateľa OpenID Connect (napríklad po overení, že zverejnený balík zodpovedá jeho pridruženému úložisku na GitHub alebo GitLab).

Systém atestácie rieši nedostatky mechanizmu overovania podpisov PGP, ktorý bol predtým na PyPI zastaraný. Toto rozhodnutie bolo prijaté kvôli problémom s overovaním vlastníctva verejných kľúčov PGP používaných na overovanie digitálnych podpisov. Z 1 069 kľúčov PGP použitých na generovanie podpisov na PyPI od roku 2020 chýbalo 29 % verejných kľúčov v hlavných verejných kľúčoch. servery kľúče a 35 % kľúčov sa počas auditu nepodarilo overiť. Navyše, 36 % overených kľúčov PGP pokrývalo iba 0.3 % všetkých podpísaných súborov.

V novom systéme sa podpisy používané na overenie balíkov vytvárajú pomocou krátkodobých dočasných kľúčov generovaných na základe poverení overených poskytovateľmi OpenID Connect. V momente vygenerovania kľúčov potrebných na vytvorenie digitálneho podpisu sa vývojár identifikuje prostredníctvom poskytovateľa OpenID, čím potvrdí svoje prepojenie s hlavným projektom. Infraštruktúra pre digitálnu certifikáciu je vybudovaná pomocou systému Sigstore a nástrojov In-toto Attestation Framework.

Jednou z výhod atestácie je absencia väzby na trvalé PGP kľúče – strata alebo kompromitácia privátneho kľúča ničí dôveru v podpisy vytvorené na jeho základe, pričom pri atestácii sa podpis tvorí v spojení s tokenom, ktorý potvrdzuje autoritu v čase umiestnenia balíka a spojenie balíka s hlavným úložiskom s kódom. Napríklad pri publikovaní balíka pripraveného prostredníctvom akcie GitHub, atestácia definuje overiteľný a potvrdený vzťah medzi súborom hosteným v PyPI, úložiskom, pracovným tokom a hashom odovzdania, z ktorého je balík generovaný.

Adresár PyPI implementoval nový systém autentifikácie balíkov

Na sledovanie autenticity kľúčov a identifikáciu možných kompromisov sa používa verejný centralizovaný protokol na vytváranie balíkov projektov a samotného PyPI. Na zabezpečenie integrity a ochrany proti poškodeniu dát pri spätnom pohľade využíva štruktúru Merkle Tree (každá vetva overuje všetky základné vetvy). a uzly vďaka stromovému hashovaniu).

Okrem toho si môžeme všimnúť identifikáciu škodlivého balíka „fabrice“ v adresári PyPI, ktorý pomocou typosquattingu (priradenie podobných mien, ktoré sa líšia v jednotlivých znakoch, napr. examplepl namiesto example, djangoo namiesto django, pyhton namiesto python , atď.) bola maskovaná ako populárna knižničná „látka“ s 201 miliónmi stiahnutí (7 miliónov stiahnutí minulý mesiac). Škodlivý balík zostal neodhalený od roku 2021 a odvtedy bol stiahnutý viac ako 37-tisíc krát.

Balík „fabrice“ replikoval základnú funkcionalitu pôvodnej knižnice a navyše obsahoval kód na detekciu a odosielanie kľúčov externým hostiteľom pre prístup k AWS (Amazon Web Services), inštaláciu zadných vrátok a spúšťanie špecifických skriptov. Škodlivé komponenty boli aktivované v Linux и Windows. V Linux Súbory súvisiace so škodlivou aktivitou boli stiahnuté do adresára ~/.local/bin/vscode.

Zdroj: opennet.ru

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