Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Kontextsensitive Analysen erstellen

Mit Chronicle können Sie Telemetrie, Entitätskontext, Beziehungen und Sicherheitslücken als eine Erkennung in Ihrem Chronicle-Konto ansehen. Sie bietet Entitätskontextualisierung, damit Sie die Verhaltensmuster in der Telemetrie und den Kontext der betroffenen Entitäten anhand dieser Muster verstehen können.

Beispiele:

  • Berechtigungen für ein Konto anzeigen, für das ein Brute-Force-Log-in versucht wird.
  • Die Bedeutung der von einem Asset gehosteten Daten, die auch die Quelle der ausgehenden Netzwerkaktivitäten sind.

Kunden können mit dieser Kontexterkennung Erkennungsfilterung, heuristische Benachrichtigungen priorisieren, untersuchen und untersuchen.

Sicherheitsanalysten und Erkennungsentwickler arbeiten in der Regel daran, eine Erkennung anhand eines grundlegenden Musters von Ereignistelemetrie (einer ausgehenden Netzwerkverbindung) zu erstellen. Damit können die Analystinnen und Analystinnen und -Analysten dann viele Erkennungsmechanismen identifizieren. Die Analystinnen und Analysten versuchen, herauszufinden, was die Benachrichtigung ausgelöst hat und wie hoch die Bedrohung ist.

Bei der kontextsensitiven Analyse werden erweiterte Anreicherungsfunktionen bereits früher im Workflow für die Erkennungserstellung und -ausführung eingebunden, sodass Sie folgende zusätzliche Funktionen zur Verfügung stellen können:

  • Relevante Informationen für heuristisches Kontext-Risikobewertung von Erkennungsmechanismen zur Zeitpunkt der Erkennung und nicht während der manuellen Bewertung bereitstellen
  • Weniger Zeitaufwand für die Auswahl und manuelle Zusammenführung von Informationen aus verschiedenen IT-Sicherheitssystemen (EDR-Konsolen, Firewall-/Proxy-Logs, CMDB- und IAM-Kontext, Ergebnisse des Scannens auf Sicherheitslücken)
  • Analystinnen und Analysten und Erkennungstechniker haben die Möglichkeit, ganze Cluster schädlicher Bedrohungen herauszufiltern oder nur wenig oder gar keine Gefahr für das Unternehmen zu erkennen (Malware-Tests in einer Sandbox-Umgebung, Sicherheitslücken und ungewöhnliche Aktivitäten in einem Entwicklungsnetzwerk ohne sensible Daten oder Zugriffe).

Regeln für kontextsensitive Analysen schreiben

Mit den Erkennungs-Engine-Regeln können Sie in Ihrem Chronicle-Konto nach Entitätskontextdaten suchen.

So suchen Sie nach Entitätkontextdaten:

  1. Geben Sie eine Quelle an, indem Sie entweder „udm“ oder „entity“ verwenden.

    $eventname.[<source>].field1.field2 Für einen Entitätskontext ist <source> „graph“. Bei einem UDM-Ereignis ist <source> „udm“. Wenn keine Angabe gemacht wird, wird standardmäßig udm als <source> verwendet.

  2. Geben Sie die Entitätsdaten an:

    $e1.graph.entity.hostname = "my-hostname"

    $e1.graph.entity.relations.relationship = "OWNS"

  3. Geben Sie UDM-Ereignisdaten an. Die folgenden Aussagen sind äquivalent.

    $e1.udm.principal.asset_id = "my_asset_id"

    $e1.principal.asset_id = "my_asset_id"

Sie können viele der gleichen Regeltypen für Entitätskontexte wie für UDM-Ereignisse erstellen, darunter:

  • Mehrere Ereignisregeln

  • Entitätskontexte mit anderen Entitätskontexten vergleichen

  • Entitätskontexte mit UDM-Ereignissen vergleichen

  • Wiederkehrende Felder in Entitätskontexten

  • Schiebefenster

  • Risikobewertung für Erkennung berechnen

