Im Python-Paket-Repository PyPI (Python Package Index) wurde eine neue, sichere Methode zur Veröffentlichung von Paketen eingeführt. Diese Methode ermöglicht es, auf die Speicherung fester Passwörter und API-Zugriffstoken in externen Systemen, wie z.B. GitHub Actions, zu verzichten. Das neue Authentifizierungsverfahren trägt den Namen „Trusted Publishers“ und soll das Problem der Veröffentlichung bösartiger Updates lösen, die durch die Kompromittierung externer Systeme und den Zugriff von Angreifern auf festgelegte Passwörter oder Token entstehen.
Das neue Authentifizierungsverfahren basiert auf dem Standard OpenID Connect (OIDC), der die Verwendung zeitlich begrenzter Authentifizierungstoken vorsieht. Diese Token werden zwischen externen Diensten und dem PyPI-Katalog ausgetauscht, um die Veröffentlichung eines Pakets zu bestätigen, anstelle der traditionellen Anmeldedaten oder manuell generierter dauerhafter API-Zugriffstoken. Der Mechanismus „Trusted Publishers“ wird bereits für Handler, die in GitHub Actions ausgeführt werden, unterstützt. In Zukunft wird auch die Unterstützung von Trusted Publishers für andere externe Dienste erwartet.
Begleitpakete können auf der Seite von PyPI Vertrauenszeichen für Identifikatoren setzen, die von externen OpenID-Anbietern (IdP, OpenID Connect Identity Provider) bereitgestellt werden, welche der externe Dienst zur Anforderung kurzlebiger Token bei PyPI nutzen wird. Die generierten OpenID Connect-Token bestätigen die Verbindung zwischen dem Projekt und dem Handler, was PyPI ermöglicht, zusätzliche Metadatenverifikationen durchzuführen, z. B. die Überprüfung, dass das veröffentlichte Paket mit einem bestimmten Repository übereinstimmt. Token werden nicht gespeichert, sind an spezifische APIs gebunden und laufen nach einer kurzen Lebensdauer automatisch ab.
Zusätzlich ist der Bericht des Unternehmens Sonatype erwähnenswert, der Informationen über die Entdeckung von 6.933 bösartigen Paketen im Katalog PyPI im März 2023 enthält. Seit 2019 hat die Anzahl der entdeckten bösartigen Pakete in PyPI insgesamt 115.000 überschritten. Der Großteil der bösartigen Pakete tarnt sich als beliebte Bibliotheken durch Typo-Squatting (die Verwendung ähnlicher Namen mit abweichenden Zeichen, zum Beispiel exampl anstelle von example, djangoo anstelle von django, pyhton anstelle von python usw.) — die Angreifer verlassen sich auf unachtsame Benutzer, die Tippfehler machen oder die Unterschiede bei der Suche nach dem Namen nicht bemerken. Die bösartigen Aktivitäten beschränken sich in der Regel darauf, vertrauliche Daten, die auf dem lokalen System durch das Auffinden typischer Dateien mit Passwörtern, Zugangsschlüsseln, Kryptowallets, Token, Sitzungscookies und anderen vertraulichen Informationen gesammelt wurden, zu versenden.
Quelle: opennet.ru
