Lecks von Verschlusssachen in 100.000 Repositories auf GitHub


Die Methode zum Sammeln von Geheimnissen umfasst verschiedene Phasen, mit denen Sie Verschlusssachen letztendlich mit einem hohen Maß an Sicherheit identifizieren können. Illustration aus einer wissenschaftlichen Arbeit

GitHub und ähnliche Plattformen für Open Source Publishing sind heute Standardwerkzeuge für Entwickler. Ein Problem tritt jedoch auf, wenn dieser Open Source-Code mit Authentifizierungstoken, privaten API-Schlüsseln und privaten kryptografischen Schlüsseln funktioniert. Um die Sicherheit zu gewährleisten, müssen diese Daten geheim gehalten werden. Leider fügen viele Entwickler dem Code vertrauliche Informationen hinzu, was häufig zu versehentlichen Informationslecks führt.

Ein Forscherteam der University of North Carolina führte eine groß angelegte Studie zu klassifizierten Datenlecks auf GitHub durch. Sie scannten Milliarden von Dateien, die mit zwei sich ergänzenden Methoden gesammelt wurden:

  • Fast sechs Monate dauernde öffentliche Commit-Scans von GitHub in Echtzeit
  • Momentaufnahme der öffentlichen Repositorys, die 13% aller Repositorys auf GitHub abdecken, insgesamt etwa 4 Millionen Repositorys.

Die Schlussfolgerungen sind enttäuschend. Wissenschaftler haben nicht nur entdeckt, dass Lecks weit verbreitet sind und mehr als 100.000 Repositories betreffen. Schlimmer noch, täglich kommen Tausende neuer, einzigartiger „Geheimnisse“ zu GitHub.

In der Tabelle sind die APIs beliebter Dienste und die mit dem Verlust dieser Informationen verbundenen Risiken aufgeführt.



Allgemeine Statistiken zu den gefundenen geheimen Objekten zeigen, dass Google API-Schlüssel am häufigsten gemeinfrei sind. Private RSA-Schlüssel und Google OAuth-Kennungen sind ebenfalls häufig. In der Regel tritt die überwiegende Mehrheit der Lecks über Repositorys mit einem Eigentümer auf.

GeheimnisInsgesamtEinzigartig%, ein Eigentümer
Google API-Schlüssel212 89285 31195,10%
RSA Geheimschlüssel158 01137,78190,42%
Google OAuth ID106 90947.81496,67%
Normaler privater Schlüssel30,28612.57688,99%
Amazon AWS Access Key ID26 395464891,57%
Twitter-Zugriffstoken20.760795394,83%
Privater Schlüssel EC7838158474,67%
Facebook-Zugriffstoken6367171597,35%
PGP Private Key209168482,58%
MailGun API-Schlüssel186874294,25%
MailChimp-API-Schlüssel87148492,51%
Stripe Standard API Key54221391,87%
Twilio API-Schlüssel3205090,00%
Square Access Token1216196,67%
Geheimer Platz OAuth281994,74%
Amazon MWS Auth Token2813100,00%
Braintree-Zugriffstoken24887,50%
Picatic API-Schlüssel54100,00%
Insgesamt575,456201 64293,58%

Durch die Echtzeitüberwachung von Commits konnte festgestellt werden, wie viele vertrauliche Informationen kurz nach ihrer Ankunft aus den Repositorys entfernt wurden. Es stellte sich heraus, dass am ersten Tag etwas mehr als 10% der Geheimnisse gelöscht werden und an den nächsten Tagen einige Prozent jedoch zwei Wochen nach der Hinzufügung mehr als 80% der privaten Informationen in den Repositories verbleiben, und dieser Anteil nimmt in der Folge praktisch nicht ab.

Zu den auffälligsten Lecks zählen ein AWS-Konto einer Regierungsbehörde in einem der osteuropäischen Länder sowie 7.280 private RSA-Schlüssel für den Zugriff auf Tausende privater VPNs.

Die Studie zeigt, dass ein Angreifer selbst mit minimalen Ressourcen viele GitHub-Benutzer gefährden und eine Menge privater Schlüssel finden kann. Die Autoren stellen fest, dass viele bestehende Schutzmethoden gegen die Erfassung von Verschlusssachen unwirksam sind. Beispielsweise weisen Tools wie TruffleHog nur einen Wirkungsgrad von 25% auf. Das integrierte GitHub-Limit für die Anzahl der API-Anforderungen kann ebenfalls leicht umgangen werden.

Viele entdeckte Geheimnisse haben jedoch klare Muster, die es einfach machen
ihre Suche. Es ist logisch anzunehmen, dass dieselben Muster verwendet werden können, um den Verlust von Verschlusssachen zu überwachen und Entwickler zu warnen. Wahrscheinlich sollten solche Mechanismen auf der Serverseite implementiert werden, d. H. Auf GitHub. Ein Dienst kann während eines Commits ein Warnrecht ausgeben.

GitHub hat kürzlich eine Beta-Version des Token-Scannens ( Token-Scan- Funktion) implementiert, mit der Repositorys gescannt, nach Token gesucht und Dienstanbieter über Informationslecks informiert werden. Der Anbieter kann diesen Schlüssel wiederum stornieren. Die Autoren glauben, dass GitHub dank ihrer Forschung diese Funktion verbessern und die Anzahl der Anbieter erhöhen kann.

Source: https://habr.com/ru/post/de445038/


All Articles