Zhvilluesit e depozitës së paketave Python, PyPI (Python Package Index), njoftuan implementimin e mbështetjes për mekanizmin e certifikimit digjital për verifikimin e autencitetit të paketave të publikuara, i cili zëvendësoi verifikimin duke përdorur nënshkrime PGP. Dallimi kryesor i certifikimit është se publikimi i paketës nuk e vërtetohet nga zhvilluesi, por nga një palë e tretë (katalogu i paketave) pas konfirmimit të saktësisë së publikimit përmes një ofruesi të jashtëm OpenID Connect (p.sh., pas verifikimit se paketa e publikuar ka lidhje me depozitën e saj në GitHub ose GitLab).
Sistemi i certifikimit eliminoi mangĂ«sitĂ« qĂ« ishin tĂ« pranishme nĂ« mekanizmin e verifikimit me nĂ«nshkrimet PGP, i cili mĂ« parĂ« ishte shpallur i papĂ«rdorshĂ«m nĂ« PyPI. Ky vendim u mor pĂ«r shkak tĂ« problemeve me verifikimin e pronĂ«sisĂ« tĂ« zhvilluesve tĂ« çelĂ«save tĂ« hapur PGP, tĂ« pĂ«rdorur pĂ«r verifikimin e nĂ«nshkrimeve digjitale â nga 1069 çelĂ«sa PGP qĂ« janĂ« pĂ«rdorur qĂ« nga viti 2020 pĂ«r formimin e nĂ«nshkrimeve nĂ« PyPI, 29% e çelĂ«save tĂ« hapur mungonin nĂ« publik tĂ« njohur. serverĂ« Ă Keys, ndĂ«rsa 35% e keysve dĂ«shtuan tĂ« konfirmohen gjatĂ« auditit. NdĂ«rkohĂ«, 36% e konfirmuara tĂ« keysve PGP mbulonin vetĂ«m 0.3% tĂ« tĂ« gjitha skedarĂ«ve tĂ« nĂ«nshkruar.
Në sistemin e ri, nënshkrimet e përdorura për të vërtetuar paketat krijohen duke përdorur çelësa efemerë me jetëshkurtër, të gjeneruar në bazë të autorizimeve të konfirmuara nga ofruesit OpenID Connect. Në momentin e gjenerimit të çelësave të nevojshëm për krijimin e nënshkrimit digjital, zhvilluesi identifikon veten përmes ofruesit OpenID, i cili konfirmon lidhjen e tij me projektin kryesor. Infrastrukturën për vërtetimin digjital e krijon sistemi Sigstore dhe mjetet e in-toto Attestation Framework.
NjĂ« nga pĂ«rfitimet e verifikimit Ă«shtĂ« mungesa e lidhjes me çelĂ«sat PGP tĂ« pĂ«rhershĂ«m â humbja ose komprometimi i çelĂ«sit privat shkatĂ«rron besimin nĂ« firmosjet e krijuara mbi tĂ«, ndĂ«rsa me verifikimin, firma formohet nĂ« lidhje me token qĂ« konfirmon autorizimin nĂ« momentin e publikimit tĂ« paketĂ«s dhe lidhjen e paketĂ«s me depozitĂ«n kryesore me kod. PĂ«r shembull, kur publikohet njĂ« paketĂ« e pĂ«rgatitur pĂ«rmes GitHub Action, verifikimi pĂ«rcakton njĂ« lidhje tĂ« verifikueshme dhe tĂ« konfirmuar midis skedarit tĂ« publikuar nĂ« PyPI, depozitĂ«s, procesit tĂ« punĂ«s dhe hash-it tĂ« komitetit mbi tĂ« cilin Ă«shtĂ« formuar paketa.

Për të gjurmuar autenticitetin e çelësave dhe për të identifikuar komprometimet e mundshme, logu publik i centralizuar përdoret për të formuar paketat e projekteve dhe llogarinë e PyPI. Për të siguruar integritetin dhe mbrojtjen ndaj deformimit të të dhënave pas datës, është e angazhuar struktura 'pemë Merkle' (Merkle Tree, çdo degë verifikon të gjitha degët dhe nyjat poshtë saj falë heshit të strukturës pemore).
Një tjetër gjë që mund të theksohet është identifikimi në katalogun PyPI i një paciore të dëmshme «fabrice», e cila përmes type squatting (përcaktimi i emrave të ngjashëm, të ndryshuar nga simbole të veçanta, për shembull, exampl në vend të example, djangoo në vend të django, pyhton në vend të python etj.) maskohej si një bibliotekë e njohur «fabric», që ka 201 milion shkarkime (7 milion shkarkime në muajin e kaluar). Paketa e dëmshme kishte mbetur e pazbuluar që nga viti 2021 dhe që atëherë ishte shkarkuar më shumë se 37 mijë herë.
Paketa «fabrice» përsëritej funksionalitetin bazë të bibliotekës fillestare dhe gjithashtu përfshinte kod për zbërthimin dhe dërgimin në hoste të jashtme të çelësave për qasje në AWS (Amazon Web Services), instalimin e një backdoor dhe ekzekutimin e skripteve të caktuara. Aktivizimi i komponentëve të dëmshëm ndodhte në Linux dhe Windows. Në Linux, skedarët e lidhur me aktivitetin e dëmshëm ngarkoheshin në katalogun ~/ .local /bin /vscode.
Burimi: opennet.ru
