Offengelegte, fest codierte Geheimnisse in Ihrem GitHub-Projekt mit Snyk finden und beheben
25. Juni 2024
0 Min. LesezeitSnyk ist ein hervorragendes Tool, um Schwachstellen in Projekten aufzuspüren – darunter auch fest codierte Geheimnisse. In diesem Blog zeigen wir Ihnen, wie Sie mit Snyk fest codierte Geheimnisse und Zugangsdaten aufspüren und anschließend unseren Code so umstrukturieren, dass diese Geheimnisse stattdessen mit Doppler gespeichert werden. Als Referenz verwenden wir das Open-Source-Projekt Snyk goof, ein Node.js-Boilerplate-Projekt. Folgen Sie uns also gern Schritt für Schritt.
Erste Schritte mit dem Snyk-goof-Projekt
Forken Sie zunächst das Snyk-goof-Projekt in Ihr GitHub-Konto. Dieses Beispielprojekt enthält zahlreiche Schwachstellen, die wir mit Snyk aufspüren können.
Erstellen Sie anschließend ein kostenloses Snyk-Konto. Rufen Sie dazu die Snyk-Anmeldeseite auf und melden Sie sich mit Ihrem GitHub-Konto (oder einem anderen bevorzugten Anbieter) an.

Sie müssen Snyk den Zugriff auf die mit Ihrem Konto verknüpfte E-Mail-Adresse gestatten. Snyk verwendet diese Adresse, um Ihnen wichtige Informationen zu senden, darunter Sicherheitsbenachrichtigungen und Berichte zu Ihren importierten Projekten.
Wenn Sie Snyk noch nicht verwendet haben, müssen Sie außerdem Ihre Zugriffseinstellungen konfigurieren, damit Snyk Ihre Projekte regelmäßig scannen und automatisch Pull Requests mit Korrekturen erstellen kann. Dazu müssen Sie Ihrem GitHub-Konto zusätzliche Berechtigungen erteilen.
Wählen Sie GitHub als Quelle für den Code Ihres Projekts aus (oder den Ort, an dem sich Ihr Code befindet). Anschließend können Sie wie im Screenshot unten gezeigt die Standardeinstellungen übernehmen und so alle empfohlenen Snyk-Funktionen nutzen. Sie können diese Berechtigungen deaktivieren, wenn Sie möchten. Dadurch können Sie jedoch die erweiterten und nützlichen Funktionen für Pull Requests mit Korrekturen nicht nutzen, mit denen sich Sicherheitskorrekturen und Dependency-Upgrades automatisieren lassen.

Wählen Sie anschließend das Snyk-goof-Projekt aus der Liste Ihrer GitHub-Repositories aus, um es Ihrem Snyk-Konto als Projekt hinzuzufügen.

Um einen Abhängigkeitsgraphen zu erstellen, analysiert Snyk die Manifestdatei `package.json` im Node.js-Projekt goof. Der Graph umfasst sowohl die direkten Abhängigkeiten des goof-Projekts als auch deren transitive Abhängigkeiten. So wird nach und nach ein vollständiger Abhängigkeitsgraph erstellt. Anschließend vergleicht Snyk diese Abhängigkeiten mit der Schwachstellendatenbank und erstellt einen umfassenden Bericht.

Im goof-Projekt gibt es eine ganze Reihe von Problemen. Snyk kann Ihnen dabei helfen, viele davon zu beheben, indem direkte Abhängigkeiten auf eine Version ohne Schwachstellen aktualisiert oder Schwachstellen gepatcht werden. Wir sehen uns nun die Codeanalyse genauer an und suchen nach den fest codierten Geheimnissen, die wir beheben müssen.
Geheimnisse beheben, die an GitHub übertragen wurden
Rufen Sie die Ansicht „Code Analysis“ auf und filtern Sie nach Verwendung fest codierter Zugangsdaten und fest codiertem Geheimnis.

