Scraping Github: Suche nach "Geheimnissen", die es zu entwickeln gilt

Bild

Bei der Entwicklung eines Softwareprodukts oder eines Cloud-basierten SaaS-Dienstes ist es schwierig, die Aktivitäten aller am Entwicklungsprozess beteiligten Spezialisten von Drittanbietern zu verfolgen. Öffnen Sie einfach Github, geben Sie in die Suche "<company_domain_name.com> pass" ein und werten Sie die Ergebnisse aus. Für den Fall, dass Github in seiner Bereitstellung wirklich etwas Interessantes zeigt, werden wir Szenarien in Betracht ziehen, die Angreifern helfen können, den Geschäftsprozess Ihres Unternehmens zu stören. Und wenn Github immer noch schweigt, werden wir alternative Optionen für den Angriff auf den Produktentwicklungszyklus in Betracht ziehen, bei denen nicht nur Entwickler, sondern auch Sicherheitsingenieure zum Einstiegspunkt in die Infrastruktur werden können.

Github-Verschrottung


Mit den richtigen Suchanfragen können Sie alle Arten von Codefragmenten finden, die Anmeldeinformationen für die Verbindung mit der Unternehmensinfrastruktur enthalten und von Entwicklern und Qualitätssicherungsingenieuren verwendet werden. Es kann jedoch nicht nur Github auf Geheimnisse untersucht werden. Mithilfe der Methode zum Durchsuchen öffentlicher Repositorys nach Geheimnissen (Kontodaten, private Schlüssel usw.) können Sie bereits vor Beginn der direkten Sicherheitsanalyse auf interessante Stellen in der Anwendung zugreifen.

Angesichts der Tatsache, dass viele Produkt-IT-Unternehmen mit völlig unterschiedlichen Reifegraden (vom Start-up bis zum Unternehmensgeschäft) verschiedene Auftragnehmer in ihren Entwicklungszyklus einbeziehen, steigt die Wahrscheinlichkeit, dass wertvolle Daten in öffentliche Repositories gelangen. Jeder am Entwicklungszyklus beteiligte Experte birgt bestimmte Risiken für das Produkt.

So können beispielsweise bei der Suche nach Quellcode-Fragmenten, die die Domäne eines SaaS-Produkts enthalten, Fragmente von Autotests gefunden werden, die privilegierte Anmeldeinformationen für die Verbindung mit der Plattform enthalten. Um sicherzustellen, dass dieses Beispiel nicht hypothetisch, sondern realistisch ist, rufen Sie Techcrunch auf, suchen Sie den Namen eines Unternehmens, das das SaaS-Produkt anbietet, und suchen Sie auf dem Github nach seiner Domain.

Wir öffnen Neuigkeiten über Startups, sehen viele Blockchain-Wallets und Blockchain-Plattformen, wählen jedes Startup mit einem ausgefallenen Namen aus und suchen auf dem Github nach seiner Domain. Wir kennen viele Geheimnisse in verschiedenen Skripten, um uns mit der Plattform zu verbinden.

Bild
Eine Suche auf Github nach den richtigen Abfragen eröffnet viele interessante Skripte mit Geheimnissen

Am häufigsten werden Geheimnisse in den folgenden Repositorys gefunden:

  • Code-Autotests, die QS-Ingenieure in ihren persönlichen öffentlichen Repositories sichern;
  • Repositories von Vertragsorganisationen, die für die Integration der Kunden in das Produkt verantwortlich sind;
  • Persönliche Repositories von Entwicklern, die ihre internen Tools sichern;
  • Produktinstallationsskripte und Mikroservicedateien für das Grundgerüst, die von Auftragnehmern verwendet werden, die für die Installation und Wartung des Produkts (des Betriebs) verantwortlich sind.

Bild
Ein Beispiel eines im Code verbliebenen Geheimnisses: ein privater Schlüssel zum Herstellen einer Verbindung zur SaaS-Plattform

Ein Beispiel für Geheimnisse, mit denen ein Angreifer ein Produkt oder seinen Benutzer gefährden kann:

  • Verbindungsdaten (Beispiel für Suchanfragen: "Produktname + Pass", "Domänenname + Login");
  • private Schlüssel und Zertifikate (Beispiel für eine Suchabfrage: "domain_name + private").

Geheimnisse der Sicherheitsingenieure


Jemand von Sicherheitsexperten rief jetzt aus: "Aber wenn die Entwickler Hashicorp Vault verwendet hätten, wären diese Probleme nicht aufgetreten!" Ja, unter bestimmten Bedingungen sind solche Lösungen für die geheime Verwaltung wirksam. Manchmal machen jedoch auch Sicherheitsexperten Fehler.

Nutzen Sie die besten kommerziellen Lösungen für die statische Code-Analyse auf Schwachstellen (SAST). Dazu gehören wahrscheinlich große und teure Produkte, die eine vollständige Plattform für die Integration in CI / CD-Entwicklungsprozesse darstellen und über APIs für Automatisierungsskripte von Drittanbietern verfügen.

SonarQube ist ein Beispiel für eine Plattform zur Analyse der Codequalität und -sicherheit. Seine Popularität zeigt sich in der Anzahl der Installationen, die mit einer einzigen Anfrage in Shodan zu finden sind:
Hafen: 9000 Sonarqube

Bild
Geografie der verfügbaren Installationen der SonarQube-Plattform

Bild
Anzahl der SonarQube-Installationen nach Land

Wenn Sie in Github nach Geheimnissen im Zusammenhang mit SonarQube suchen, finden Sie kleine Skripte, mit denen Sie den Scan verbinden und steuern können.

Bild
Skripte, die (möglicherweise) Geheimnisse für die Verbindung zur Plattform enthalten

In der offiziellen SonarQube-Dokumentation finden Sie eine Beschreibung des Formats zum Starten von Aufgaben über die CLI. Insbesondere ist einer der Schlüssel für die Übertragung von Daten über das Konto verantwortlich, für das der Befehl ausgeführt wird.

Bild
Schlüssel, die für die Übertragung von Kontoinformationen auf der Plattform verantwortlich sind

Mit diesen Informationen erhalten Sie relevantere Suchergebnisse. Suchen, die "sonar + login" oder "sonar + password" enthalten, ermöglichen das Auffinden von Automatisierungsskripten, die nicht nur von Entwicklern, sondern auch direkt von Sicherheitsbefehlen verwendet werden.

Bild
Wir haben die Dokumentation gelesen, eine neue Anfrage gestellt und ein relevanteres Problem erhalten

Secrets Search-Automatisierung


Sie können im offiziellen Repository des Unternehmens oder in den inoffiziellen Repositorys der Mitarbeiter oder Auftragnehmer (und möglicherweise der Benutzer) nach Geheimnissen suchen. Das Auffinden von Geheimnissen auf Github oder in anderen Repositories kann wie folgt veranschaulicht werden:

Bild
Suchvorgang für Geheimnisse

Um diese Aktionen zu automatisieren, gibt es viele Dienstprogramme und Skripte. Es wird daher empfohlen, das Rad nicht neu zu erfinden. Beispielsweise können Sie die folgenden Tools verwenden:

  • gitGrabber (https://github.com/hisxo/gitGraber) - ermöglicht die Echtzeitüberwachung von Github und anderen Diensten auf Geheimnisse. Geeignet für die Überwachung des Auftretens von Geheimnissen bei bestimmten Suchanfragen.
  • gitLeaks (https://github.com/zricethezav/gitleaks) - ein Tool zum Überwachen bestimmter Repositorys auf das Auslaufen von Geheimnissen. Hervorragend geeignet für die Überwachung des offiziellen Repositorys des Unternehmens.

Wenn diese Dienstprogramme zusammen mit für ihre Zwecke relevanten Abfragen verwendet werden, kann ein System zur Überwachung der Weitergabe von Geheimnissen an öffentliche Verwahrungsorte organisiert werden. Gleichzeitig müssen Sie, wie die Kollegen von AppSec in den Kommentaren auf Twitter richtig angemerkt haben, geheime Verwaltungslösungen implementieren und verwenden, um das Geheimnis geheim zu halten. Zum Beispiel Hashicorp Vault, das einem separaten Material gewidmet ist .

Forscher, erfolgreiche Suche! An Entwickler, sichere Commits!

Source: https://habr.com/ru/post/de484462/


All Articles