Zum Inhalt springen
Alle Beiträge anzeigen

Oh, die Orte Geheimnisse Gehen…

In einer codebasierten Welt ist es für Entwickler praktisch, statische Geheimnisse und Konfigurationsdateien mit Passwörtern mit dem von ihnen entwickelten Code zu speichern. Dies ist nicht nur aus Sicht der Quellcodeverwaltung ein mangelhafter Ansatz, sondern schwächt auch die Sicherheit Ihrer Anwendung. Wir untersuchen einige der Hauptrisiken der Speicherung von Geheimnissen in Ihren Code-Repositories und zeigen Ihnen, wie Sie als Anwendungssicherheitsingenieur unnötige Risiken aufdecken können.

Zunächst müssen wir definieren, was ein Geheimnis ist: Normalerweise könnten Geheimnisse sein …

  • API-Schlüssel
  • Statische Systemkennwörter
  • Verschlüsselungsschlüssel
  • OAuth-Token
  • Datenbankpasswörter

Die externe Bedrohung:

Im Juli wurde berichtet, dass die Kryptobörse Binance den „größten Datendiebstahl der Geschichte“ erlitten hatte. Schätzungsweise wurden rund eine Milliarde Datensätze gestohlen. Wie kam es zu diesem Datendiebstahl? Es handelte sich um einen einfachen Codeschnipsel mit geheimen Informationen, der auf einem chinesischen Blog veröffentlicht wurde. Angreifer konnten die offengelegten Geheimnisse anschließend nutzen, um ihre Berechtigungen zu erweitern und sich unbemerkt in der Produktumgebung zu bewegen.

Entwicklung sollte eine gemeinschaftliche Arbeit von Teams sein – und in manchen Fällen sogar eine Zusammenarbeit innerhalb einer ganzen Community. Code-Ausschnitte werden häufig zur Fehlerbehebung geteilt, und Open-Source-Software ist in der CI/CD-Welt zum Standard geworden, um Entwicklungsteams schnelles Arbeiten zu ermöglichen. Geheimnisse in der Codebasis erhöhen die Wahrscheinlichkeit, dass sie in die falschen Hände (möglicherweise eines Bedrohungsakteurs) gerät – und erhöhen letztendlich das Risiko eines Datenverstoßes.

Sobald ein Datenleck vorliegt, ist es für Ihre Sicherheitsteams nahezu unmöglich, diesen Zugriff zu erkennen, da die Aktivität normal aussieht (es werden legitime Geheimnisse verwendet!). Bis Ihre Daten natürlich im Darknet zum Verkauf angeboten werden …

Die interne Bedrohung:

Entwickler sollten keinen Zugriff auf Produktionssysteme haben oder benötigen – und theoretisch auch Support-Ingenieure nicht (anderes Problem, lol). Wenn statische Geheimnisse in Ihrer Codebasis definiert sind, können Drittanbieter und betrügerische Entwickler nun ihre Berechtigungen erweitern und Zugriff auf Bereiche der Produktionssysteme erhalten, auf die sie eigentlich keinen Zugriff haben sollten (Prinzip des geringstmöglichen Zugriffs).

Für Produktsicherheitsteams ist es wichtiger denn je, sich auf die Entwicklung von Authentifizierungsmechanismen, Just-in-Time-Zugriffslösungen und die Bereitstellung eigener Schlüssellösungen zu konzentrieren. Enthält dieser Code ungeschützte Geheimnisse, werden die Auswirkungen dieser Lösungen auf die allgemeine Risikominderung Ihres Produkts eliminiert und die Wahrscheinlichkeit erhöht, dass betrügerische Entwickler (und Drittanbieter) diese fest codierten Geheimnisse ausnutzen, um unbefugten Zugriff auf Ihr Produkt und/oder Ihre Daten zu erhalten.

Was soll ich tun?

Das Speichern von Geheimnissen und Passwörtern in Ihrer Codebasis (oder in Code-Repos) ist nie eine gute Idee, aber wie finden Sie überhaupt heraus, wo sie sein könnten?

Es beginnt mit der Verbindung Ihres Codes Repositorien zu einem Tool, das Geheimnisse und Passwörter scannt und identifiziert. Das ultimative Ziel ist es, Entdecken Sie 100% Ihrer Geheimnisse und Passwörter in Ihrem Code und schnell sanieren. Unabhängig davon, ob Sie Verschleierung im Code oder authentifizierte Aufrufe an einen Schlüssel-/Zertifizierungs-Tresor außerhalb Ihrer Produktionsumgebung verwenden, ist die Beseitigung dieses Risikos ein einfacher Schritt zur Reduzierung des Gesamtrisikos für Ihre Kunden und Ihr Produkt.

Und wir haben alles für Sie: beide BigID und SmallID einfach verbinden mit GitHub, GitLab und BitBucket zum Scannen von Code-Repos. Wir verwenden beide maschinelles Lernen und sofort einsatzbereite Richtlinien zur Geheimniserkennung, um Geheimnisse und Passwörter in Ihrer Codebasis zu erkennen und so Ihre Datenrisikolage zu verbessern … wo auch immer Sie diese Geheimnisse absichtlich oder unabsichtlich speichern.

Inhalt