Was wir von den Geheimnissicherheitsexperten im AppSec Village auf der DEF CON 32 gelernt haben

Wenn du in den USA aufgewachsen bist, ist es sehr wahrscheinlich, dass du an Sommercamps erinnerst. Selbst wenn du selbst keinen besucht hast, ist die Erfahrung des Wegganges von zuhause, des Erlernens aller Art von Handarbeiten, der Begegnung mit neuen besten Freunden und der Teilnahme an unvergesslichen Abenteuren in die populäre Kultur und die Medien eingebaut. Jedes August findet die größte Hacker-Sommercamps auf der Welt im heißen Las Vegas statt. Dieses Jahr stand die dreiunddreißigste Ausgabe von DEF CON markant.

DEF CON ist schwer zu erklären, ohne ihn selbst erlebt zu haben. Ja, es gibt Redetracks, offizielle Workshops und mehrere Capture-the-Flags (CTFs), aber es gibt viel mehr. Keine andere Konferenz enthält so viele Unterkonferenzen und community-getriebene Veranstaltungen. Sogar Teilnehmer, die seit Jahren dabei sind, sagen, dass sie sich noch nie alle angebotenen Dinge angesehen haben.

Obwohl es keine offizielle Zahl von den Organisatoren veröffentlicht wurde, betrug die Teilnehmerzahl bei früheren Veranstaltungen zwischen 25.000 und 30.000. Jeder und jede Teilnehmer bringt mit sich eine Liebe für Technologie und eine Menge Wissen zu teilen. Die Flure sind voller Leute, die an Hardware hacken, Software schreiben, Musik machen, Stickers teilen und all die Spaß an DEF CON veranstalten.

Die Dörfer

Es gab 33 Dörfer innerhalb von DEF CON 32. Diese decken eine breite Vielfalt von Interessen ab, von Luftraumnutzungsschwindel, Sozialen Engineering, Falschmeldungen bis hin zu Roten Teams und AppSec. Jeder Dorf ist unabhängig organisiert und bietet eine eigene Reihe von Vorträgen, Workshops und praktischen Aktivitäten für Teilnehmer, um mit einem bestimmten Bereich ihrer Konzentration zu interagieren.

AppSec-Village war ein wertvoller Raum innerhalb der größeren Hacker- und Sicherheitsgemeinschaft, der sich auf die Verteidigung der Anwendungen konzentriert, die das Leben aller unserer Lebensbereiche antreiben. Ihr Autor war einer der glücklichen Menschen, die bei der Organisation und Durchführung von AppSec Village 2024 mitwirkten.

Spot the Secrets

Bei AppSec Village auf der RSA Conference 2024 präsentierte GitGuardian Spot the Secrets, ein kartengestütztes Spiel, das die Erfahrung des manuellen Code-Reviews für die Findung von Klartext-Zugängskennungen simuliert. Die Spieler werden gebeten, schnell zu sein, um alle versteckten API-Schlüssel, Passwörter und andere Klartextgeheimnisse zu finden, die Angreifer verwenden könnten, um weiteren Zugang zu einer Sammlung von Codebeispielen, Jira-Tickets, Protokolldateien und Slack-Nachrichten zu erhalten.

Spot the Secrets im AppSec Village, bearbeitet, um den DEF CON-Fotorichtlinien gerecht zu werden

Bei DEF CON besuchten in den 2 Tagen mehr als 120 Personen unser POD im AppSec Village, um dieses Experiment selbst auszuprobieren. Wir hatten sogar eine Leaderboard-Liste, in der die schnellsten Spieler mit den wenigsten Fehlern exklusive Merchandise-Preise gewonnen hatten.

Die am häufigsten gestellten Security-Fragen

Als die Leute begannen, die Karten mit Code zu untersuchen, stießen wir auf eine Vielzahl von Fragen. Wir glauben, es wäre nützlich, einige dieser Fragen zu teilen, falls Sie die Antworten noch nicht gehört haben.

Hier sind die 11 am häufigsten gestellten Fragen und unsere Antworten.

1. Was genau ist ein Commit?

Ein Commit ist ein Arbeits-Unternehmen in Git, dem von über 97 % der global tätigen Entwickler verwendeten Versionskontrollsystem. Es ist ein Momentanes snapshot der Dateisystemstruktur und beinhaltet alle Arbeiten, die der Entwickler seit dem letzten Commit durchgeführt hat. Wenn Sie Commits nacheinander anschauen, erhalten Sie die Git-Historie, die es Ihnen ermöglicht, jeden Schritt der Änderungen im Leben der Codebasis zeilenweise zu betrachten. Eine der geheimen Sicherheits Herausforderungen von Git besteht darin, dass die Historie ein geteiltes dauerhafteres Dokument ist. Wenn ein Geheimnis in einem Commit hinzugefügt und im nächsten Commit entfernt wird, bleibt der Commit mit dem Geheimnis erhalten.

2. Wie können Sie erkennen, was ein Geheimnis ist?

Ein Geheimnis ist jeder Schlüssel, der direkten Zugriff auf ein System oder Daten gewährt. Diese können sich in Form von API-Schlüsseln, Passwörtern, Zertifikaten und Tokens darstellen, um nur einige zu nennen. Teil der Gründe, warum sie schwer auffindbar sind, ist, dass sie auf vielerlei Art und Weise innerhalb des Codes und von der Befehlszeile verwendet werden. Zum Beispiel kann in einer Konfigurationsdatei ein bestimmter Wert für einen API-Schlüssel festgelegt werden. Aber bei Systemen wie Slack befindet sich der API-Token selbst in der URL, was bedeutet, dass Sie mit diesem System vertraut sein müssen, um zu wissen, dass es sich um ein Geheimnis handelt.

Viele Systeme verwenden in ihrer Benutzeroberfläche lange, eindeutige Zahlen in URLs, die sich sehr eng an Inline-Tokens anschließen. Zum Beispiel könnten Figma-URLs scheinbar einen Base64-kodierten String im Pfad enthalten. Allerdings erhalten Sie, wenn Sie eine zufällige Figma-Link aufrufen, ein Login-Bildschirm, da Sie ein authentifizierter Benutzer sein müssen, um zu dieser Seite zu verbinden. Da es keinen automatischen Zugriff auf das System gewährt, sondern lediglich die Identifizierung der Seitenposition erfordert, würde ein Angreifer, der keinen Foothold in Figma hat, den „Kein Zugriff“-Fehler erhalten und weitergehen. Dies ist ein weiterer Grund, um Werkzeuge zur Erkennung von Geheimnissen zu nutzen, da es Plattformen gibt, die schnell zwischen einer URL unterscheiden können, die einen Autorisierungstoken enthält und einer, die nur so scheint.

3. Was bedeutet „gültig“?

Gültig, in unserer Benutzung, bedeutet, dass ein bestimmtes Zertifikat immer noch Zugriff auf das zugehörige System oder die Daten gewährt. Wenn ein Angreifer einen gültigen Geheimnisfund erkennt, könnte er es sofort verwenden. Während ungültige Geheimnisse einem Angreifer Einblick in die Gesamtkonstruktion und die miteinander verbundenen Systeme geben, bieten nur gültige Geheimnisse einem direkten Zugang zu diesen Ressourcen an. solche laterale Bewegungen können schwer zu erkennen sein.

4. Wie soll ich wissen, welche Geheimnisse es sich lohnt, nachzusuchen?

Der beste Antwort ist, dass man alle gültigen Geheimnisse findet und entfernt. Allerdings zeigt Spot the Secrets, dass dies ein schwieriges Problem zu lösen ist, ohne die richtigen Werkzeuge. Manuell durchgeführte Code-Überprüfungen oder Tools, die nur auf einfache Musterausprägungen basieren, können dazu führen, dass du dein Zeit darauf verschwendest, bereits invalidierte Geheimnisse zu beheben, anstatt auf gültige zu集中ieren. Abgelaufene Schlüssel sind keine große Bedrohung, daher sollten die Bemühungen, sie auszumerzen, eine niedrigere Priorität als die gültigen Kennungen haben, die du entdeckt hast.

5. Was ist der Unterschied zwischen einem Geheimnis und nur schlecht geschriebenem Code?

Angreifer lesen wahrscheinlich nicht Ihren Code die meiste Zeit, sondern扫描特定方法, um schnell möglichst breiteren Zugriff zu erhalten. Schlecht geschriebener Code kann viele Schwachstellen enthalten, die ein Angreifer ausnutzen kann, insbesondere im Bereich der Infrastruktur als Code-Konfiguration. Allerdings erfordert die Exploitation dieser Schäden, dass ein Angreifer die Zeit nimmt, das Defizit zu verstehen und einen speziellen Angriff gegen solche Probleme durchzuführen, anstatt einfach Klartext-Zugriffsdaten zu nutzen.

Variablennamen und Benutzernamen können als Teil eines komplexeren Angriffs verwendet werden. Zum Beispiel können in Code gefundene Benutzernamen und E-Mails für Passwort-Spray-Angriffe oder brutale force Versuche verwendet werden, aber diese sind viel einfacher zu erkennen als die direkte Nutzung von geheimen Informationen und für den Angreifer sehr zeitaufwändig.

6. Was soll ich tun, wenn ich ein Geheimnis gefunden habe?

Zuerst stoppen und atmen. Es geschieht auch den Besten von uns, also verzweifeln Sie nicht zu sehr, wenn Sie ein verloren gegangenes Geheimnis finden. Es ist gut, mit Sorgfalt zu handeln, aber panikern und ein gefundenes Geheimnis ohne zu wissen, was passieren wird, widerrufen zu vermeiden, kann zu einer Vielzahl anderer Probleme führen.

Wir empfehlen die folgende Vorgehensweise:

  1. Verstehen, was das Geheimnis öffnet.
  2. Erkennen, wie kritisch die zugehörigen Daten oder das System ist.
  3. Ihre Logs nach unberechtigter Nutzung des Geheimnisses durchsuchen.
  4. Ermitteln, ob Daten oder Zugriff auf Dienste verloren gegangen sind.
  5. Ausfindig machen, was versagen wird, wenn Sie das Geheimnis abwechseln.
  6. Das Geheimnis abwechseln und die neuen Zugangsdaten sicher speichern.
  7. Beheben Sie allfällige fehlerhafter Workflows oder Produktiv-Deployment.
  8. Überprüfen Sie das Ereignis und erstellen Sie einen Aktionsplan, um weitere Verluste von Geheimnissen zu vermeiden.

Lesen Sie mehr über den Reparaturprozess im Artikel „Was tun, wenn Sie ein Geheimnis verraten: Wie Sie ruhig reagieren und auf einen Vorfall reagieren.“

7. Mein Team überschreibt immer die Git-Verlauf, wenn ein Geheimnis entdeckt wird. Ist das alles, was wir tun müssen?

Leider nicht. Obwohl wir die Reinigung des Git-Verzeichnisses als Schritt des Reparaturprozesses lieben, ist es in der Tat der letzte Schritt und wird von vielen Organisationen als optional angesehen. Wir empfehlen die Rotation aller Geheimnisse, die jemals als Klartext暴露 wurden (siehe den obenstehenden Link für Ratschläge zum Reparaturprozess).

8. Lösche ich einfach das Repo aus dem öffentlichen. Genügt das nicht?

Wir sind ehrlich gesagt davon geträumt, dass dies der Fall wäre, aber leider für uns alle, sobald es öffentlich auf GitHub暴露 wurde, sollte es immer als kompromittiert betrachtet werden. GitGuardian durchsucht jede einzelne neue commit– und isPublic-Ereignis, die im Zusammenhang mit der öffentlichen GitHub-API auftritt.

Dadurch können wir unseren jährlichen Bericht „State of Secrets Sprawl“ erstellen und die Grundlage für das GitGuardian Public Monitoring Angebot bilden. Obwohl unser Ziel es ist, Benutzer darauf hinzuweisen, dass sie etwas gefährliches getan haben, sind wir nicht die einzigen Akteure, die diese öffentliche API überwachen. Sie sollten immer davon ausgehen, dass es eine Kopie jedes Code oder Dateien gibt, die Sie jemals öffentlich hochgeladen haben, die von jemandem gemacht wurde, den Sie nicht kennen, und an einem anderen Ort gespeichert wurde, den Sie nicht kennen. Wir empfehlen immer die Rotation aller potenziell暴露en Geheimnissen.

9. Warum sind falsche positive Ergebnisse ein Problem?

In unserem Spiel „Spot the Secrets“ fordern wir von den Benutzern, alle Geheimnisse zu finden, die in 100 möglichen Commits, Jira, Slack und Log-Karten platziert wurden, wobei ein Zeitpenalty für jeden falschen positiven bedeutet, dass die Spieler 10 Sekundenstrafe erhalten, wenn sie ein Karte fälschlicherweise glauben, es enthalte ein Geheimnis, obwohl es keines gibt.

Während es in der begrenzten Schranke der Übung vielleicht anscheinend ist, dass es sicher ist, besonders vorsichtig zu sein und Dinge zu markieren, die Geheimnisse nicht enthalten, ist die Realität in der Regel, dass dies wertvolle Zeit verschwendet, sowohl für Dich als Berichterstatter als auch für jeden, der mit der Lösung einer Sache beauftragt ist.

Jeder Tool oder Prozess, der zu viele falsche positive Ergebnisse melden kann, führt zu Alarmmüdigkeit. Die Benutzer werden mit Alarmmeldungen überflutet und beginnen sie zu vernachlässigen. Dies führt zu einer Vertrautheitsverlust an der Tooling und einer inkonsistenten Nutzung. Es kann auch das Gesamtverfahren der Sanierung blockieren und bedeuten, dass einige tatsächlich positive Geheimnisse nicht rechtzeitig behandelt werden.

10. Wie hat der Dateiname mit der Identifizierung eines Geheimnisses zu tun?

Einfach gesagt: Kontext. Generische Geheimnisse können insbesondere schwer mittels Mustererkennung gefunden werden. Wenn es in einer Markdown-Datei eine lange Zeichenkette gibt, deuten unsere Befunde darauf hin, dass es ein Beispielpasswort ist, sodass du mit dieser Situation wahrscheinlich nicht befasst werden musst. Andernfalls, wenn dieselbe Zeichenkette nach der Zeichenkette password= in einer Datei namens project.env auftaucht, besteht eine weitaus höhere Wahrscheinlichkeit, dass du echtes Geheimnis in den Händen hast.

Der Dateiname ist nur einer der Elemente, die wir mit dem Prä- und Post-Validierungssystem im GitGuardian Geheimnissuch-Modul berücksichtigen und ein der Faktoren, der uns hilft, falsche positive Ergebnisse innerhalb des Plattforms mit dem FP Remover zu eliminieren.

11. Leben die Menschen wirklich manuell Code-Überprüfungen durchzuführen, um Geheimnisse zu finden?

Ja. Eine volle 27 % der IT-Entscheidungsträger, die wir befragt haben, sagten, dass sie auf manuelle Code-Überprüfungen setzen, um das Verbreiten von Geheimnissen zu beheben, obwohl 75 % sagten, dass sie von einem Geheimnisschlitz betroffen waren.

Spot the Secrets wurde entwickelt, um die Probleme aufzuspielen, die mit dem Verlassen von Menschen auf ihre Fähigkeit zu existieren aufwiesen, diese Probleme zu erkennen. Maschinen sind viel besser in der Mustererkennung über tausende oder Millionen von Zeilen Code.

Lernen zusammen ist das, worum DEF CON immer ging

Wir lernten auf der DEF CON viel andere Dinge, einschließlich hydratierte zu bleiben, mindestens ein paar Stunden Schlaf pro Nacht zu bekommen und uns drinnen zu halten, wenn es draußen mehr als 110°F/43°C ist.

Es gab so viele hervorragende Vorträge im Programm; wir können nicht abwarten, bis die Videos verfügbar sind, um auf dem Inhalt aufzurückzuwerden, den wir während der Hilfe bei der Lernung über den Secrets Sprawl verpasst haben. Auf dem Weg dorthin lernten wir viel über die Art und Weise, wie Security-Personen, Entwickler und Menschen generell dieses Problem sehen und über Lösungen denken. Wir bei GitGuardian hoffen, diese Lektionen integrieren zu können, um das Lösen dieses Problems für uns alle zugänglicher und einfacher zu machen.

Wenn du noch nie dachtest, zu DEF CON zu gehen, empfehlen wir es dir sehr, nur aus den Gründen, um am AppSec Village teilzunehmen und zu finden Ihre Stammesgenossen auf dem Hacker-Sommercamp.


Source:
https://dzone.com/articles/secrets-security-at-appsec-village-at-def-con-32