PyPI-kataloget har indført et nyt pakkeautentificeringssystem

Udviklerne af Python-pakke-repositoriet PyPI (Python Package Index) har annonceret implementeringen af støtte til en digital attestationsmekanisme til autenticitet af offentliggjorte pakker, som tidligere blev verificeret ved hjælp af PGP-signaturer. Den væsentligste forskel ved attestation er, at offentliggørelsen af pakken ikke bekræftes af udvikleren, men af en tredje part (pakke-kataloget) efter bekræftelse af gyldigheden af offentliggørelsen gennem en ekstern udbyder af OpenID Connect (for eksempel efter bekræftelse af, at den offentliggjorte pakke er relateret til det tilknyttede repository på GitHub eller GitLab).

Attestation-systemet eliminerer de mangler, der er forbundet med PGP-signaturverifikationsmekanismen, som tidligere blev erklæret forældet i PyPI. Denne beslutning er truffet på grund af problemer med at bekræfte udviklernes ejerskab af de offentlige PGP-nøgler, der blev brugt til at verificere digitale signaturer - ud af 1069 PGP-nøgler, der er anvendt siden 2020 til at danne signaturer i PyPI, manglede 29% af de offentlige nøgler på store offentlige servere nøglelister, og 35% af nøglerne kunne ikke bekræftes under audit. På den anden side dækkede de bekræftede 36% PGP-nøgler kun 0,3% af alle signerede filer.

I det nye system genereres de signaturer, der anvendes til attestation af pakker, med kortvarige, ephemeral nøgler, der genereres baseret på rettigheder bekræftet af udbydere af OpenID Connect. Ved genereringen af de nøgler, der kræves til at skabe en digital signatur, identificerer udvikleren sig selv gennem en OpenID-udbyder, der bekræfter hans forbindelse til hovedprojektet. Infrastruktur til digital attestering er bygget ved hjælp af systemet Sigstore og værktøjet in-toto Attestation Framework.

En af fordelene ved attestation er fraværet af binding til permanente PGP-nøgler — tab eller kompromittering af den private nøgle underminerer tilliden til de underskrifter, der er dannet på grundlag af den, mens underskriften ved attestation dannes i forbindelse med en token, der bekræfter beføjelserne på tidspunktet for upload af pakken og forbindelsen mellem pakken og det primære koderepositorium. For eksempel, ved offentliggørelse af en pakke, der er forberedt via GitHub Action, fastlægger attestation en verifiable og bekræftet forbindelse mellem filen, der uploades på PyPI, repository'et, workflow-processen og commit-hashen, som pakken er dannet ud fra.

PyPI-kataloget har indført et nyt pakkeautentificeringssystem

For at spore ægtheden af nøgler og identificere mulige kompromitteringer anvendes der et offentligt centraliseret log for de pakker, der dannes af projekter og selve PyPI, for at sikre integritet og beskytte mod datamanipulation retroaktivt, hvor Merkle Tree-strukturen anvendes (hvor hver gren bekræfter alle underliggende grene og noder ved hjælp af træ-hashering).

Derudover kan det nævnes, at der blev identificeret en ondsindet pakke kaldet "fabrice" i PyPI-kataloget, der forklædte sig som det populære bibliotek "fabric" gennem typisk spoofing (tildeling af lignende navne, der adskiller sig med enkelte tegn, såsom exampl i stedet for example, djangoo i stedet for django, pyhton i stedet for python osv.), som har haft 201 millioner downloads (7 millioner downloads den sidste måned). Den ondsindede pakke var ubemærket siden 2021 og var siden blevet downloadet mere end 37.000 gange.

Pakke "fabrice" gentagne gang arbejdede på den grundlæggende funktionalitet af det oprindelige bibliotek og indeholdt yderligere kode til at identificere og sende nøgler til adgang til AWS (Amazon Web Services), installere bagdøre og udføre specifikke scripts. Aktivering af de ondsindede komponenter fandt sted på både Linux og Windows. På Linux blev filer relateret til ondsindet aktivitet uploadet til mappen ~/.local/bin/vscode.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster