Eine aktuelle Sicherheitslücke im populären Code-Hosting-Dienst GitHub gefährdet potenziell Tausende von Repositories, wie neueste Untersuchungen zeigen. Diese Schwachstelle ermöglicht es Angreifern, eine spezielle Art von Angriff, bekannt als Repo-Manipulation oder „Repojacking“, durchzuführen. Dieser Artikel geht auf die technischen Einzelheiten der Schwachstelle ein und diskutiert ihre möglichen Auswirkungen auf die Open-Source-Gemeinschaft.
Technische Details der Schwachstelle
Die kritische Schwachstelle erlaubt es, eine sogenannte „Race Condition“ während der Repository-Erstellung und der Änderung von Benutzernamen auszunutzen. Laut Elad Rapoport, einem Sicherheitsforscher von Checkmarx, führt der erfolgreiche Missbrauch dieser Schwachstelle dazu, dass Angreifer die Kontrolle über mehr als 4.000 Code-Pakete in verschiedenen Programmiersprachen wie Go, PHP und Swift erlangen können.
Was ist Repo-Manipulation?
Repo-Manipulation ist eine Angriffstechnik, bei der ein Angreifer eine bestimmte Sicherheitsmaßnahme umgeht, die als „Popular Repository Namespace Retirement“ bezeichnet wird. Diese Maßnahme verhindert, dass andere Nutzer ein Repository mit demselben Namen wie ein bereits existierendes Repository mit mehr als 100 Klons erstellen können, wenn dessen Benutzerkonto umbenannt wird. Die Kombination aus Benutzername und Repository-Name wird als „in Ruhestand versetzt“ betrachtet. Durch das Umgehen dieser Sicherheitsmaßnahme könnten Angreifer neue Konten mit demselben Benutzernamen anlegen und schadhaften Code hochladen, was zu Angriffen auf die Softwarelieferkette führen könnte.
Angriffsszenario
Die von Checkmarx vorgestellte Methode nutzt die oben beschriebene Race Condition zwischen der Erstellung eines Repositories und der Änderung eines Benutzernamens. Das Angriffsszenario umfasst folgende Schritte:
- Ein Nutzer, nennen wir ihn „Opfer“, besitzt den Namensraum „Opfer_Benutzer/Repo“.
- „Opfer_Benutzer“ wird zu „Umbenannter_Benutzer“ geändert.
- Das Repository „Opfer_Benutzer/Repo“ wird als „in Ruhestand versetzt“ eingestuft.
- Ein Angreifer erstellt zeitgleich ein Repository namens „Repo“ und ändert seinen Benutzernamen von „Angreifer_Benutzer“ zu „Opfer_Benutzer“.
Dieses Angriffsszenario wird mittels API-Anfragen für die Erstellung des Repositories und für die Änderung des Benutzernamens realisiert.
Aktuelle Lage und Abhilfemaßnahmen
Nach einer verantwortungsbewussten Offenlegung der Schwachstelle am 1. März 2023 hat GitHub die Sicherheitslücke mittlerweile am 1. September 2023 geschlossen. Es ist jedoch wichtig zu betonen, dass die fortwährenden Risiken im Zusammenhang mit dem „Popular Repository Namespace Retirement“-Mechanismus eine anhaltende Herausforderung darstellen.
Fazit
Die Entdeckung dieser neuen Schwachstelle bei GitHub unterstreicht die bestehenden und vielschichtigen Risiken, die mit modernen Code-Hosting-Plattformen und ihren Sicherheitsmechanismen verbunden sind. Entwickler und Unternehmen sind gut beraten, sich kontinuierlich über aktuelle Sicherheitslücken und deren Behebungsmöglichkeiten zu informieren, um ihre Code-Basen und Softwarelieferketten zu schützen.