Im Gegensatz zu einem UDM-Ereignis hat ein Entitätskontext keinen bestimmten Zeitstempel. Jeder Entitätskontexteintrag hat ein Zeitintervall (entity.metadata.interval), über das der Entitätskontext gültig ist. Dieses Zeitintervall kann keine Tagesgrenze sein und kann eine beliebige Dauer umfassen.

Ein UDM-Ereignis wird nur dann mit einem Entitätskontextdatensatz korreliert, wenn der Zeitstempel des UDM-Ereignisses in das Zeitintervall des Entitätskontexteintrags fällt. Wenn diese Bedingung nicht erfüllt ist, werden die UDM und die Entität nicht auf Erkennung geprüft. Die Erkennungs-Engine erzwingt dies implizit und Sie müssen sie nicht als Bedingung in einer Regel angeben.

  • Beim Vergleich von UDM-Ereignissen mit einem Entitätskontext mit Windowing stellt ein Entitätskontext einen konstanten Wert über ein bestimmtes Fenster dar.
  • Wenn es angrenzende Buckets mit Tagenswerte gibt, in denen der Entitätskontext seinen Wert ändert, versucht Chronicle, alle Entitätskontextwerte abzugleichen und alle gefundenen Übereinstimmungen zurückzugeben.

Beispielregeln

Entitäten mit Administratorkontext suchen

Mit der folgenden Regel wird nach Entitäten gesucht, die auch an Administratorberechtigungen gebunden sind. Es wird gesucht, wenn jemand mit Administratorberechtigung versucht hat, sich beim System an- oder abzumelden.

rule LoginLogout {
  meta:
  events:
    $log_in.metadata.event_type = "USER_LOGIN"
    $log_in.principal.user.user_display_name = $user

    $log_out.metadata.event_type = "USER_LOGOUT"
    $log_out.principal.user.user_display_name = $user

    $log_in.metadata.event_timestamp.seconds <=
     $log_out.metadata.event_timestamp.seconds

    $context.graph.entity.user.user_display_name = $user
    $context.graph.entity.resource.attribute.roles.type = "ADMINISTRATOR"

  match:
    $user over 2m

  condition:
    $log_in and $log_out and $context
}

Beispiel für fließendes Fenster

Das folgende Beispiel für ein gleitendes Fenster ist gültig.

rule Detection {
  meta:
  events:
    $e1.graph.entity.hostname = $host
    $e2.udm.principal.hostname = $host

  match:
    // Using e2 (a UDM event) as a pivot.
    $host over 3h after $e2

  condition:
    $e1 and $e2
}

Beispiel für ein ungültiges fließendes Fenster

Das folgende Beispiel für ein gleitendes Fenster ist ungültig. Der Entitätskontext kann nicht als Pivot für ein Schiebefenster verwendet werden.

rule Detection {
  meta:
  events:
    $e1.graph.entity.hostname = $host
    $e2.udm.principal.hostname = $host

  match:
    // Attempting to use $e1 (an entity context) as a pivot. Invalid.
    $host over 3h after $e1

  condition:
    $e1 and $e2
}

Beispiel für die Anmeldung im Bereich für Ergebnisse

Im folgenden Beispiel wird der Abschnitt outcome verwendet, um eine Risikobewertung für die Erkennung zu berechnen.

rule Detection {
  meta:
  events:
    $auth.metadata.event_type = "USER_LOGIN"
    $auth.metadata.vendor_name = "Acme"
    $auth.metadata.product_name = "Acme SSO"
    $auth.target.user.userid = $user
    $auth.target.user.termination_date.seconds > 0

    $auth.metadata.event_timestamp.seconds >
       $context.graph.entity.user.termination_date.seconds

    $context.graph.metadata.vendor_name = "Microsoft"
    $context.graph.metadata.product_name = "Azure Active Directory"
    $context.graph.metadata.entity_type = "USER"
    $context.graph.entity.user.userid = $user
    $context.graph.entity.user.termination_date.seconds > 0

  match:
    $user over 15m

  outcome:
    $risk_score = max(
        if ( $auth.metadata.event_type = "USER_LOGIN", 50) +
        if (
            $context.graph.entity.user.title = "Remote" nocase or
            $context.graph.entity.user.title = "Temp" nocase or
            $context.graph.entity.user.title = "Vendor" nocase, 40) +
        if ( $context.graph.entity.user.title = "Legal" nocase, 10)
    )

  condition:
    $auth and $context
}

