Aikido

Secrets Worauf Sie bei der Auswahl eines Tools achten sollten

Mackenzie JacksonMackenzie Jackson
|
Keine Elemente gefunden.

Das Erste, was die meisten Menschen tun, wenn sie ein Tool secrets ausprobieren, ist Folgendes:

AWS_SECRET_KEY = "FAKEAWSSECRETKEY123456"
PASSWORD = „password123”

Sie führen den Scan durch, es wird nichts gemeldet, und die unmittelbare Reaktion lautet in etwa:

„Was für ein nutzloses Werkzeug. Das hätte sogar mein Hund fangen können.“

Das scheint doch ganz offensichtlich zu sein. secrets zu finden secrets doch sicherlich der einfachste Teil der Sicherheit, oder? Einfach nach „password=“ suchen, ein paar reguläre Ausdrücke eingeben und fertig. Wie schwer kann das schon sein?

Und in gewisser Weise haben Sie Recht. secrets einfach, Zeichenfolgen zu finden, die wie secrets aussehen. Das Schwierige ist, echte secrets zu finden, secrets sich in falschen Positiven zu verlieren.

Lassen Sie uns gemeinsam einen Blick darauf werfen, warum das Testen schwieriger ist, als es scheint, warum die schlechtesten Lösungen oft wie die besten aussehen und wie Sie diese Tools tatsächlich bewerten sollten.

Wie Secrets funktioniert

Es gibt zwei Hauptansätze zur Erkennung secrets: regelbasiertes Musterabgleich und Entropiestatistik.

Die regelbasierte Erkennung stützt sich auf reguläre Ausdrücke, um secrets einer definierten Struktur zu erkennen. AWS-Schlüssel sind ein klassisches Beispiel dafür. Sie beginnen immer mit dem gleichen Präfix und haben eine feste Länge, sodass ein regulärer Ausdruck wie dieser sie erkennen kann:

AKIA[0-9A-Z]{16}

Es fühlt sich mächtig an, wenn man sieht, wie es einen Schlüssel im Code markiert. Bis man merkt, dass es auch jeden Platzhalter markiert, der wie einer aussieht.

AWS_ACCESS_KEY_ID="AKIA1234567890123456"

Für einen Schlüssel ist das nicht weiter schlimm, aber wenn man Tausende von Regeln einführt, wird es schnell sehr unübersichtlich. Regex ist nützlich, aber es kann echte Schlüssel nicht von Dummy-Schlüsseln unterscheiden, sodass man am Ende ein fragiles, unübersichtliches Durcheinander hat.

Filtern mit geheimer Validierung

Eine der besten Möglichkeiten, Fehlalarme zu reduzieren, ist die Validierung secrets der Erkennung. Dies bedeutet in der Regel, einen sicheren API-Aufruf durchzuführen. Ein AWS-Schlüssel kann beispielsweise mit folgendem Befehl getestet werden:

aws sts get-caller-identity --access-key <KEY> --secret-key <SECRET>

Wenn der Aufruf erfolgreich ist, haben Sie einen Live-Schlüssel. Wenn er fehlschlägt, können Sie die Warnmeldung sicher herabstufen. 

Das ist großartig, weil Sie zunächst ein sehr großes Netz auswerfen und es später eingrenzen können. Aber hier kommt der Haken: Wenn Sie ein Tool testen, übertragen Sie keine echten AWS-Schlüssel an GitHub. Sie verwenden gefälschte Schlüssel. Ein Tool, das Schlüssel validiert, wird diese als ungültig verwerfen und Ihnen null Ergebnisse anzeigen. Unterdessen scheint das weniger leistungsfähige Tool, das alles markiert, eine bessere Leistung zu erbringen.

Filtern mit Entropie-Statistik

Ich denke, wir müssen hier kurz erklären, was Entropie bedeutet. Strings mit hoher Entropie beziehen sich auf einen String mit einem hohen Maß an Zufälligkeit; mehr Zufälligkeit = mehr Entropie. 

