Python-pakettide PyPI (Python Package Index) hoidjate meeskond teatas digitaalse akrediteerimise mehhanismi toetuse rakendamisest, et kontrollida avaldatud pakettide autentsust, mis asendab varasema PGP-allkirjadega kontrollimise. Akrediteerimise peamine erinevus seisneb selles, et paketi avaldamine ei toimu arendaja, vaid kolmanda osapoole (pakettide katalooge) poolt pÀrast avaldamise kehtivuse kinnitamist vÀlist jagaja kaudu OpenID Connect (nÀiteks pÀrast kontrollimist, et avaldatav pakett vastab selle seostatavale hoidla GitHubis vÔi GitLabis).
AkrediteerimissĂŒsteem kĂ”rvaldab PGP-allkirjadega verifitseerimise mehhanismi puudused, mis on varasemalt PyPI-s vananenud. See lahendus on vastu vĂ”etud, kuna esines probleeme arendajatele kuuluvate avatud PGP-vĂ”tmete kontrollimisega, mida kasutati digiallkirjade kontrollimiseks â 1069 PGP-vĂ”tmest, mida on alates 2020. aastast PyPI allkirjastamiseks kasutatud, jĂ€i 29% avatud vĂ”tmetest suurtest avalikest registerdest puudulikuks. serverites vĂ”tmete hulgas osutus 35% vĂ”tmetest auditi kĂ€igus kontrollimatuks. Samal ajal katavad kinnitatud 36% PGP-vĂ”titest vaid 0,3% kĂ”igist allkirjastatud failidest.
Uues sĂŒsteemis, mida kasutatakse pakettide kinnitamiseks, luuakse allkirjad lĂŒhikese elueaga ajutiste vĂ”tmete abil, mis genereeritakse OpenID Connect'i pakkujate kinnitatud volituste pĂ”hjal. Key'd, mis on vajalikud digitaalallkirja loomiseks, genereerib arendaja OpenID pakkuja kaudu, kes kinnitab tema seotuse pĂ”hiprojektiga. Digitaalset tĂ”endamist vĂ”imaldav infrastruktuur on ĂŒles ehitatud Sigstore'i sĂŒsteemi ja in-toto auditi raamistikuga.
Atestatatsiooni eeliseks on see, et see ei sĂ”ltu pidevatest PGP-vĂ”tmetest â privaatvĂ”tme kaotus vĂ”i kompromiteerimine hĂ€vitab usalduse sellega loodud allkirjade vastu, samas kui atestatsiooni korral kujundatakse allkiri seose kaudu tokeniga, mis tĂ”endab volitusi paketi avaldamise hetkel ning seob paketi peamise koodirepositooriumiga. NĂ€iteks paketi avaldamisel, mis on ette valmistatud lĂ€bi GitHub Action, mÀÀrab atestatsioon kontrollitava ja kinnitatud seose PyPI-s avaldatud faili, repositooriumi, töövoo protsessi ja commit'i hash'i vahel, mille alusel pakett on sĂŒndinud.

VÔtmete autentimise jÀlgimiseks ja vÔimalike kompromiteerimiste tuvastamiseks kasutatakse pakette vormiva projekti ja PyPI ise jaoks avalikku tsentraliseeritud logi. Andmete muutumatuse ja tagasivaatavate vÀÀrkasutuste eest kaitsmiseks kasutatakse struktureeritud "Merkle puu" (Merkle Tree), kus iga haru kinnitab kÔiki alluvaid harusid ja sÔlmi tÀnu puustruktuursele rÀsimisele.
Seotud on mĂ€rkida, et PyPI kataloogis tuvastati pahavara pakett âfabriceâ, mis peitis end tuntud âfabricâ teegi all, kasutades tĂŒpograafia (sarnaste nimede mÀÀramine, mis erinevad mĂ”ne sĂŒmboli poolest, nĂ€iteks exampl asemel example, djangoo asemel django, pyhton asemel python jne). Sellel tuntud teegil on 201 miljonit allalaadimist (7 miljonit allalaadimist eelmisel kuul). Pahavara pakett jĂ€i mĂ€rkamatuks 2021. aastast ja on sellest ajast saadik alla laaditud rohkem kui 37 000 korda.
Pakett âfabriceâ kordas algteegi pĂ”hiomadusi ning sisaldas tĂ€iendavalt koodi AWS (Amazon Web Services) juurdepÀÀsuvĂ”tmete tuvastamiseks ja edastamiseks vĂ€lisesse hosti, tagaukse installimiseks ning teatud skriptide kĂ€itamiseks. Pahavara komponente aktiveeriti Linuxis ja Windowsis. Linuxis seondusid pahavara aktiivsusega seotud failid kausta ~/.local/bin/vscode.
Allikas: opennet.ru