Beispiel für den Start eines verdächtigen Prozesses

Im folgenden Beispiel werden UDM-Ereignisprozessdaten mit IOC-Kontextdaten verglichen, die als Entitätskontext gespeichert sind.

rule ProcessLaunch {
  meta:
  events:
    $ioc.graph.metadata.vendor_name = "ACME"
    $ioc.graph.metadata.product_name = "IOCs"
    $ioc.graph.metadata.entity_type = "FILE"
    $ioc.graph.entity.file.sha256 = $hash

    $process.metadata.event_type = "PROCESS_LAUNCH"
    $process.principal.hostname = $hostname
    (
        not $process.target.process.file.sha256 = "" and
        $process.target.process.file.sha256 = $hash
    )

  match:
    $hash over 15m

  condition:
    $ioc and $process
}

Zusätzliche Qualifizierer für den Entitätskontext

Zum Erstellen einer Ereignisvariablen mit einem Entitätskontext müssen Sie nach dem Ereignisnamen ein <source> angeben. Die <source> muss graph sein.

Das folgende Muster verweist auf einen Entitätskontext:

  • $e.graph.entity.hostname

Es gibt zwei gleichwertige Methoden, um auf ein UDM-Ereignis zu verweisen:

  • $u.udm.principal.asset_id
  • $u.principal.asset_id

Sie können alle Kennzeichner im Regeltext beliebig kombinieren. Sie können auch verschiedene Qualifizierer für dasselbe Ereignis verwenden.

Ergebnisbereich

Die Erkennungs-Engine unterstützt den Abschnitt outcome, mit dem Sie weitere Informationen aus einer Regel ableiten können. Die im Abschnitt outcome definierte Logik wird anhand jeder Erkennung ausgewertet. Wenn eine Regel N-Erkennungen generiert, kann jede N-Erkennung zu einer anderen Gruppe von Ergebnissen führen.

Eine Beispielregel mit dem Abschnitt outcome finden Sie hier.

Weitere Informationen zur Nutzung und Syntax eines outcome-Abschnitts finden Sie in diesem Abschnitt.

Ergebnisbereich und Erkennungsduplizierung/-erkennungsgruppierung

Für Regeln mit einem Abgleichsbereich müssen die Erkennungsvariablen „gruppiert nach“ sein. Dadurch werden Erkennungen dedupliziert, sodass für jeden eindeutigen Satz von Übereinstimmungsvariablen und das Zeitfenster eine Zeile zurückgegeben wird.

Die Ergebnisvariablen werden bei dieser Deduplizierung ignoriert. Wenn also zwei verschiedene Erkennungen mit denselben Werten für die Übereinstimmungsvariablen und das Zeitfenster vorhanden sind, aber unterschiedliche Werte für die Ergebnisvariablen, werden diese dedupliziert und Sie sehen nur eine Erkennung. Das kann passieren, wenn beispielsweise eine Erkennung aufgrund von spät ankommenden Daten erstellt wurde. Hier ein Beispiel:

rule ExampleOutcomeRule {
  ...
  match:
    $hostname over <some window>
  outcome:
    $risk_score = <some logic here>
  ...
}

Diese Regel führt zu folgenden Übereinstimmungen:

Erkennung 1: hostname: test-hostname Zeitfenster: [t1, t2] risk_score: 10

Erkennung 2: Hostname: test-hostname Zeitfenster: [t1, t2] risk_score: 73

Da die Abgleichvariablen und das Zeitfenster für Erkennung 1 und Erkennung 2 identisch sind, werden sie dedupliziert. Sie sehen dann nur eine Erkennung, obwohl die Ergebnisvariable Risk_Score anders ist.

Nächste Schritte

Weitere Informationen dazu, wie Chronicle Kontextdaten aufnimmt und Entitäten anreichert, finden Sie unter Wie Chronicle Ereignis- und Entitätsdaten anreichert.