TextEntropie
Passwort2.75
Passwort!2.9477
EmjmpdNg23WFNV093.75
?QJL4+otvghW!/$:@{k§4.39

secrets meisten secrets validiert werden, daher greifen Tools auf andere Methoden zurück, um Störsignale zu reduzieren. Entropiestatistiken sind eine der effektivsten Methoden.

Die Idee ist einfach: Echte secrets zufällig secrets . Platzhalter hingegen nicht. Betrachten Sie diesen gefälschten Stripe-Schlüssel:

StripeKey = „SK_123456789”

Es passt zum regulären Ausdruck, ist aber nicht zufällig genug, um echt zu sein. Ein echter Schlüssel hat eine viel höhere Entropie, etwas, das Menschen nur sehr schlecht fälschen können.

 Auch die Filterung englischer Wörter ist hilfreich. Echte API-Schlüssel enthalten fast nie lesbare Wörter. Wenn Sie etwas wie Folgendes sehen:

TEST823hufb934

können Sie ziemlich sicher sein, dass es sich um einen Platzhalter oder Testzugang handelt. Gute Tools stufen Zeichenfolgen, die eine hohe Entropie mit offensichtlichen Wörterbuchwörtern wie TEST, PASSWORD oder DEMO kombinieren, herab oder ignorieren sie. Dies führt häufig zu Problemen beim Testen, da es für Menschen tatsächlich sehr schwierig ist, Entropie vorzutäuschen. Wir folgen beim Tippen ganz natürlich bestimmten Mustern, auch wenn wir uns dessen nicht bewusst sind. 

Leider ist dies auch nicht immer so einfach, da API-Schlüssel Zeichenfolgen mit hoher Entropie sind. UUIDs, Hashes und Dateinamen sind ebenfalls Zeichenfolgen mit hoher Entropie und keine secrets. Daher ist es wichtig, auch den Kontext des Geheimnisses zu berücksichtigen. Die besten Lösungen kombinieren Entropie, Kontext und Wortfilterung. Dies führt jedoch zu Problemen beim Testen, da gefälschte Anmeldedaten, die nicht zum Inhalt passen, ebenfalls ignoriert werden. 

Warum die schlechtesten Werkzeuge am besten aussehen

Das ist das Paradoxon. Die schlechtesten Lösungen, die bei jeder verdächtig aussehenden Zeichenfolge Alarm schlagen, schneiden in Schnelltests gut ab. Sie erkennen Ihre Dummy-Schlüssel und -Passwörter problemlos. Die intelligenteren Tools scheinen nicht zu funktionieren, weil sie Ihre Fälschungen stillschweigend ignorieren.

Wenn Sie nicht mit realistischen Daten testen, loben Sie am Ende das fehlerhafte Tool und lehnen dasjenige ab, das Ihnen in der Produktion tatsächlich helfen würde.

Wie man Secrets richtig aufspürt

Wenn Sie eine faire Bewertung wünschen, benötigen Sie bessere Testdaten.

Eine Möglichkeit sind Honey Tokens. Mit Diensten wie CanaryTokens können Sie harmlose, aber realistische Anmeldedaten generieren. Ein gutes Tool sollte diese sofort erkennen.

Ein anderer Ansatz besteht darin, echte Schlüssel ohne Berechtigungen zu erstellen, Ihre Tests auszuführen und diese anschließend zu widerrufen. Auf diese Weise erhalten Sie sichere, aber gültige Eingaben, die die Validierungslogik auslösen.

Die beste Methode ist jedoch, das Tool auf echten Codebasen auszuführen. Secrets in Repositorys weit verbreitet, insbesondere tief in der Commit-Historie. Das Scannen tatsächlicher Projekte zeigt, wie sich ein Tool unter realistischen Bedingungen verhält, und liefert Ihnen einen Benchmark, auf den Sie sich verlassen können.

Was macht ein gutes Tool Secrets aus?

Ein leistungsstarkes Tool secrets sollte alle folgenden Funktionen erfüllen:

  1. secrets Möglichkeit validieren
    Bestätigen Sie echte secrets sicheren API-Aufrufen, wenn die Anbieter dies zulassen.

  2. Unterstützung spezifischer Geheimmuster
    Erkennen Sie strukturierte Schlüssel wie AWS, Stripe und Twilio mithilfe von Regex- oder Musterregeln.

  3. Behandeln Sie generische secrets Entropie und Kontext
    Verwenden Sie Zufallsbewertung und die Analyse des umgebenden Codes, um secrets feste Muster zu erkennen.

  4. Filtern Sie gefälschte oder Test-Anmeldedaten heraus
    Herabstufen Sie Schlüssel, die offensichtliche Wörter aus dem Wörterbuch wie TEST oder PASSWORD enthalten.

  5. Decken Sie eine Vielzahl von Geheimtypen ab
    Neben API-Schlüsseln auch Zertifikate, SSH-Schlüssel, Datenbankpasswörter und mehr.

  6. Verhindern Sie Lecks, bevor sie auftreten
    Stellen Sie Pre-Commit-Hooks oder IDE-Integrationen bereit, IDE-Integrationen verhindern, secrets jemals in die Versionskontrolle gelangen.

  7. Skalierung über Repositorys und Pipelines hinweg
    Arbeiten Sie effektiv in CI/CD, über Historien hinweg und im Unternehmensmaßstab.

Zusammenfassung

Secrets sieht einfach aus, aber es zu testen ist alles andere als einfach. Die lauten Tools, die jedes gefälschte Geheimnis markieren, können beeindruckend wirken, während die intelligenteren Tools, die validieren und filtern, weniger zu tun scheinen.

Wenn Sie ordnungsgemäß testen möchten, verwenden Sie Honey Tokens, eingeschränkte Zugriffsschlüssel oder echte Repositorys. Achten Sie bei der Bewertung auf die Eigenschaften, die in der Produktion wichtig sind: Validierung, Mustererkennung, Entropieanalyse, Wörterbuchfilterung, breite Abdeckung und vor allem Prävention vor dem Commit.

Denn der gefälschte AWS-Schlüssel, den Sie zu Testzwecken platziert haben, ist nicht gefährlich. Der echte Schlüssel, der sich in aller Öffentlichkeit versteckt, ist es jedoch.

4.7/5

Sichern Sie Ihre Software jetzt.

Kostenlos starten
Ohne Kreditkarte
Demo buchen
Ihre Daten werden nicht weitergegeben · Nur Lesezugriff · Keine Kreditkarte erforderlich

Werden Sie jetzt sicher.

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.
Keine Elemente gefunden.