Wir müssen mehrere Geheimnisse beheben. Fügen Sie diese zunächst zu Doppler hinzu. So verhindern Sie, dass die Geheimnisse versehentlich offengelegt werden, zentralisieren ihre Verwaltung und können für Entwicklungs- und Produktionsumgebungen unterschiedliche Geheimnisse konfigurieren. So müssen Sie sich nie wieder Sorgen machen, sie an GitHub zu übertragen.
Klonen Sie das Goof-Projekt mit Git, um die erforderlichen Codeänderungen vorzunehmen. Folgen Sie anschließend der Anleitung in der Goof-Projekt-README, um das Projekt lokal auszuführen.
Wir beginnen mit der Behebung eines fest codierten Tokens in der Datei `app.js`:

Öffnen Sie `app.js` in Ihrem bevorzugten Code-Editor und suchen Sie die Token-Variable. Kopieren Sie das Token. Anschließend rufen wir Doppler auf, um ein kostenloses Konto zu erstellen.

Erstellen Sie in Ihrem Doppler-Konto ein neues Projekt mit dem Namen `Goof`.

Die Umgebungen werden standardmäßig erstellt. Fügen Sie alle Geheimnisse zur Konfiguration Development > Dev hinzu. Anschließend können Sie die Geheimnisse in allen abgeleiteten Konfigurationen aktualisieren. Klicken Sie auf die Konfiguration Development > Dev und dann auf Add First Secret.

Erstellen Sie ein Geheimnis mit dem Namen `SECRET_TOKEN` und dem Wert, der im Code fest codiert ist. Klicken Sie anschließend auf „Save“.

Nachdem wir das Geheimnis zu Doppler hinzugefügt haben, können wir es in unserem Code verwenden. Ersetzen Sie den fest codierten Token-Wert durch eine Umgebungsvariable. Mit der Doppler CLI fügen wir der Anwendung Geheimnisse hinzu. Ihr Code sollte so aussehen:
Mit der Doppler CLI können Sie in jeder Umgebung auf Ihre Geheimnisse zugreifen – von der lokalen Entwicklung über CI/CD und Staging bis hin zur Produktion. Sie ist eine schlanke Binärdatei, die für alle gängigen Betriebssysteme, Paketmanager und Docker verfügbar ist.
Folgen Sie den Schritten auf der Installationsseite der Doppler CLI, um die Doppler CLI für Ihr System zu konfigurieren. In Doppler ist der Zugriff auf die Geheimnisse eines Projekts auf ein bestimmtes Verzeichnis in Ihrem Dateisystem beschränkt. So können Sie auf einem Rechner Geheimnisse für mehrere Projekte abrufen.
Wechseln Sie in Ihrem Terminal in das Verzeichnis des Goof-Projekts und richten Sie Doppler ein.
Wählen Sie das Projekt goof aus.

Wählen Sie die Konfiguration dev aus:

Sie können Ihre Geheimnisse verwenden, indem Sie beim Starten Ihrer Anwendung den Befehl `‘doppler run’` anhängen. Mit diesem Befehl werden Ihre Geheimnisse in die Umgebung Ihrer Anwendung eingefügt.
Denken Sie daran, alle Ihre Geheimnisse hinzuzufügen und die Konfigurationen an Ihre Anwendung und die Anforderungen Ihres Teams anzupassen. Vielleicht interessieren Sie sich auch für automatische Neustarts der Anwendung, wenn Sie Geheimnisse bearbeiten.
Geheimnisse mit Snyk und Doppler schützen
Snyk und Doppler sind hervorragende Beispiele für Entwicklertools, die zusammen noch besser funktionieren. Integrieren Sie Snyk und Doppler noch heute und erleben Sie selbst, wie diese leistungsstarken Tools Ihren Entwicklungsprozess vereinfachen können. Erleben Sie Snyk und Doppler in Aktion – der erste Schritt zu einem sichereren und effizienteren Workflow.

