Tanulmányok / S5
Ki tesz közzé tanúsítványokat a PyPI-on és az npm-en – és ki hagyta abba?
Összefoglaló
A PEP 740 szerinti tanúsítványok (attestations) révén bárki ellenőrizheti, hogy egy PyPI-fájlt egy megnevezett tároló és munkafolyamat (workflow) állított elő. A tanúsítvány hiánya a jellemző. 2026. október 2-án a következőket mértük:
- a 15 000 legtöbbet letöltött PyPI-projekt teljes feltöltési előzményeit (hugovk 2026. október 1-jei listája);
- minden tanúsítvánnyal rendelkező projekt közzétevőjének identitását (PyPI Integrity API);
- egy 1500 csomagból álló npm-mintát.
Az elemezhető 14 995 projektből 11 336 (75,6%) soha nem töltött fel tanúsítvánnyal ellátott fájlt.
Elterjedtség. A 14 995 projektből 3479 legújabb verziójához van tanúsítvány (23,2%), azoknál a projekteknél pedig, amelyek legújabb verzióját 2024. október 1. után töltötték fel először, 31,1%. Rangsorsávok szerint:
| helyezés | tanúsított legújabb verzió |
|---|---|
| 1–100 | 59,0% |
| 10 001–15 000 | 20,3% |
A tanúsított legújabb verzióval rendelkező projektek aránya 4,0%-ról (2024. november vége) 23,2%-ra (2026. szeptember vége) nőtt. A Trail of Bits Are we PEP 740 yet? oldalával annak 360 csomagjából 359-nél egyezik az eredményünk.
Projektek, amelyek abbahagyták. 148 projekt töltött fel tanúsítvánnyal ellátott fájlt, majd később tanúsítvány nélkül adott ki verziót. Közülük 138-nál a pip által telepített verziósorban voltak tanúsítványok, a legújabb verzióhoz viszont egy sincs: ez a valaha tanúsítványt közzétevő 3659 projekt 3,8%-a. Ok szerint:
| ok | projektek |
|---|---|
| eszköz- vagy munkafolyamat-váltás | 96 |
| egyetlen elszigetelt kiadás | 15 |
| a legújabb kiadás után helyreállt | 1 |
| ismeretlen | 26 |
Az eszköz- vagy munkafolyamat-váltások közül 53 esetben a közzétételi munkafolyamat ma már tanúsítási lépés nélkül, uv publish paranccsal tesz közzé. Példák, mindegyik egy-egy committal alátámasztva a paper.md §5.3 szakaszában: fastapi, typer, fastmcp és supabase. A leállás a kiadási eszközök megváltozását jelzi, nem kompromittálódást.
Közzétevő-váltások. Legalább 307 tanúsítvánnyal rendelkező projekt váltott közzétevőt. Abból a 188 váltásból, amelyben a tároló vagy a közzétevő típusa változott:
- 160-at nyilvános adatok megerősítenek;
- 16 összhangban van a projekt saját metaadataival;
- 12 – 5 projektben – nincs megerősítve.
npm. A legnépszerűbb 1000 csomag 30,8%-a tesz közzé eredetigazolást (provenance); a valaha ilyet közzétevő 459 csomagból 4 (0,9%) abbahagyta.
Korábbi munkák. A legközelebbi létező mérés a Trail of Bits nyomkövetője, amely a 360 legnépszerűbb PyPI-csomagot a legújabb kiadásuk alapján vizsgálja. Ez a tanulmány hozzáteszi az eloszlást ezen a 360 csomagon túl, az előzményeket, a leállásokat és azok okait, valamint a közzétevők auditját (paper.md §2).
Automatizálás és felülvizsgálat. A tanulmányt MI-ügynökök végezték, és ők írták a szöveget. Egy független MI-bíráló ellenőrizte (paper.md §4.1).
Hivatkozás erre a tanulmányra
EasyxLab (2026). Who publishes attestations on PyPI and npm — and who stopped? Study S5. EasyByte Hub S. Coop. Mad. https://github.com/easybytehub/easyxlab/tree/main/studies/s5-pypi-attestations@techreport{easyxlab_s5,
title = {Who publishes attestations on PyPI and npm — and who stopped?},
author = {{EasyxLab}},
institution = {EasyByte Hub S. Coop. Mad.},
number = {S5},
year = {2026},
url = {https://github.com/easybytehub/easyxlab/tree/main/studies/s5-pypi-attestations}
}