Datenlecks finden

So verhindern Sie Repository Leaks

Datenlecks in öffentlich zugänglichen Repositories wie GitLab, GitHub oder Google Cloud Build sind desaströs. Diese Tools verhindern, dass es dazu kommt.
Von 
CSO | 11. Juli 2022 06:04 Uhr
Wie sicher ist Ihr Quellcode? Diese Tools rücken (auch weniger offensichtliche) Repository-Lecks ins Blickfeld.
Wie sicher ist Ihr Quellcode? Diese Tools rücken (auch weniger offensichtliche) Repository-Lecks ins Blickfeld.
Foto: gabigaasenbeek - shutterstock.com

In Git-Repositories gespeicherte Informationen, die nicht für die Öffentlichkeit bestimmt sind, sind Entwicklern seit langem ein Dorn im Auge - und ein beliebtes Ziel für Angreifer. Um die Wahrscheinlichkeit zu verringern, dass Software - oft sehr öffentlichkeitswirksam - kompromittiert wird, müssen sensible Informationen ordnungsgemäß gespeichert und aus den Repositories entfernt werden. Das mag offensichtlich erscheinen - in der Praxis sind hartkodierte Connection Strings, Kennwörter und sogar Anmeldeinformationen im Klartextformat, die von Development Tools abgespeichert werden, leicht zu übersehen. Visual Studio etwa speichert SQL-Verbindungsdaten im Klartext, wenn es nicht anders konfiguriert wird.

Allein im Jahr 2020 entdeckte der Tool-Anbieter GitGuardian über zwei Millionen sensible Datensätze in öffentlich zugänglichen Repositories. Auch beim schlagzeilenträchtigen Angriff auf den IT-Dienstleister SolarWinds sollen auf diese Weise geleakte Zugangsdaten eine Rolle gespielt haben. Sie sollten sich also die Zeit nehmen, um zu prüfen, ob Ihre eigenen Projekte in Gefahr sind, weil sensible Informationen frei zugänglich sind.

Die Kunst besteht dabei darin, diese Daten erst einmal zu identifizieren. Oft sind sie tief im Programmcode vergraben, verstecken sich in obskuren XML-Dateien oder sind aufgrund ihrer Beschaffenheit schwer zu entdecken. Den Code manuell zu durchsuchen, ist jedoch fehleranfällig: Die Wahrscheinlichkeit ist hoch, dass dabei etwas übersehen wird. Da Git, wie andere Versionskontrollsysteme auch, alle früheren Übertragungen speichert, reicht es leider auch nicht aus, die betreffenden Daten aus dem Quellcode zu löschen und erneut zu übertragen: Sie müssen aus der Historie gelöscht werden, was in manchen Fällen erheblichen Aufwand nach sich zieht.

Glücklicherweise gibt es mehrere Tools, die Sie bei dieser Art von Problem unterstützen. Sie alle weisen ähnliche Funktionen auf, erreichen das Ziel aber auf unterschiedliche Weise. Bei der Entscheidung darüber, welches Tool für Ihre Zwecke zum Einsatz kommen soll, spielen Ihre eigenen technischen Skills, der Faktor Zeit und natürlich das Budget eine wesentliche Rolle.

Repository-Datenleck: Diese 4 Tools helfen

Die folgenden vier Tools unterstützen Sie dabei, Benutzernamen, Passwörter, Private Keys und andere sensible Informationen zu schützen und Ihren Quellcode sauber zu halten. Wenn Sie sich etwas Zeit nehmen, um eines dieser Tools in Ihren Entwicklungsprozess zu integrieren, trägt das wesentlich dazu bei, schlagzeilenträchtige Datenlecks in Repositories zu vermeiden.

Gitleaks

