Μελέτες / S5
Ποιος δημοσιεύει βεβαιώσεις στο PyPI και στο npm — και ποιος σταμάτησε;
Περίληψη
Οι βεβαιώσεις PEP 740 επιτρέπουν σε οποιονδήποτε να ελέγξει ότι ένα αρχείο του PyPI δημιουργήθηκε από συγκεκριμένο αποθετήριο και συγκεκριμένη ροή εργασιών (workflow). Ο κανόνας είναι να μη δημοσιεύεται βεβαίωση. Μετρήσαμε, στις 2 Οκτωβρίου 2026:
- το πλήρες ιστορικό μεταφορτώσεων των 15.000 έργων του PyPI με τις περισσότερες λήψεις (η λίστα του hugovk της 1ης Οκτωβρίου 2026)·
- την ταυτότητα του εκδότη κάθε έργου με βεβαιώσεις (PyPI Integrity API)·
- ένα δείγμα 1.500 πακέτων του npm.
Από τα 14.995 έργα που μπορέσαμε να αναλύσουμε, τα 11.336 (75,6%) δεν έχουν μεταφορτώσει ποτέ αρχείο με βεβαίωση.
Υιοθέτηση. Η τελευταία έκδοση διαθέτει βεβαίωση σε 3.479 από τα 14.995 έργα (23,2%) και στο 31,1% εκείνων των οποίων η τελευταία έκδοση μεταφορτώθηκε για πρώτη φορά μετά την 1η Οκτωβρίου 2024. Ανά ζώνη κατάταξης:
| θέσεις κατάταξης | τελευταία έκδοση με βεβαίωση |
|---|---|
| 1–100 | 59,0% |
| 10.001–15.000 | 20,3% |
Τα έργα των οποίων η τελευταία έκδοση διαθέτει βεβαίωση αυξήθηκαν από 4,0% (τέλη Νοεμβρίου 2024) σε 23,2% (τέλη Σεπτεμβρίου 2026). Συμφωνούμε με το Are we PEP 740 yet? της Trail of Bits σε 359 από τα 360 πακέτα του.
Έργα που σταμάτησαν. 148 έργα μεταφόρτωσαν αρχείο με βεβαίωση και αργότερα κυκλοφόρησαν έκδοση χωρίς βεβαίωση. Σε 138 από αυτά, η σειρά εκδόσεων που εγκαθιστά το pip είχε βεβαιώσεις και η τελευταία της έκδοση δεν έχει καμία: πρόκειται για το 3,8% των 3.659 έργων που δημοσίευσαν ποτέ βεβαιώσεις. Ανά αιτία:
| αιτία | έργα |
|---|---|
| αλλαγή εργαλείου ή ροής εργασιών | 96 |
| μία μεμονωμένη έκδοση | 15 |
| αποκαταστάθηκε μετά την τελευταία έκδοση | 1 |
| άγνωστη | 26 |
Σε 53 από τις αλλαγές εργαλείου ή ροής εργασιών, η ροή εργασιών δημοσίευσης εκτελεί πλέον uv publish χωρίς βήμα βεβαίωσης. Παραδείγματα, το καθένα τεκμηριωμένο με ένα commit στο paper.md §5.3: fastapi, typer, fastmcp και supabase. Η διακοπή είναι αλλαγή στα εργαλεία κυκλοφορίας εκδόσεων, όχι ένδειξη παραβίασης της ασφάλειας.
Αλλαγές εκδότη. Τουλάχιστον 307 έργα με βεβαιώσεις άλλαξαν εκδότη. Από τις 188 αλλαγές με μετάβαση σε άλλο αποθετήριο ή σε άλλο είδος εκδότη:
- 160 επιβεβαιώνονται από δημόσια δεδομένα·
- 16 συνάδουν με τα μεταδεδομένα του ίδιου του έργου·
- 12, σε 5 έργα, δεν επιβεβαιώνονται.
npm. Το 30,8% των 1.000 κορυφαίων πακέτων δημοσιεύει δηλώσεις προέλευσης (provenance)· 4 από τα 459 πακέτα που το έκαναν κάποτε (0,9%) σταμάτησαν.
Προηγούμενη εργασία. Η πλησιέστερη υπάρχουσα μέτρηση είναι ο ιχνηλάτης της Trail of Bits, που καλύπτει τα 360 κορυφαία πακέτα του PyPI με βάση την τελευταία τους έκδοση. Η παρούσα μελέτη προσθέτει την κατανομή πέρα από αυτά τα 360, το ιστορικό, τις διακοπές και τις αιτίες τους, καθώς και τον έλεγχο των εκδοτών (paper.md §2).
Αυτοματοποίηση και αξιολόγηση. Πράκτορες ΤΝ εκτέλεσαν τη μελέτη και έγραψαν το κείμενο. Ένας ανεξάρτητος αξιολογητής ΤΝ το έλεγξε (paper.md §4.1).
Παραπομπή σε αυτή τη μελέτη
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}
}