Was ist geheimes Scannen?
Bei der Überprüfung von Geheimnissen werden automatisierte Scans für Coderepositorys, Ausführungspipelines, Konfigurationsdateien, Commits und andere Datenquellen ausgeführt, um potenzielle Sicherheitsbedrohungen durch offengelegte Geheimnisse zu verhindern.
Das Scannen von Geheimnissen ist Teil des breiteren Anwendungsbereichs der Geheimnisverwaltung, der die Prozesse und Tools umfasst, die zum Speichern und Schützen von Geheimnissen vor nicht autorisierten Entitäten erforderlich sind.
The Secure Coding Best Practices [Cheat Sheet]
With curated insights and easy-to-follow code snippets, this 11-page cheat sheet simplifies complex security concepts, empowering every developer to build secure, reliable applications.
Download Cheat SheetWas sind Geheimnisse?
Geheimnisse sind Anmeldeinformationen, die verwendet werden, um sich bei den IT-Systemen eines Unternehmens zu authentifizieren oder autorisierten Zugriff zu erhalten, um vertrauliche Aktionen auszuführen.
Softwareprojekte stützen sich häufig auf Komponenten von Drittanbietern – Container und Container-Orchestrierungsplattformen, DevOps- und CI/CD-Tools, Datenbanken, Repositories usw. Um eine Verbindung mit diesen Diensten von Drittanbietern herzustellen und die Kommunikation zwischen verschiedenen App-Komponenten zu ermöglichen, benötigt Ihre Softwareumgebung eine Möglichkeit, den Dienst oder die App-Komponente zu authentifizieren. Dies geschieht in der Regel in Form eines "Geheimnisses", d. h. eines Schlüssels, eines Passworts, eines Zertifikats oder eines Tokens.
Wie unterscheiden sich Geheimnisse von vertraulichen Daten?
Im Gegensatz zu sensiblen Daten (z. B. Sozialversicherungsnummern und Kreditkarteninformationen), die in der Regel Endbenutzern gehören, gehören Geheimnisse Unternehmen. Beispiele für Geheimnisse sind:
LDAP-Passwörter
PKI/TLS-Zertifikate
Verschlüsselungsschlüssel
Anmeldeinformationen für Container
SSH-Schlüssel
API-Token
Entwickler verwenden Geheimnisse, um sich zu authentifizieren und die Kommunikation zwischen ihren Systemen und anderen Cloud-Diensten herzustellen oder um den Zugriff von Mensch und Maschine auf sensible Systeme zu steuern.
As digital authentication credentials, secrets—if exposed—can grant adversaries unauthorized access to a company’s code bases, databases, and other sensitive digital infrastructure.
Warum ist geheimes Scannen wichtig?
Als digitale Authentifizierungsdaten können Geheimnisse – wenn sie offengelegt werden – Angreifern unbefugten Zugriff auf die Codebasen, Datenbanken und andere sensible digitale Infrastrukturen eines Unternehmens gewähren.
Leider ist es keine leichte Aufgabe, Geheimnisse zu sichern. Geheimnisse müssen zwar verschlüsselt und streng kontrolliert werden, aber sie müssen auch für Entwicklungsteams, Apps und in einer gesamten Umgebung zugänglich gemacht werden.
Folglich finden Geheimnisse an der einen oder anderen Stelle während des Softwareentwicklungslebenszyklus (SDLC) oft ihren Weg in potenziell exponierte Bereiche: fest codierte Anmeldeinformationen in CI/CD-Pipelines (Continuous Integration and Continuous Delivery), Code-Repositories, Versionskontrollsysteme (VCS), Sicherheitssoftware, Containerisierungsumgebungen oder Kommunikationskanäle am Arbeitsplatz (z. B. Slack, Teams).
Dies geschieht, weil sich die Entwickler darauf konzentrieren, qualitativ hochwertigen Code in halsbrecherischer Geschwindigkeit zu schreiben und auszuliefern. Wenn sich Software also noch in der Entwicklungs- und Testphase befindet, halten sie es möglicherweise für ideal, Geheimnisse auf lokalen Computern zu speichern, um die Entwicklung zu beschleunigen und schnellere Feedbackschleifen zu ermöglichen.
Hier kommt das geheime Scannen ins Spiel. Lassen Sie uns die vier Hauptgründe besprechen, warum Entwickler es implementieren sollten.
Schutz sensibler Daten und Geheimnisse
Zum Schutz sensible Daten, verschlüsseln wir sie, während der Übertragung und im Ruhezustand, und speichern sie in Datenbanken. Geheimnisse werden dann verwendet, um die Datenbanken zu unterbinden und den Zugriff auf autorisierte Personen und Maschinen zu beschränken.
Um beispielsweise Benutzername/Passwort-Paare zu bestätigen, die von Endbenutzern eingegeben wurden, muss Ihr Anmeldeportal eine automatische Verbindung zu Ihrer Datenbank herstellen. Diese Verbindung wird mit einem geheimen Schlüssel authentifiziert, der den Zugriff des Portals auf die vertraulichen Informationen in der Datenbank autorisiert. Wenn dieses Geheimnis auf dem Weg durchgesickert oder in einem ungesicherten Bereich landet, können Unbefugte auf die Daten zugreifen, sie stehlen, offenlegen oder für Ransomware-Angriffe verschlüsseln.
Das Vorfall mit Datenoffenlegung in Microsoft 2023 , die vom Wiz-Forschungsteam entdeckt wurde, ist ein perfekter Beweis für die Bedeutung des geheimen Scannens. Bei dem Versuch, KI-basierte Trainingsdaten auf GitHub zu veröffentlichen, hat ein Microsoft-Forschungsteam versehentlich einen Link freigegeben, der 38 TB an privaten Daten offenlegte, darunter private Schlüssel, Geheimnisse, Kennwörter und über 30.000 interne Microsoft Teams-Nachrichten, die in einem Microsoft Azure-Speicherkonto gespeichert waren.
Dieser Vorfall hätte verhindert werden können, wenn das Team das Konto vor der Freigabe des Links auf GitHub auf Geheimnisse überprüft hätte.
Vereitelung von Cyberangriffen
Das Wiz-Forschungsteam Es wurden auch vergessene Geheimnisse an mehreren übersehenen Speicherorten in CI/CD-Pipelines gefunden, insbesondere in Container-Image-Basisschichten und Linux-Bash-Verlaufsdateien. Angreifer können solche offengelegten Geheimnisse nutzen, um Cyberangriffe in verschiedenen Szenarien durchzuführen. Die vergessenen Geheimnisse können die laterale Bewegung erleichtern und Remotecodeausführung Bei Angriffen auf die Software-Lieferkette können Hacker die Quellcodes eines Unternehmens ändern, bösartigen Code in produktionsbereite Artefakte einschleusen oder die Build-Prozesse von Images manipulieren.
Durch das Auffinden vergessener oder fest codierter Geheimnisse, bevor sie offengelegt werden, helfen geheime Scan-Tools, verschiedene Formen von Cyberangreifern im Keim zu ersticken.
Many companies are subject to regulatory standards designed to protect end users’ sensitive personal, financial, and health-related information. As secrets guard this data, any accidental release of secrets may result in a data breach that could result in hefty noncompliance fines.
Verbesserung der Compliance
Viele Unternehmen unterliegen regulatorischen Standards, die darauf ausgelegt sind, die sensiblen persönlichen, finanziellen und gesundheitsbezogenen Daten der Endbenutzer zu schützen. Da diese Daten durch Geheimnisse geschützt werden, kann jede versehentliche Veröffentlichung von Geheimnissen zu einer Datenschutzverletzung führen, die zu hohen Geldstrafen bei Nichteinhaltung führen kann.
Die Überprüfung von Geheimnissen kann dazu beitragen, Geheimnisse zu erkennen und zu verhindern, dass sie kompromittiert werden.
Schutz vor Reputationsschäden und finanziellen Verlusten
Sicherheitsverletzungen und Cyberangriffe verursachen einen erheblichen Reputationsschaden, wirken sich negativ auf den Umsatz aus und erhöhen die Kosten wie Bußgelder, Anwaltskosten und Vergleiche.
Proaktives Scannen und Schützen von Geheimnissen hilft, solche schwerwiegenden Folgen zu vermeiden.
Wie funktioniert das geheime Scannen?
Das geheime Scannen umfasst einige Schritte, die mit speziellen Tools und Methoden durchgeführt werden. Und so funktioniert es.
Schritt 1: Scannen
Sobald ein geheimer Scanner installiert und mit allen relevanten Teilen Ihres IT-Stacks verbunden ist, führt er Echtzeit- oder Ruhescans Ihres Stacks durch.
Echtzeitscans sind ereignisgesteuert und werden durch Pull Requests in Ihrem Versionskontrollsystem (VCS) oder Codeänderungen in einer der folgenden Komponenten Ihres Stacks ausgelöst:
Code: Code-Repositories, Konfigurationsdateien
Container: Container-Images und Kubernetes-Architektur
DevOps-Technologie-Stack: Erstellen Sie Systeme, Ticketing-Systeme, Kommunikationskanäle, Wissensmanagementsysteme, Bug-Tracking-Software, Support-Stack usw.
Beobachtbarkeits-Pipelines: Observability-/Logging-Software und Datenspeicher
Scans im Ruhezustand führen historische Scans derselben Komponenten in geplanten Intervallen durch.
Geheime Scan-Techniken
Da Geheimnisse oft in Code, Protokolle usw. eingebettet sind, kann es schwierig sein, sie zu identifizieren. In der folgenden Tabelle sind vier geheime Scantechniken aufgeführt.
If the scanner detects a potential secret, it either corresponds with the service provider or extracts metadata within your stack to identify the service that the secret pattern matches; it then detects if it is still valid.
Schritt 2: Identifizieren und Überprüfen von Geheimnissen
Wenn der Scanner einen potenziellen geheimen Schlüssel erkennt, entspricht er entweder dem Dienstanbieter oder extrahiert Metadaten innerhalb Ihres Stacks, um den Dienst zu identifizieren, mit dem das geheime Muster übereinstimmt. Es erkennt dann, ob es noch gültig ist.
Schritt 3: Berichterstattung und Alarmierung
Wenn eine Übereinstimmung bestätigt wird, benachrichtigt Sie der Scanner über den offengelegten geheimen Schlüssel. Je nachdem, wie umfassend die Tools sind, können sie auch Empfehlungen zur Behebung des Problems enthalten. Anmerkung: Stellen Sie sicher, dass nur autorisierte Parteien Zugriff auf diesen Bericht haben, da er vertrauliche Daten enthalten würde.
Open-Source-Tools zum Scannen von Geheimnissen
Im Folgenden untersuchen wir fünf gängige Open-Source-Tools zum Scannen von Geheimnissen.
Geheimnisse erkennen
Detect-secrets ist ein Microsoft-Projekt, das den Git-Verlauf Ihres Projekts mithilfe von Heuristiken und regulären Ausdrücken überprüft.
Gitleaks scans repos, directories, files, and entire Git histories to detect past and present exposed secrets. It can be installed using Docker, Go, or Homebrew.
Gitleaks
Gitleaks scannt Repositorys, Verzeichnisse, Dateien und ganze Git-Verläufe, um vergangene und gegenwärtige offengelegte Geheimnisse zu erkennen. Es kann mit Docker, Go oder Homebrew installiert werden.
Whispers scans static structured text files such as configs, XML, JSON, and Python3 for hard-coded secrets. Unlike the others, it doesn't scan code but instead parses known data formats and extracts key-value pairs to detect secrets.
Flüstert
Whispers durchsucht statisch strukturierte Textdateien wie configs, XML, JSON und Python3 nach fest codierten Geheimnissen. Im Gegensatz zu den anderen tut es't scannt den Code, sondern analysiert stattdessen bekannte Datenformate und extrahiert Schlüssel-Wert-Paare, um Geheimnisse zu erkennen.
Git-secrets is an AWS command-line tool for scanning commits, commit messages, and “–no-ff” merges.
Git-Geheimnisse
Git-secrets ist ein AWS-Befehlszeilentool zum Scannen von Commits, Commit-Nachrichten und "–no-ff"-Merges.
Git-all-secrets is an aggregation of multiple secret scanners, including TruffleHog (a regular expression-based scanner) and repo-supervisor (a high entropy-based scanner).
Git-all-Geheimnisse
Git-all-secrets ist eine Aggregation mehrerer geheimer Scanner, darunter TruffleHog (ein auf regulären Ausdrücken basierender Scanner) und repo-supervisor (ein auf hoher Entropie basierender Scanner).
Secret scanning can be approached in a few different ways, including open-source and commercial options. Each brings strengths that can be valuable depending on your environment and use case.
Was ist mit proprietären Tools?
Geheime Scans können auch mit proprietären Tools durchgeführt werden. Open-Source-Tools sind mit geringen bis gar keinen finanziellen Kosten verbunden, bieten aber möglicherweise auch nicht so viel Abdeckung wie proprietäre Tools. Umgekehrt erfordern proprietäre Tools ein unterschiedliches Maß an finanziellem Engagement, verfügen aber in der Regel über mehr Funktionen und Angebote.
Unabhängig davon, für welche Variante Sie sich entscheiden, achten Sie auf die Scantechnik, die das Tool verwendet. Ein Hybridscanner trägt beispielsweise dazu bei, Fehlalarme zu reduzieren und mehr geheime Typen zu erkennen. Berücksichtigen Sie außerdem die Reputation des Anbieters und die Fähigkeit des Tools, Echtzeitüberwachung/-warnung durchzuführen. Reaktion auf Vorfälleund Risikopriorisierung.
6 Best Practices für die Verwaltung von Geheimnissen
Zusätzlich zum Scannen von Geheimnissen ist es auch wichtig, die folgenden bewährten Methoden zu implementieren, um sie ordnungsgemäß zu verwalten.
1. Speichern und Verschlüsseln von Geheimnissen mit einem Geheimnis-Manager
Vermeiden Sie das Speichern von Geheimnissen in Containerimages, Konfigurationsdateien, Code und anderen ungeschützten Orten, um die Ausbreitung von Geheimnissen zu verhindern. Verwenden Sie stattdessen dedizierte Tools zur Verwaltung von Geheimnissen (z. B. HashiCorp Vault oder AWS Secrets Manager), die Geheimnisse im Ruhezustand und während der Übertragung verschlüsseln.
2. Übernehmen Sie (reguläre) Secrets-Rotation und dynamische Secrets
Bei der Rotation von Geheimnissen werden Geheimnisse in regelmäßigen Abständen in vorkonfigurierten Intervallen geändert oder eine Änderung manuell ausgelöst. Die Verwendung dynamischer Geheimnisse ist eine Möglichkeit, die Geheimnisrotation zu implementieren. Im Gegensatz zu statischen Geheimnissen sind diese kurzlebig, d. h. sie laufen nach einem bestimmten Zeitrahmen oder nach Erfüllung bestimmter Bedingungen ab.
Die regelmäßige Rotation von Geheimnissen schränkt das Zeitfenster eines Hackers ein und verringert die Möglichkeit, dass kompromittierte Geheimnisse für Cyberangriffe verwendet werden.
3. Einschränken des Zugriffs auf Geheimnisse
Erstellen Sie Richtlinien für den geheimen Zugriff, die in Ihrem gesamten Stack konsistent sind, und automatisieren Sie deren Durchsetzung. Dazu gehört auch die Durchsetzung der Prinzip der geringsten Privilegien (PoLP), Zugriffssteuerungslisten (ACLs) und rollenbasierte Zugriffskontrolle (RBAC); Dadurch wird der Zugriff von Benutzern und Apps auf Geheimnisse, Daten und Infrastruktur auf eine bedarfsgerechte Basis beschränkt.
Wenn Anmeldeinformationen versehentlich kompromittiert werden, können PoLP, ACLs und RBAC dazu beitragen, die Angriffsfläche zu verkleinern und die Fähigkeit eines Bedrohungsakteurs einzuschränken, sich lateral in Ihrer Umgebung zu bewegen.
4. Verwenden von Platzhaltern
Vermeiden Sie die Hartcodierung von Geheimnissen, da Sie möglicherweise Code in öffentlichen Repositorys freigeben müssen. Der oben besprochene Microsoft-Vorfall ist ein Beispiel dafür. Verwenden Sie anstelle von hartcodierten Geheimnissen Umgebungsvariablen , um in Ihrem Code auf Geheimnisse zu verweisen.
5. Verfolgen Sie den Lebenszyklus von Geheimnissen
Behalten Sie den Überblick über die derzeit verwendeten Geheimnisse, widerrufen Sie kompromittierte Geheimnisse und zeichnen Sie Zugriffsereignisse (wer wann auf was zugreift) in einem umfassenden Überwachungsprotokoll auf.
6. Implementierung einer Analyse des Bedrohungspfads
Wählen Sie ein geheimes Scan-Tool mit Erweiterte Analyse von Angriffspfaden; Auf diese Weise werden Geheimnisse erkannt, sie mit relevanten Systemen korreliert und Sie erhalten eine klare Karte der Ressourcen und Systeme auf dem Angriffspfad.
What is the Principle of Least Privilege (PoLP)? Use Cases, Benefits, and Implementation
Mehr lesenScannen nach Geheimnissen mit Wiz
Wiz-Code Verbessert Ihre Bemühungen zur Überprüfung von Geheimnissen, indem Sie offengelegte Anmeldeinformationen, API-Schlüssel und vertrauliche Informationen in Ihrer gesamten Codebasis erkennen und sicherstellen, dass sie abgefangen werden, bevor sie Produktionsumgebungen erreichen.
Im Rahmen von Genie's umfassende Cloud-Sicherheitsplattformscannt Wiz Code Ihren gesamten Workflow auf Bedrohungen und Schwachstellen mit 35+ unterstützten Compliance-Frameworks in Terraform, CloudFormation, Ansible, Google Deployment Manager, ARM, Kubernetes, Helm und Docker.
Wiz lässt sich automatisch in Code-Repositorys integrieren, um:
Analysieren Sie System-Volumes und erkennen Sie offengelegte Geheimnisse wie Zugriffsschlüssel für Cloud-Plattformen, Domänenzertifikate und SSH-Schlüssel
Suchen Sie nach bekannten Daten im Zusammenhang mit Geheimnissen und extrahieren Sie Metadaten, um Kontext bereitzustellen
Extrahieren Sie Algorithmus- und Bitlängeninformationen, um private SSH-Schlüssel mit ihrer autorisierten Schlüsselkonfiguration zu verknüpfen
Rufen Sie Details wie Betreffe, Ablaufdaten und wichtige Attribute ab, um ein Zertifikat mit der Ressource zu verknüpfen, für die es verwendet wird
Bereitstellung von Sicherheitsdiagrammen zur Nachverfolgung potenzieller Angriffspfade
Benachrichtigen Sie Projektbeteiligte, wenn Geheimnisse erkannt werden
Wiz setzt Cloud-native Scanner ein, um Geschwindigkeit, Effizienz und umfassendes Scannen zu gewährleisten – eine seltene Kombination.
Fordern Sie eine an Demo heute, um zu sehen, wie Wiz Ihnen helfen kann, Ihre Geheimnisse zu schützen.