In de Python-pakkettenrepository PyPI (Python Package Index) is het mogelijk om gebruik te maken van een nieuwe beveiligde methode voor het publiceren van pakketten. Deze methode maakt het mogelijk om zonder het opslaan van vastgestelde wachtwoorden en toegangstokens voor de API op externe systemen (zoals GitHub Actions) te werken. De nieuwe authenticatiemethode wordt ‘Trusted Publishers’ genoemd en is bedoeld om het probleem van de publicatie van kwaadaardige updates aan te pakken, die voortkomen uit de compromittering van externe systemen en het verkrijgen door aanvallers van vooraf bepaalde wachtwoorden of tokens.
De nieuwe authenticatiemethode is gebaseerd op de OpenID Connect (OIDC) standaard, die het gebruik van tijdelijke authenticatietokens omvat. Deze tokens worden uitgewisseld tussen externe services en de PyPI-catalogus ter bevestiging van de publicatieoperatie in plaats van het gebruik van traditionele inloggegevens of handmatig gegenereerde permanente toegangstokens voor de API. De mogelijkheid om het ‘Trusted Publishers’-mechanisme toe te passen, is al gerealiseerd voor handlers die worden uitgevoerd in GitHub Actions. In de toekomst wordt verwacht dat Trusted Publishers ook voor andere externe services zal worden ondersteund.
Begeleide pakketten kunnen aan de PyPI-zijde een vertrouwensstatus geven aan de identificaties die door externe OpenID-aanbieders (IdP, OpenID Connect Identity Provider) worden verstrekt. Deze externe service zal deze identificaties gebruiken om bij PyPI tijdelijke tokens aan te vragen. De gegenereerde OpenID Connect-tokens bevestigen de relatie tussen het project en de handler, waardoor PyPI in staat is om aanvullende verificatie van metadata uit te voeren, bijvoorbeeld om te controleren of het gepubliceerde pakket overeenkomt met een bepaalde repository. Tokens worden niet opgeslagen, zijn gekoppeld aan specifieke API's en vervallen automatisch na een korte levensduur.
Daarnaast kan het rapport van Sonatype worden opgemerkt, waarin informatie wordt gegeven over de identificatie van 6933 kwaadaardige pakketten in de PyPI-catalogus in maart 2023. Sinds 2019 is het aantal geïdentificeerde kwaadaardige pakketten in PyPI meer dan 115.000. De meeste kwaadaardige pakketten verbergen zich achter populaire bibliotheken door gebruik te maken van type-swapping (door soortgelijke namen te creëren die verschillen in enkele symbolen, zoals exampl in plaats van example, djangoo in plaats van django, pyhton in plaats van python, enzovoort) — aanvallers hopen op onoplettende gebruikers die een typefout maken of de verschillen in naam niet opmerken tijdens het zoeken. Kwaadaardige acties leiden meestal tot het verzenden van vertrouwelijke gegevens die op het lokale systeem zijn gevonden, verkregen door het identificeren van typische bestanden met wachtwoorden, toegangssleutels, cryptovaluta-portemonnees, tokens, sessie-Cookie's en andere vertrouwelijke informatie.
Bron: opennet.ru