GitLeaks kann mit Homebrew, Docker oder Go installiert werden, das auf mehreren Plattformen verfügbar ist. Nach der Installation lassen sich Regeln definieren und das Git-Repository per Kommandozeilen-Tool scannen. Regeln werden mit TOML (Tom's Obvious Minimal Language) geschrieben. Das zieht - je nach Benutzer - unter Umständen eine steile Lernkurve nach sich.

Einmal verinnerlicht, gibt es jedoch kaum Grenzen hinsichtlich der Muster, die sich abgleichen lassen. GitLeaks hat auch einige Beispielkonfigurationen an Bord, um den Einstieg zu erleichtern. Mit der Standardkonfiguration des Tools wird bereits das Gros der üblichen Informationen abgefangen, die nicht öffentlich einsehbar sein sollten. Nach dem Scan spuckt das Tool eine Liste der gefundenen Probleme und einen Return Code aus - falls Sie Ihre Scans automatisieren möchten. GitLeaks ist ein leistungsfähiges Tool - allerdings sollten Anwender wissen, was sie tun. Davon abgesehen, ist das Werkzeug schlank genug, um in jede Entwicklungs-Pipeline zu passen.

GittyLeaks

Bis auf den Namen haben GittyLeaks und GitLeaks keine großen Ähnlichkeiten: Ersteres ist in Python geschrieben und ist eher ein "One-Trick Pony". Sobald Sie GittyLeaks installiert haben, können Sie es in dem Ordner ausführen, aus dem Ihr Git-Repository geklont wurde. Anschließend wird das Tool nach Benutzernamen, Passwörtern und ähnlichen Informationen suchen, die übersehen wurden. Leider ist dieses Tool noch nicht ausgereift und lässt auch einen soliden Mechanismus vermissen, um Suchmuster anzupassen und Gegenmaßnahmen zu ergreifen. Dennoch erfüllt es seinen Zweck und erfordert im Gegensatz zu GitLeaks nicht, eine spezielle Regelsyntax zu erlernen.

Eine typische Problemquelle bei allen Python-Tools: Sowohl Python als auch der Package Installer pip müssen in der richtigen Version verwendet werden, um gute Ergebnisse sicherzustellen.

SpectralOps

Bei SpectralOps handelt es sich um eine kostenpflichtige Lösung. Offizielle Angaben zum Preisgefüge gibt es nicht - Sie können sich bei Interesse jedoch für eine Demo registrieren. Die Vorteile von SpectralOps sind vielfältig. Es lässt sich nicht nur mit Git, sondern auch mit anderen Datenquellen integrieren und kann unter anderem eine Schnittstelle zu

  • GitHub,

  • GitLab,

  • NPM und

  • Google Cloud Build herstellen.

Ähnlich wie bei den kostenlosen Tool-Optionen handelt es sich um ein Kommandozeilen-Tool, das Ihren Code scannt, bevor er in die Cloud gestellt wird. Das Besondere an SpectralOps: Das Tool kann problemlos in verschiedene CI-Systeme (Continuous Integration) eingebunden werden. Um sensible Informationen im Code aufzuspüren, setzt SpectralOps auf speziell erstellte YAML-Dateien - sogenannte Detektoren. Diese Bibliothek wird vom Hersteller Spectral regelmäßig erweitert, zudem haben Sie die Möglichkeit, Ihre eigene zu schreiben. SpectralOps richtet sich an größere Entwicklungsteams mit entsprechendem Budget und bietet umfangreichen Support.

GitGuardian

Bei GitGuardian handelt es sich um eine vollständig webbasierte Lösung, die Ihre Repositories kontinuierlich auf sensible Daten überprüft. Das Tool ist fast vollständig automatisiert und funktioniert ähnlich wie eine Endpoint-Security-Lösung für Ihren Code. Das Tool erstellt eine direkte Verbindung zu

  • GitHub,

  • Bitbucket,

  • GitLab oder

  • Ihren internen Repositories.

Alle so identifizierten kritischen Informationen können innerhalb der Applikation behandelt, getrackt und behoben werden. Zwar müssen Sie Ihr Git-Repository immer noch manuell bearbeiten, GitGuardian sorgt dabei jedoch dafür, dass Sie alle notwendigen Schritte befolgen, um die betreffenden Daten ordnungsgemäß zu entfernen. Für private Repositories und kleine Entwicklungsteams (bis zu 25 Nutzer) ist das Tool kostenlos. Wenn Sie mehr brauchen, müssen Sie zahlen: Die Preise beginnen bei 434 Dollar pro Monat.

Wenn Sie keine Lust auf Kommandozeilen-Tools haben und einen visuellen Ansatz bevorzugen, ist GitGuardian die richtige Wahl. Allerdings sollten Sie bedenken, dass sich die Web-App direkt mit Ihrem Projektarchiv verbinden muss. Sollten Sie hier bestimmten Datenschutzrichtlinien unterliegen oder anderweitige Bedenken haben, ist es sinnvoller, auf ein Offline Tool zu setzen. (fm)

Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation CSO Online.

Daniel schreibt für unsere US-Schwesterpublikation CSO Online.