Git Hound, Truffle Hog beseitigen GitHub-Lecks

Es ist App Dev 101: Codieren Sie API-Token, Verschlüsselungsschlüssel und Benutzeranmeldeinformationen nicht fest. Wenn Sie dies jedoch tun, stellen Sie sicher, dass Sie sie aus Ihrem Code entfernen, bevor Sie sie in GitHub oder andere öffentliche Code-Repositorys übertragen.

Vor vier Jahren führte GitHub eine Suchfunktion ein, mit der sich Passwörter, Verschlüsselungsschlüssel und andere vertrauliche Informationen in öffentlich zugänglichen Repositorys leicht finden lassen. Das Problem hat sich nicht verbessert. Letztes Jahr fanden Forscher 1.500 Slack-Token in GitHub-Projekten, die von anderen missbraucht werden könnten, um Zugriff auf Chats, Dateien und andere vertrauliche Daten zu erhalten, die in privaten Slack-Teams geteilt werden.

Truffle Hog und Git Hound sind zwei Beispiele für verfügbare Tools, mit denen Administratoren und Entwickler nach geheimen Schlüsseln suchen können, die versehentlich in ihren Projekten auf GitHub durchgesickert sind. Sie verfolgen unterschiedliche Ansätze, um dasselbe Problem zu lösen, aber das Ziel ist dasselbe: Helfen Sie Administratoren, zu verhindern, dass kryptografische Geheimnisse auf öffentlichen Websites veröffentlicht werden.

Truffle Hog "durchläuft den gesamten Commit-Verlauf jedes Zweigs und überprüft jeden Unterschied zwischen jedem Commit und bewertet die Shannon-Entropie sowohl für den Base64-Zeichensatz als auch für den Hexadezimalzeichensatz für jeden Textblock mit mehr als 20 Zeichen, der aus diesem Zeichen besteht setzt in jedem Diff ", sagte der Entwickler des Tools, Dylan Ayrey. Die nach dem Mathematiker Claude E. Shannon benannte Shannon-Entropie bestimmt die Zufälligkeit, und eine hohe Entropie lässt darauf schließen, dass die Zeichenfolge wahrscheinlich für kryptografische Geheimnisse wie ein Zugriffstoken oder einen privaten Schlüssel verwendet wird. Truffle Hog druckt Zeichenfolgen mit hoher Entropie aus, die Punktadministratoren untersuchen können, um herauszufinden, was in der Datei enthalten ist. Truffle Hog wurde in Python geschrieben und benötigt zum Ausführen nur die GitPython-Bibliothek.

Git Hound verfolgt einen anderen Ansatz: Es verwendet ein Git-Plugin, das in Go geschrieben wurde, um Dateien kurz vor dem Festschreiben bei GitHub zu scannen. Das Plugin sucht nach Übereinstimmungen mit regulären Ausdrücken, die in einer separaten Datei, .githound.yml, angegeben sind, und gibt entweder eine Warnung aus, bevor das Festschreiben zugelassen wird, oder schlägt fehl und stoppt das Festschreiben. Hound kann "Änderungen seit dem letzten Commit wahrnehmen und im sauberen Zustand an git-commit übergeben", sagte Ezekiel Gabrielse, der Entwickler des Tools. Während es "ziemlich einfach" wäre, die Prüfung in einem Pre-Commit-Hook einzurichten, sagte Gabrielse, dass das Plugin mehr Flexibilität bietet.

Durch die Verwendung regulärer Ausdrücke kann Git Hound eine breite Palette vertraulicher Informationen verarbeiten, da die Liste Anmeldeinformationen, Zugriffstoken und sogar Datei- und Systemnamen enthalten kann. Das Plugin kann verwendet werden, um Änderungen seit dem letzten Commit, der gesamten Codebasis oder sogar dem gesamten Repository-Verlauf zu erkennen. Da .githound.yml nicht zum GitHub-Repository hinzugefügt wird, bleiben die regulären Ausdrücke privat.

Das Timing der Überprüfung ist wichtig, da Hound den Code schnüffelt, bevor er sich zu GitHub verpflichtet, und diese wichtige Sicherheitsüberprüfung in den Entwicklerworkflow einfügt. Sicherheitstools, die in den Workflow des Entwicklers passen, werden eher zum richtigen Zeitpunkt verwendet.

Es sollte nicht passieren, aber vertrauliche Schlüssel, die versehentlich in öffentlichen Code-Repositorys veröffentlicht werden, weil sie in Softwareprojekten fest codiert wurden, treten zu häufig auf. Sicherheitsforscher fanden fast 10.000 Zugriffsschlüssel für Amazon Web Services- und Elastic Compute Cloud-Instanzen in öffentlich zugänglichen GitHub-Repositorys. Dies veranlasste Amazon, GitHub regelmäßig nach solchen Schlüsseln zu durchsuchen und sie zu widerrufen, bevor sie missbraucht werden können.

Obwohl es großartig ist, dass Amazon diese Aufgabe übernommen hat, ist es genauso wahrscheinlich, dass viele andere Arten von Geheimnissen durchgesickert sind. Mit Truffle Hog und Git Hound können Administratoren und Entwickler die Fehler erkennen, bevor sie zu kostspieligen Unfällen werden.