GitHub: Log-in-Details von 100k npm-Konten gestohlen
Wie GitHub aktuell bekanntgab, konnten Angreifer mit Hilfe gestohlener OAuth-App-Tokens die Anmeldedaten von etwa 100.000 npm-Konten stehlen.
![](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/3/5/5/2/1/6/0/shutterstock_1185914659.jpg-9e1046617d048e48.jpeg)
(Bild: Blackboard/Shutterstock.com)
- Frank-Michael Schlede
Bereits Mitte April hatte das GitHub-Team feststellen müssen, dass es Angreifern gelungen war, mithilfe gestohlener OAuth-App-Tokens, die zuvor an Heroku und Travis CI ausgegeben worden waren, Zugang zur npm-Produktionsinfrastruktur zu erlangen. Nun hat GitHub mitgeteilt, dass die Eindringlinge bei der Attacke Zugriff auf die Daten von etwa 100.000 npm-Konten erlangen konnten. Sie sind dabei laut GitHub-Blogeintrag erfolgreich in die privaten Repositories einer Reihe von Organisationen eingedrungen und konnten dort offenbar auch Daten exfiltrieren.
Welche Daten wie gestohlen wurden
GitHub hat den Angriff am 12. April 2022 festgestellt und drei Tage später – am 15. April – bekannt gemacht. In einem Blog-Beitrag schildert Greg Ose, Senior Director für das Product Security Engineering bei GitHub, wie die Eindringlinge vorgegangen sind und was bei der Attacke gestohlen wurde. Die Angreifer erweiterten nach dem Eindringen ihren Zugriff mit einem kompromittierten AWS-Zugangsschlüssel. Den Schlüssel hatten sie nach dem Herunterladen mehrerer privater npm-Repositories durch den Einsatz des gestohlenen OAuth-Benutzertokens in der Anfangsphase des Angriffs erhalten. Mithilfe des Schlüssels griffen sie auf die npm-Infrastruktur zu und konnten folgende Daten vom Cloud-Speicher herunterladen:
- Ein Archiv mit Benutzerinformationen aus dem Jahr 2015. Es enthielt npm-Benutzernamen, Passwort-Hashes und E-Mail-Adressen von etwa 100.000 npm-Nutzer.
- Alle privaten npm-Paketmanifeste und Paketmetadaten ab dem 7. April 2021.
- Eine Reihe von CSV-Dateien mit einem Archiv aller Namen und Versionsnummern (semVer) der veröffentlichten Versionen aller privaten npm-Pakete mit Stand vom 10. April 2022.
- Private Pakete von zwei Organisationen.
Schwache Passwort-Hashes werden nicht mehr eingesetzt
Die Passwort-Hashes in den archivierten Daten wurden noch mit schwachen Hash-Algorithmen wie PBKDF2- oder "salted" SHA1-Algorithmen erzeugt. GitHub verwendet solche schwachen Hash-Algorithmen jedoch seit 2017 nicht mehr für die Speicherung von npm-Benutzerpasswörtern – seit bcrypt in der npm-Registry zum Einsatz kommt. GitHub hat die Passwörter der betroffenen Nutzer zurückgesetzt und ist dabei, Betroffene direkt per E-Mail zu benachrichtigen.
Zudem hatte die npm-Registry seit dem 1. März 2022 die E-Mail-Verifizierung für alle Konten aktiviert, für die keine Zwei-Faktor-Authentifizierung aktiviert ist. Somit ist es laut GitHub durch den zusätzlichen Schutz nicht mehr möglich, ein npm-Konto zu kompromittieren, ohne Zugriff auf die zugehörige E-Mail-Adresse (oder auf den zweiten Faktor der 2FA) zu besitzen.
Weitere Untersuchungen, die Probleme zeigten
Basierend auf der Analyse von Protokollen und Ereignissen sowie der Überprüfung von Paket-Hashes ist GitHub laut den Aussagen im Blog-Beitrag derzeit zuversichtlich, dass die Angreifer keine veröffentlichten Pakete in der Registry verändert oder neue Versionen zu bestehenden Paketen veröffentlicht haben.
Allerdings meldete Ose auch, dass zusätzliche Untersuchungen, die nach seinen Aussagen nichts mit dem OAuth-Token-Angriff zu tun hatten, bei GitHub eine Reihe von Benutzeranmeldeinformationen im Klartext für die npm-Registry ans Tageslicht gebracht hätten, die nach der Integration von npm in die GitHub-Protokollierungssysteme in internen Protokollen aufgezeichnet worden seien. Der Senior Director für das Product Security Engineering bei GitHub bekräftigte allerdings, dass das Problem entschärft wurde und die Protokolle, die die Klartext-Anmeldeinformationen enthielten, bereits vor dem Angriff auf npm bereinigt worden seien.
(fms)