Scans zum Erkennen geheimer Schlüssel konfigurieren
Detect-secrets ist ein clientseitiges Sicherheitstool, das geheime Schlüssel in einer Codebasis erkennt, um Lecks geheimer Schlüssel zu korrigieren und zu verhindern.
Weitere Informationen finden Sie unter IBM/detect-secrets.
'Detect-secrets' durchsucht die gesamte aktuelle Codebasis und gibt eine Momentaufnahme der aktuell identifizierten geheimen Schlüssel aus. Die Liste der geheimen Schlüssel wird dann verwendet, um die identifizierten geheimen Schlüssel als wahr-positive oder falsch-positive Werte zu prüfen. Die DevSecOps-Toolchains erstellen dann Git-Probleme für die wahr-positiven Werte.
Referenzdatei verwenden
Eine Referenzdatei ist die Momentaufnahme eines Scans zur Erkennung geheimer Schlüssel. Die Datei listet potenzielle geheime Schlüssel bei jeder Ausführung auf und markiert Fehlalarme, die bei nachfolgenden Ausführungen nicht als Probleme markiert werden.
Die Referenzdatei muss regelmäßig aktualisiert werden. Aktualisieren und prüfen Sie die Referenzdatei, indem Sie sie festschreiben und per Push-Operation zurück in das Repository übertragen. Durch die Einbeziehung dieser Fehlalarme in die Baseline wird sichergestellt, dass bei zukünftigen Scans keine Probleme für diese vorhandenen Dateien erstellt werden.
Geheime Schlüssel klassifizieren
Wenn der Scan 'detect-secrets' abgeschlossen ist, müssen die erkannten geheimen Schlüssel noch als reale positive oder falsch-positive Werte klassifiziert werden.
Drei Bedingungen klassifizieren einen potenziell erkannten geheimen Schlüssel:
- Nicht geprüft-Ein geheimer Schlüssel wird als nicht geprüft kategorisiert, wenn es sich um einen potenziellen geheimen Schlüssel handelt, der im Prüfprozess überprüft werden muss.
- Geprüft als real-Ein geheimer Schlüssel wird als reell geprüft kategorisiert, wenn er während einer Prüfung als wahr positiv markiert wird und die Referenzdatei den geheimen Schlüssel noch enthält.
- Live-Ein geheimer Schlüssel wird als Live kategorisiert, wenn der geheime Schlüssel von den Plug-ins, die von 'detect-secrets' verwendet werden, als geheimer Live-Schlüssel bestätigt wird.
Baseline verwalten
Die folgenden Befehle verwalten die Referenzversion für geheime Schlüssel:
- Der Befehl
detect-secrets scan
generiert eine Referenzdatei oder aktualisiert die vorhandene Datei, sodass sie eine Momentaufnahme aller erkannten potenziellen geheimen Schlüssel der Ausführung enthält. - Der Befehl
detect-secrets audit
kennzeichnet geheime Schlüssel, sodass Sie Ihre Checkliste der zu migrierenden geheimen Schlüssel eingrenzen können.
Audits geben die erkannten geheimen Schlüssel als wahr oder falsch-positiv an. Sie können dann die Referenzdatei aktualisieren, sodass die falsch-positiven Ergebnisse aus den zukünftigen Scanläufen ausgeschlossen werden können.
Referenzversion aktualisieren
Führen Sie die folgenden Schritte aus, um Ihre Baseline zu aktualisieren:
-
Installieren Sie 'detect-secrets' auf Ihrem lokalen Computer:
pip install --upgrade "git+https://github.com/ibm/detect-secrets.git@master#egg=detect-secrets"
-
Führen Sie die folgenden Befehle aus, um die Referenzdatei in Ihrem Repository zu scannen, zu erstellen oder zu aktualisieren:
-
Führen Sie den folgenden Befehl aus, um den Repository-Ordner zu scannen:
detect-secrets scan --update .secrets.baseline
Sie können das Flag
--exclude-files
verwenden, wenn Sie bestimmte Dateien ignorieren möchten, die bekanntermaßen falsch-positive Ergebnisse enthalten oder nicht gescannt werden müssen. Die Ausschlussregeln basieren auf dem Format für reguläre Ausdrücke.Verwenden Sie den folgenden Befehl, um einen Scan mit Datei-und Ordnerausschlüssen durchzuführen:
detect-secrets scan --update .secrets.baseline --exclude-files '<folder_to_ignore>|<file_to_ignore>'
Beispiel:
detect-secrets scan --update .secrets.baseline --exclude-files "package-lock.json|go.sum"
Die Liste der ausgeschlossenen Dateien wird in der Referenzdatei aufgezeichnet.
Wenn bei nachfolgenden Scans keine Option
--exclude-files
angegeben wird, berücksichtigt die Erkennung von geheimen Schlüsseln automatisch die vorhandene Ausschlussliste aus der Referenzdatei.Wenn Sie jedoch eine neue Ausschlussliste während der
detect-secrets scan
angeben möchten, überschreibt die neue Liste die vorhandene Ausschlussliste in der Referenzdatei. -
Führen Sie den folgenden Befehl aus, um die mit dem Scanschritt erstellte Referenzdatei zu prüfen und zu prüfen:
detect-secrets audit .secrets.baseline
Dieser Befehl ruft ein interaktives Terminal auf, um Fehlalarme zu markieren. Sie können (y) es angeben, wenn der gefundene geheime Schlüssel ein tatsächlicher geheimer Schlüssel ist, oder (n) o, wenn es sich um einen falschen positiven Wert handelt.
-
Schreiben Sie die Datei
.secrets.baseline
fest und übertragen Sie sie per Push-Operation zurück zum Repository. Der Prozess muss in regelmäßigen Abständen lokal ausgeführt werden.
-
Scanparameter für 'Detect-secrets'
Wenn Sie über eine vorhandene Referenzdatei verfügen, verwendet der Scan die vorhandene Konfiguration. Ihre vorherigen Prüfergebnisse und Einstellungen werden nicht überschrieben. Wenn keine Referenzdatei vorhanden ist, wird automatisch eine temporäre Referenzversion für die Ausführung erstellt.
Der Parameter detect-secrets-baseline-filename
gibt einen angepassten Dateinamen für die Referenzdatei an, die von 'detect-secrets' verwendet wird. Standardmäßig sucht detect-secrets nach einer Datei mit dem Namen .secrets.baseline
im Repository-Stammverzeichnis. Wenn Sie Ihre Referenzdatei jedoch anders benennen, können Sie ihren Dateinamen mithilfe dieses Parameters angeben.
Der Parameter detect-secrets-exclusion-list
überschreibt die Standardausschlussliste, wenn eine Ausführung ohne vorhandene Referenzdatei erfolgt. Dieser Parameter gibt Dateien an, die ignoriert werden sollen, damit keine Probleme
erstellt werden, die mit ihnen verknüpft sind.
Der Parameter detect-secrets-image
kann verwendet werden, um ein anderes Image 'detect-secrets' anzugeben, das verwendet werden soll, z. B. ein angepasstes Image oder eine bestimmte Version des offiziellen Image 'detect-secrets'.
Wenn der Parameter detect-secrets-verbose
auf 1 gesetzt ist, wird der Name der aktuell gescannten Datei protokolliert.
Name | Typ | Beschreibung | Erforderlich oder optional |
---|---|---|---|
detect-secrets-baseline-filename |
Zeichenfolge | Der Name der Referenzdatei in Ihrem App-Repository Der Standardwert ist .secrets.baseline . |
Erforderlich, wenn Ihre Referenzdatei nicht den Standardnamen .secrets.baseline hat. |
detect-secrets-exclusion-list |
Zeichenfolge | Eine Liste regulärer Ausdrücke mit Dateien, die beim Scan 'detect-secrets' ausgeschlossen werden sollen Der Standardwert ist requirements.txt|go.mod|go.sum|pom.xml|build.gradle|package-lock.json . |
Optional. Diese Dateiliste überschreibt die allgemeine Ausschlussliste nur, wenn keine Datei .secrets.baseline vorhanden ist. |
detect-secrets-image |
Zeichenfolge | Gibt ein alternatives Image für 'detect-secrets' an, einschließlich angepasster Images oder bestimmter Versionen des offiziellen Image. | Optionale |
detect-secrets-verbose |
Zeichenfolge | Gibt den Namen der Datei aus, die momentan gescannt wird Der Standardwert ist 0 . |
Optional, Debug-Flag 0-off, 1-on |