Utvecklarna av Python-paketförrÄdet PyPI (Python Package Index) har meddelat att de har infört stöd för en mekanism för digital certifiering för att verifiera Àktheten av publicerade paket, vilken ersÀtter verifieringen med anvÀndning av PGP-signaturer. En nyckelskillnad med certifiering Àr att paketpubliceringen intygar sig inte av utvecklaren, utan av en tredje part (paketkatalogen) efter bekrÀftelse av publiceringens giltighet via en extern leverantör av OpenID Connect (till exempel efter att ha bekrÀftat att det publicerade paketet motsvarar det associerade förrÄdet pÄ GitHub eller GitLab).
Certifieringssystemet Ă„tgĂ€rdar de brister som var förknippade med mekanismen för verifiering via PGP-signaturer, som tidigare hade deklarerats som förĂ„ldrad i PyPI. Detta beslut togs pĂ„ grund av problemen med att verifiera tillhörigheten av utvecklarnas öppna PGP-nycklar som anvĂ€ndes för att kontrollera digitala signaturer â av 1069 PGP-nycklar som anvĂ€nts sedan 2020 för att bilda signaturer i PyPI, saknades 29% av de öppna nycklarna pĂ„ större offentliga nyckelservrar, och 35% av nycklarna kunde inte bekrĂ€ftas under granskningen. Det bekrĂ€ftade 36% PGP-nycklarna tĂ€ckte endast 0,3% av alla signerade filer. servrar I det nya systemet skapas de signaturer som anvĂ€nds för att bekrĂ€fta paket med hjĂ€lp av kortlivade tillfĂ€lliga nycklar som genereras baserat pĂ„ behörigheter som bekrĂ€ftas av leverantörer av OpenID Connect. Vid genereringen av nycklarna, som krĂ€vs för att skapa den digitala signaturen, identifierar utvecklaren sig genom en OpenID-leverantör som bekrĂ€ftar hans koppling till det huvudsakliga projektet. Infrastrukturen för digital certifiering Ă€r byggd med hjĂ€lp av systemet Sigstore och verktygen in-toto Attestation Framework.
I det nya systemet skapas de signaturer som anvÀnds för att bekrÀfta paket med hjÀlp av kortlivade tillfÀlliga nycklar, vilka genereras utifrÄn rÀttigheter bekrÀftade av OpenID Connect-leverantörer. Vid den tidpunkt nycklarna genereras, som behövs för att skapa den digitala signaturen, identifierar utvecklaren sig via en OpenID-leverantör som bekrÀftar hans koppling till det huvudsakliga projektet. Infrastrukturen för digital certifiering Àr byggd med hjÀlp av systemet Sigstore och in-toto Attestation Framework.
Bland fördelarna med certifieringen nĂ€mns avsaknaden av bindning till permanenta PGP-nycklar â förlust eller kompromiss av privatnyckeln undergrĂ€ver förtroendet för de signerade meddelandena som skapats pĂ„ den, medan i certifieringen skapas signaturen i samband med en token som bekrĂ€ftar befogenheten vid tidpunkten för paketets publicering och kopplingen mellan paketet och det primĂ€ra koden i förvaret. Till exempel, vid publicering av ett paket förberett via GitHub Action, faststĂ€ller certifiering en verifierbar och bekrĂ€ftad koppling mellan filen som publiceras i PyPI, förvaret, arbetsflödet och hash av commit som paketet skapades pĂ„.

För att spÄra Àktheten av nycklar och identifiera möjliga kompromisser anvÀnds en offentlig centraliserad logg för att skapa paket av projekten och PyPI sjÀlv, för att sÀkerstÀlla integritet och skydd mot bakÄtgÄende datamanipulation som involverar strukturen "Merkle-trÀd" (Merkle Tree, dÀr varje gren verifierar alla undre grenar och noder tack vare trÀdformad hashning).
Dessutom kan man notera upptÀckten i katalogen PyPI av det skadliga paketet "fabrice", som genom typesquatting (tilldelning av liknande namn som skiljer sig Ät med enskilda tecken, till exempel, exampl istÀllet för example, djangoo istÀllet för django, pyhton istÀllet för python osv.) maskerade sig som det populÀra biblioteket "fabric", som har 201 miljoner nedladdningar (7 miljoner nedladdningar den senaste mÄnaden). Det skadliga paketet förblev obemÀrkt sedan 2021 och hade sedan dess laddats ner över 37 000 gÄnger.
Paketet "fabrice" replikerade den grundlÀggande funktionaliteten hos det ursprungliga biblioteket och innehöll dessutom kod för att upptÀcka och skicka nycklar för Ätkomst till AWS (Amazon Web Services) till externa vÀrdar, installera en bakdörr och köra vissa skript. Aktiveringen av skadliga komponenter skedde i Linux och Windows. I Linux laddades filer relaterade till den skadliga aktiviteten ner till katalogen ~/.local/bin/vscode.
KĂ€lla: opennet.ru
