A PyPI katalógia új csomag-azonosító ellenőrzési rendszert vezetett be

A Python csomagok PyPI (Python Package Index) tárolójának fejlesztői bejelentették egy digitális tanúsító mechanizmus támogatásának bevezetését a közzétett csomagok hitelesítéséhez, amely a PGP-aláírásokkal való ellenőrzést váltja fel. A tanúsítás kulcsfontosságú különbsége az, hogy a csomag közzétételét nem a fejlesztő, hanem egy harmadik fél (a csomagkatalógus) igazolja egy külső OpenID Connect szolgáltatón keresztül (például miután ellenőrzik, hogy a közzétett csomag kapcsolódik-e a GitHub vagy GitLab-on található kapcsolódó tárolóhoz).

A tanúsítórendszer kiküszöböli a PGP-aláírásokkal végzett hitelesítés mechanizmusának hátrányait, amelyeket korábban elavultnak nyilvánítottak a PyPI-n. Ezt a megoldást a nyílt PGP-kulcsok fejlesztőkhez való ellenőrzésével kapcsolatos problémák miatt fogadták el — a 2020 óta a PyPI-ben aláírások létrehozásához használt 1069 PGP-kulcsból 29%-uk hiányzott a nagy nyilvános kulcsok között, szervereken a kulcsok 35%-ának megerősítése pedig audit során lehetetlenné vált. Ezzel szemben a megerősített PGP-kulcsok a két származékos fájl mindössze 0,3%-át fedték le.

Az új rendszerben a csomagok aláírásához használt aláírásokat rövid életű efemér kulcsokkal hozzák létre, amelyeket az OpenID Connect szolgáltatók által megerősített jogosultságok alapján generálnak. Az aláírás létrehozásához szükséges kulcsok generálásakor a fejlesztő az OpenID szolgáltatón keresztül azonosítja magát, amely megerősíti a fő projekthez fűződő kapcsolatát. A digitális tanúsításhoz szükséges infrastruktúrát a Sigstore rendszer és az in-toto tanúsítási keretrendszer eszközeivel építették ki.

Az atesztálás előnyei közé tartozik, hogy nincs állandó PGP kulcsokhoz való kötődés — a titkos kulcs elvesztése vagy kompromittálása megrendíti a rá alapozott aláírásokba vetett bizalmat, míg az atesztálás során az aláírás a tokentől függően, a csomag elhelyezésének pillanatában megerősített felhatalmazási kapcsolatot létrehozva jön létre, és összekapcsolja a csomagot az alapértelmezett tárolóval, amelyben a kód található. Például, amikor a GitHub Action-nel készült csomagot publikálják, az atesztálás igazolt és megerősített kapcsolatot határoz meg a PyPI fájl, a tároló, a workflow folyamat és a csomag létrehozásához használt commit hash között.

A PyPI katalógia új csomag-azonosító ellenőrzési rendszert vezetett be

A kulcsok hitelességének nyomon követésére és a lehetséges kompromittálások felderítésére a csomagokat létrehozó projektek és magának a PyPI-nek egy nyilvános központosított naplót alkalmaznak, amely a Merkle fa struktúráját (Merkle Tree) használja a integritás biztosítása és az adatok visszamenőleges torzulásának megakadályozása érdekében, ahol minden ága hitelesíti az összes alatta lévő ágat és csomópontot a fastruktúrájú hash-elés révén.

További megemlítést érdemel, hogy a PyPI katalógusában felfedeztek egy rosszindulatú csomagot, a 'fabrice'-t, amely a hasonló nevű típuscsúsztatással (olyan hasonló nevek létrehozása, amelyek egyetlen karakterben különböznek, például exampl helyett example, djangoo helyett django, pyhton helyett python stb.) rejtőzött el a népszerű 'fabric' könyvtár alatt, amely összesen 201 millió letöltést ért el (7 millió letöltés az elmúlt hónapban). A rosszindulatú csomag 2021 óta észrevétlen maradt, és azóta több mint 37 ezer alkalommal töltötték le.

A 'fabrice' csomag a forráskönyvtár alapvető funkcióit ismételte, és további kódot is tartalmazott, mely a AWS (Amazon Web Services) hozzáférési kulcsok észlelésére és külső gazdákra történő küldésére, háttérprogram telepítésére és bizonyos szkriptek végrehajtására szolgált. A rosszindulatú összetevők aktiválása Linux és Windows rendszeren történt. Linux alatt a rosszindulatú tevékenységgel kapcsolatos fájlokat a ~/.local/bin/vscode könyvtárba töltötték le.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster