Joins ohne Match-Abschnitt implementieren

Unterstützt in:

In diesem Dokument wird das Konzept von Join-Vorgängen ohne match-Abschnitt oder Data Join in Google Security Operations Search erläutert.

Mit Join-Vorgängen können Sie Rohdaten aus mehreren Quellen auf Grundlage gemeinsamer Feldwerte korrelieren und kombinieren. Durch die Kombination von zugehörigen Sicherheitsereignissen und ‑entitäten in einer einzigen, umfassenden Ansicht können Sie eine effektivere Bedrohungserkennung und ‑untersuchung ermöglichen.

Im Gegensatz zu statistischen Joins, für die ein match-Abschnitt zum Aggregieren von Ergebnissen erforderlich ist, werden beim Daten-Join die vollständigen Ereignis- oder Entitätsdaten abgerufen und ohne Aggregation angezeigt.

Funktionsweise von Daten-Joins

Sie können einen Daten-Join erstellen, indem Sie gemeinsame Felder in verschiedenen Ereignis- oder Entitätsblöcken in Beziehung setzen. Dazu haben Sie folgende Möglichkeiten:

  • Felder direkt gleichsetzen (z. B. $e1.principal.hostname = $e2.principal.hostname)

  • Weisen Sie beide Felder derselben Platzhaltervariablen zu, z. B. $host = $e1.principal.hostname und $host = $e2.principal.hostname.

In beiden Fällen werden die Blöcke in Search implizit zusammengeführt, wenn die Werte dieser Felder identisch sind.

Unterstützte Arten der Datenzusammenführung

In Ihren Suchanfragen können Sie die folgenden Daten-Join-Typen verwenden:

  • Event-to-Event-Joins:Daten zwischen zwei verschiedenen UDM-Ereignistypen (Unified Data Model) korrelieren.

  • Event-to-ECG joins:UDM-Ereignisdaten mit Informationen aus dem Entity Context Graph (ECG) anreichern.

Verknüpfungen zwischen Ereignissen

Event-to-Event-Joins eignen sich am besten, um Felder zwischen zwei verschiedenen UDM-Ereignistypen in Beziehung zu setzen. Das ist nützlich, um Sequenzen von Ereignissen oder Aktionen zu finden, an denen dieselben Entitäten in verschiedenen Logquellen oder Ereignistypen beteiligt sind.

Im folgenden Beispiel werden alle Netzwerkverbindungen (NETWORK_CONNECTION) gefunden, die von einem Host stammen, auf dem auch eine Nutzeranmeldung (USER_LOGIN) stattgefunden hat:


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the
  $host placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

Beschränkungen

  • Es können maximal zwei Ereignisse zusammengeführt werden.

  • Der Zeitraum für die Abfrage ist auf maximal 14 Tage begrenzt.

  • Das Abfragelimit beträgt 120 Abfragen pro Stunde.

Beispiele

Im folgenden Beispiel werden alle Netzwerkverbindungen (NETWORK_CONNECTION) gefunden, die von einem Host stammen, auf dem auch eine Nutzeranmeldung (USER_LOGIN) stattgefunden hat:


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the $host
  placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

Zusammenführen anhand der User-ID


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.user.userid = $user

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.user.userid = $user

Über IP-Adresse teilnehmen


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.ip = $ip

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.ip = $ip

Verknüpfungen von Ereignis- und Entitätskontextdiagrammen

Verknüpfungen von Ereignissen mit dem ECG eignen sich am besten, um UDM-Ereignisse mit Kontextdaten zu den beteiligten Einheiten (z. B. Assets, Nutzer) aus dem ECG anzureichern. Durch diesen Join erhalten Sie ein umfassenderes Bild, da Echtzeit-Ereignisdaten mit historischen und relationalen Informationen zu Einheiten kombiniert werden.

Beschränkungen

  • Der Zeitraum für die Abfrage ist auf maximal 14 Tage begrenzt.

  • Das Abfragelimit beträgt 120 Abfragen pro Stunde.

  • In der Abfrage können maximal zwei UDM-Ereignisse zusammengeführt werden.

  • In der Abfrage kann maximal ein EKG-Ereignis verknüpft werden.

  • Der Export in eine Datentabelle wird für Join-Abfragen vom Typ „Ereignis zu EKG“ nicht unterstützt.

  • ECG-to-ECG-Joins werden nicht unterstützt.

  • Joins von EGK-Daten zu Datentabellen werden nicht unterstützt.

Beispiele

Mit dieser Abfrage werden Ereignisse für Netzwerkverbindungen mit Asset-Informationen aus dem ECG angereichert, indem der Hostname verwendet wird.


  // Find network connections and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e1.principal.asset.hostname

  // Find asset entities in the graph and join where the hostname matches the
  $host placeholder

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.asset.hostname

Mit einer bestimmten Protokollart über die IP-Adresse beitreten


  $ip = $e1.principal.ip

  $ip = $g1.graph.entity.ip

  $e1.metadata.log_type = "WINDOWS_DEFENDER_ATP"

  $g1.graph.entity.ip = "10.19.6.24"

Mit einem bestimmten IP-Filter nach Hostname zusammenführen


  $e1.metadata.event_type = "FILE_CREATION"

  $host = $e1.principal.hostname

  $e1.principal.ip = "10.0.0.76"

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.hostname

Best Practices

Um Leistungseinbußen und Zeitüberschreitungen bei Abfragen zu vermeiden, sollten Sie in Ihren Join-Abfragen spezifische und enge Filter in jedem Block ($e1, $e2, $g1) verwenden.

Eine allgemeine Anfrage wie die folgende:

$e1.metadata.event_type = "USER_LOGIN"
$e2.metadata.event_type = "NETWORK_CONNECTION"
right join $e1.principal.hostname = $e2.principal.hostname

Kann durch Hinzufügen bestimmter Kriterien optimiert werden:


$e1.metadata.event_type = "USER_LOGIN"
$e1.principal.ip = "192.168.1.101"
$e1.principal.user.userid = "alex"
$e2.metadata.event_type = "NETWORK_CONNECTION"
$e2.src.hostname = "altostrat.com"
right join $e1.principal.hostname = $e2.principal.hostname

Mit Ergebnissen arbeiten

Die Ergebnisse einer Datenverknüpfung werden in einer Tabelle Joins (Verknüpfungen) angezeigt, einschließlich der kombinierten Felder aus beiden korrelierten Ereignissen. Diese Tabelle unterscheidet sich von einer Statistikansicht, da sie die vollständigen Ereignis- oder Entitätsdaten und nicht eine aggregierte Anzahl enthält.

Nachdem Sie eine Abfrage ausgeführt haben, können Sie die Ergebnisse auf folgende Weise bearbeiten:

  • Als CSV-Datei herunterladen:Exportieren Sie das vollständige Ergebnis-Set in eine CSV-Datei für die Offlineanalyse.

  • In Datentabellen exportieren:Speichern Sie die Ergebnisse in einer Datentabelle in Ihrer Instanz, um sie als Referenz zu verwenden oder weiter zu korrelieren (nur für Event-to-Event-Joins).

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten