Schlüssel-Leaks auf GitHub & wie sie verhindert werden können

29 Mrz 2019

Vor kurzem haben Forscher der North Carolina State University mehr als 100.000 Projekte auf GitHub, die Token, kryptographische Schlüssel und andere vertrauliche Daten enthielten, gefunden, die in offener Form gespeichert worden waren. Insgesamt konnten mehr als eine halbe Million dieser Objekte, von denen mehr als 200.000 einzigartig sind, in der Public Domain gefunden werden. Die betroffenen Token gehörten zu großen Unternehmen wie Google, Amazon MWS, Twitter, Facebook, MailChimp, MailGun, Stripe, Twilio, Square, Braintree und Picatic.

GitHub ist eine bekannte und beliebte Ressource im Bereich der kooperativen Softwareentwicklung. Die Plattform wird verwendet, um Code in Repositories mit offenem oder eingeschränktem Zugriff zu speichern, mit Kollegen zu teilen, sie in Programmtests einzubeziehen oder gebrauchsfertige Open-Source-Entwicklungen zu verwenden. Der Onlinedienst vereinfacht und beschleunigt die Erstellung von Apps und Diensten erheblich, weshalb er vor allem bei Programmierern besonders beliebt ist. Unternehmen, die ihre Software basierend auf Open-Source-Modulen erstellen, verwenden GitHub aktiv und auch Firmen, die Wert auf Transparenz legen, greifen häufig auf die Plattform zurück.

Trotzdem ist immer Vorsicht geboten, wenn Code auf GitHub hochgeladen wird – ein gut gemeinter Rat, den Entwickler nicht immer befolgen.

Welche Daten wurden veröffentlicht?

Die Forscher hatten bei ihrer Untersuchung festgestellt, dass GitHub Blöcke mit frei verfügbarem Code hostet, der Token und Schlüssel enthält, die zur Autorisierung und somit zur Ausführung bestimmter Aktionen im Namen von Nutzern oder Apps ausreichen. Zu diesen unwissentlich freigegebenen Informationen gehörten:

  • Anmeldeinformationen für Administratorkonten auf wichtigen Websites;
  • API-Schlüssel oder -Token, die die Verwendung von In-App-API-Funktionen ermöglichen – eine Reihe von Tools, die der Interaktion zwischen verschiedenen Systemkomponenten, z. B. einem Programm und einer Website dienen;
  • Kryptographische Schlüssel von denen viele zur Authentifizierung anstelle eines Passworts verwendet werden; die Kenntnis eines einzigen Schlüssels reicht aus, um Zugriff auf eine Reihe von Ressourcen zu erhalten, einschließlich privater Netzwerke.

Deshalb stellen geleakte Token und kryptographische Schlüssel eine Gefahr dar

Der nicht autorisierte Zugriff auf Ihre Konten stellt eine ernsthafte Bedrohung für Ihr Unternehmen dar. Warum, erklären wir Ihnen an den folgenden Beispielen.

Eine Möglichkeit, Token zu missbrauchen, die auf GitHub veröffentlicht wurden, ist der Versand von E-Mail-Nachrichten oder die Veröffentlichungen von Beiträgen, die angeblich von dem Unternehmen stammen, das diese Token zur Verfügung gestellt hat. So könnte ein Eindringling beispielsweise Zugriff auf eine Unternehmens-Website oder ein Facebook- oder Twitter-Konto erhalten und dort einen schädlichen Post- oder Phishing-Link platzieren. Da offizielle Webseiten und Konten oftmals als zuverlässige Informationsquellen angesehen werden, ist die Wahrscheinlichkeit groß, dass viele Leser davon ausgehen, dass der Beitrag oder Link vollkommen sicher ist und keine Gefahren birgt.

Darüber hinaus können Cyberkriminelle Ihre Abonnenten-Liste (wenn Sie beispielsweise MailChimp verwenden) zu Phishing-Zwecken verwenden. Wie im vorherigen Szenario hoffen die Kriminellen auch in diesem Fall darauf, dass die Nutzer einer E-Mail vertrauen, die von einem legitimen Unternehmen stammt. Derartige Angriffe können den Ruf eines Unternehmens enorm schädigen und aufgrund der verlorenen Kunden und vor allem der Zeit, die für die Wiederherstellung des normalen Unternehmensbetriebs benötigt wird, großen Schaden anrichten.

Zudem können Cyberkriminelle die kostenpflichtigen Features eines Dienstes – wie  Amazon AWS – auf Ihre Kosten nutzen. So erhielt der Blogger Luke Chadwick beispielsweise eine Nachricht von Amazon, in der ihm mitgeteilt wurde, dass sein Schlüssel öffentlich auf GitHub verfügbar war. Eine Suche führte ihn zu einem alten Projekt, das er aus irgendeinem Grund vergessen hatte zu schließen. Als Chadwick sich in sein Amazon-Konto einloggte, staunte er nicht schlecht, als er sah, dass noch ganze 3.493 US-Dollar zur Zahlung ausstanden. Wie sich herausstellte, hatte ein unbefugter Nutzer den öffentlich verfügbaren Schlüssel in die Hände bekommen und angefangen unter Verwendung von Lukes Konto Kryptowährung zu schürfen. Letztendlich wurden dem Blogger die Kosten von Amazon erstattet. Denken Sie jedoch daran, dass die Geschichte nicht immer so glücklich ausgeht wie in diesem Fall.

So landeten die privaten Daten auf GitHub

Die Analyse der Forschungsergebnisse zeigt, dass nicht nur junge und unerfahrene Programmierer vertrauliche Informationen in der Public Domain vergessen. So wurden beispielsweise Daten, die den Zugriff auf die Website einer großen Regierungseinrichtung bereitstellten, von einem Entwickler mit 10-jähriger Erfolgsgeschichte auf GitHub veröffentlicht.

Token und Schlüssel aller Art werden in GitHub-Repositories aus zahlreichen Gründen veröffentlicht. Um eine App in einen bestimmten Service zu integrieren sind möglicherweise Autorisierungstools erforderlich. Bei der Veröffentlichung von Test-Code verwenden einige Programmierer gültige Schlüssel anstelle von Debug-Schlüsseln und vergessen dann, diese erneut zu entfernen.

Der Securosis-Analyst und CEO Rich Mogull veröffentlichte unter anderem eine App auf GitHub, die er für einen Konferenzbericht entwickelte. Alle Daten zur Autorisierung wurden lokal gespeichert. Um jedoch einzelne Codeblöcke debuggen zu können, erstellte er eine Testdatei mit mehreren Zugriffsschlüsseln. Nach dem Debuggen hatte Mogull einfach vergessen, die Schlüssel wieder aus dieser Datei zu entfernen. Sie wurden anschließend von Kriminellen gefunden, die Amazon-Dienste im Wert von 500 US-Dollar für sich verbuchen konnten, bevor der Vorfall bemerkt wurde.

Möglicherweise sind sich viele Entwickler auch einfach nicht der Gefahr bewusst, die das Hinterlassen gültiger Token in GitHub-Repositories birgt.

So schützen Sie Ihre Ressourcen

  • Machen Sie Ihre Entwickler darauf aufmerksam, dass der Upload gültiger Token und Schlüssel zum Öffnen von Repositories schädlich und gefährlich sein kann; Programmierer sollten verstehen, dass sie vor dem Platzieren von Code sicherstellen müssen, dass dieser keine geheimen Daten enthält.
  • Alle Produktmanager sollten die Projekte Ihres Unternehmens auf GitHub überprüfen, um herauszufinden, ob sie vertrauliche Informationen enthalten. Wenn dies der Fall ist, sollten diese umgehend gelöscht werden.
  • Wenn Daten, die Ihr Unternehmen auf GitHub speichert, Passwörter enthalten, sollten Sie die jeweiligen Kennwörter umgehend ändern. Es gibt keine Möglichkeit herauszufinden, ob der Code bereits angesehen und gespeichert wurde.
  • Steigern Sie die Sicherheits-Awareness der Mitarbeiter, damit der verantwortungsbewusste Umgang mit GitHub und anderen Tools und Ressourcen zur Selbstverständlichkeit wird. Unsere Plattform hilft Ihnen dabei, dies effektiv und praktisch zu tun, ohne den Unternehmensbetrieb zu beeinflussen.