Berechnete Felder konfigurieren
Dieser Leitfaden richtet sich an Sicherheitsanalysten und SOC-Manager, die die Datenanreicherung in ihren Sicherheitsvorgängen automatisieren möchten. Darin wird beschrieben, wie Sie berechnete Felder mit logischen Formeln erstellen und verwalten, um neue Werte aus vorhandenen Fall- und Warnungsdaten abzuleiten. So können Sie die manuelle Dateneingabe vermeiden und dafür sorgen, dass wichtige Messwerte in Echtzeit aktualisiert werden. Durch den erfolgreichen Abschluss werden die Analysefunktionen der Plattform verbessert und die Triage von Vorfällen durch automatisches Ausfüllen von Feldern beschleunigt.
Mit berechneten Feldern können Sie dynamisch neue Datenpunkte in Google Security Operations-Vorgängen und ‑Benachrichtigungen ableiten. Durch das Definieren logischer Formeln können Sie Werte auf Grundlage vorhandener System- oder benutzerdefinierter Felder berechnen. Der berechnete Wert wird automatisch ausgewertet und in Echtzeit in einem vom Nutzer ausgewählten, vorhandenen benutzerdefinierten Feld (mit der Bezeichnung Zielfeld) gespeichert.
Gängige Anwendungsfälle
In den folgenden Szenarien wird beschrieben, wie Organisationen berechnete Felder am häufigsten nutzen, um die betriebliche Effizienz und die Datenübersichtlichkeit zu verbessern.
Automatisierte Risikobewertung
- Ziel: Fälle nach Ereignisvolumen oder Prioritätsstufen kategorisieren.
- Wert: Standardisiert die Priorisierung und sorgt dafür, dass Vorfälle mit hohem Risiko für das Team sofort sichtbar sind.
Datennormalisierung
- Ziel: Warnungen anhand von Namenskonventionen als Test oder Produktion kennzeichnen.
- Wert: Rauschen wird reduziert, da Analysten nicht kritische Testdaten aus ihrer primären Ansicht herausfiltern können.
Schlüsselterminologie
- Formel: Ein textbasierter logischer Ausdruck, den Sie mit Funktionen, Operatoren und Feldreferenzen definieren, um einen Wert zu berechnen.
- Zielfeld: Ein vorhandenes benutzerdefiniertes Feld vom Typ Freitext, in dem das Ergebnis der Formelberechnung gespeichert wird.
- Abhängigkeiten: Die Felder, auf die in Ihrer Formel verwiesen wird. Wenn sich der Wert eines Abhängigkeitsfelds ändert, wird das berechnete Feld synchron neu ausgewertet.
Hinweis
Bevor Sie eine Berechnung erstellen, muss Ihre Umgebung die folgenden technischen Anforderungen erfüllen:
- Berechtigungen: Sie benötigen Administratorzugriff auf das Menü Einstellungen und Berechtigungen zum Verwalten von Falldaten.
- Umgebungsprüfung: Sie benötigen vorhandene, aktive benutzerdefinierte Felder vom Typ Freitext, die als Zielfelder dienen.
Sie müssen benutzerdefinierte Felder haben, die Sie als Zielfelder in Ihrem System verwenden können. Ist das nicht der Fall, gehen Sie so vor:
- Rufen Sie Einstellungen > Fall-Daten > Benutzerdefinierte Felder auf.
- Erstellen Sie ein neues benutzerdefiniertes Feld und legen Sie den Typ auf Freitext fest.
Weitere Informationen zu benutzerdefinierten Feldern finden Sie unter Benutzerdefiniertes Feld erstellen.
Technische Einschränkungen und Validierungsregeln
Bevor Sie eine Berechnung definieren, müssen Sie darauf achten, dass Ihre Zielfelder und Ihre Logik den folgenden Systembeschränkungen entsprechen. Diese Regeln regeln, wie die Google SecOps-Engine Formelergebnisse validiert und speichert.
Kriterien für die Feldvalidierung
Die Berechnungs-Engine setzt die folgenden Anforderungen für jedes Feld, das als Zielfeld festgelegt ist, strikt durch:
- Datentyp: Das Feld muss vom Typ Freitext sein.
- Betriebsstatus: Das Feld muss Aktiv sein. Das System kann nicht in gelöschte oder ungültige Felder schreiben.
- Abhängigkeitszuordnung: Um zirkuläre Logik zu vermeiden, kann ein Feld nicht als Ziel verwendet werden, wenn es bereits eine Abhängigkeit für ein anderes berechnetes Feld ist.
Feld-Scoping
Wenn Sie ein benutzerdefiniertes Feld mit dem Both-Bereich erstellen, generiert das System für jeden Kontext eindeutige Einträge. So können Sie separate Logik für Fälle und Benachrichtigungen innerhalb derselben logischen Kategorie beibehalten.
Wählen Sie im Menü Zielfeld den für Ihre Formel relevanten Bereich aus:
- Umfang des Falls: Mit
CaseCustom.YourFieldgekennzeichnet (z. B.CaseCustom.RiskLevel) - Umfang der Benachrichtigung: Mit
AlertCustom.YourFieldgekennzeichnet (z. B.AlertCustom.RiskLevel)
Berechnete Felder erstellen und verwalten
In diesem Abschnitt wird beschrieben, wie Sie eine neue Berechnung definieren und häufige Probleme während der Einrichtung beheben.
Neue Berechnung erstellen
So erstellen Sie eine neue Berechnung:
- Klicken Sie auf Einstellungen > Fall-Daten > Berechnete Felder.
- Klicken Sie auf Hinzufügen Hinzufügen.
- Geben Sie im Feld Name des berechneten Felds einen eindeutigen Namen und eine Beschreibung für die Berechnung ein.
Wählen Sie im Bereich Zielfeld das vorhandene benutzerdefinierte Feld aus, in dem das Ergebnis gespeichert werden soll.
- Erwarteter Fehler: Das ausgewählte Feld wird nicht im Menü angezeigt.
- Korrekturmaßnahme: Prüfen Sie, ob das benutzerdefinierte Feld aktiv ist, auf Freitext festgelegt ist und nicht bereits eine Abhängigkeit für eine andere Berechnung darstellt.
Erstellen Sie die Formel im Texteditor mit den unterstützten Funktionen, Operatoren und der unterstützten Syntax. Erstellen Sie einen logischen Ausdruck (z. B.
IF ([case.priority] == "High") THEN "Urgent" ELSE "Standard"). Weitere Informationen finden Sie unter Formelsprache und ‑syntax.Klicken Sie auf Speichern.
- Erwarteter Fehler: Das System lehnt das Speichern ab und zeigt eine rote Fehlermarkierung an.
- Korrekturmaßnahme: Prüfen Sie auf Syntaxfehler wie fehlende Klammern um
IF-Bedingungen oder Kleinbuchstaben bei Keywords.
Auf erweiterte Assets und Referenzen zugreifen
Für alle integrierten Operatoren und Funktionen müssen Formeln strengen Grammatik- und Groß-/Kleinschreibungsregeln folgen. Beachten Sie die folgenden technischen Spezifikationen, damit Ihre Berechnungen gültig sind.
Beispiele für Formeln
Die folgenden Vorlagen zeigen, wie Sie Funktionen und Operatoren kombinieren können, um die Datenanreicherung zu automatisieren. Sie können diese Snippets kopieren und an Ihre spezifischen Feldnamen und Organisationsanforderungen anpassen.
Beispiel 1: Risikostufe festlegen
Mit dieser Formel können Sie Fälle anhand bestimmter Keywords kategorisieren, die im Falltitel enthalten sind.
- Zielfeld:
CaseCustom.risk_level(Text) - Ziel: Dringenden Vorfällen automatisch den Status „Hoch“ zuweisen
Formel:
IF (CONTAINS([case.name], "urgent")) THEN "High" ELSE "Medium"
Beispiel 2: Testbenachrichtigungen kennzeichnen
Mit dieser Logik werden Testdaten identifiziert und gekennzeichnet, damit Analysten ihre primären Ansichten filtern und sich auf Produktionsvorfälle konzentrieren können.
- Zielfeld:
AlertCustom.is_test(Text) - Ziel: Das Suffix
-TESToder der StringTESTsoll im Namen einer Benachrichtigung erkannt werden. Formel:
IF (CONTAINS([alert.name], "TEST") OR ENDS_WITH([alert.name], "-TEST")) THEN "TRUE" ELSE "FALSE"
Beispiel 3: Bedingungen kombinieren
In diesem Beispiel wird die verschachtelte Logik veranschaulicht, mit der Rezensionen sowohl anhand des Ereignisvolumens als auch anhand vorhandener Prioritätsstufen priorisiert werden.
- Zielfeld:
CaseCustom.review_status(Text) - Ziel: Eine manuelle Überprüfung soll nur ausgelöst werden, wenn die Länge des Protokolls erheblich ist und die Priorität nicht
Lowist. Formel:
IF (LENGTH(\[AlertCustom.event\_details\]) \> 100 AND NOT IS(\[case.priority\], "Low")) THEN "Needs Review" ELSE "Auto-Closed"
Formelsprache und ‑syntax
Bei allen integrierten Operatoren, Keywords und Funktionen wird in der Berechnungs-Engine zwischen Groß- und Kleinschreibung unterschieden. Schlüsselwörter (z. B. IF, THEN, ELSE, AND, OR, NOT) und Funktionsnamen (z. B. CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN) müssen in Großbuchstaben geschrieben werden. Bei Tests von Textstrings in Funktionen und Gleichheitsoperatoren wird die Groß-/Kleinschreibung jedoch nicht beachtet. Wenn Sie beispielsweise nach „Phishing“ suchen, werden auch Ergebnisse für „PHISHING“ oder „phishing“ angezeigt.
Datentypen und Literale
Ein Literal ist ein fester Wert, der in Ausdrücken verwendet wird. Achten Sie darauf, dass für Ihre Vorgänge und Funktionsargumente kompatible Typen verwendet werden.
| Typ | Syntax und Regeln | Beispiel |
|---|---|---|
| STRING | Text in doppelten Anführungszeichen. | „critical“, „N/A“ |
| NUMBER | Ganz- oder Dezimalzahlen. | 100, 3.14 |
| BOOLEAN | Muss in Großbuchstaben angegeben werden. | WAHR, FALSCH |
| NULL | Stellt einen leeren Wert dar. | NULL |
Feldverweise
Wenn Sie den Wert eines anderen Felds verwenden möchten, setzen Sie den Feldnamen in eckige Klammern, z. B. [object.field_name].
- Syntaxregel:Sie müssen ein Präfix mit Feldreferenzen verwenden. Sie müssen ein Präfix (z. B.
case.oderAlertCustom.) gefolgt von einem Punkt und dem Feldnamen verwenden. Der Feldname selbst darf Buchstaben, Zahlen, Unterstriche und Leerzeichen enthalten. Beispiel:[case.name],[alert.priority],[AlertCustom.my_custom_field]. - Sie können die folgenden Systemfelder verwenden:
case.name,case.stage,case.priority,alert.name,alert.priority,alert.rule_generator. - Sie können auf alle benutzerdefinierten Felder verweisen.
- In der Formel eines berechneten Felds kann nicht auf ein anderes berechnetes Feld verwiesen werden.
Operatoren
Verwenden Sie Operatoren für Vergleiche und logische Operationen. Klammern () verwenden, um die Standardpriorität zu überschreiben und Ausdrücke zu gruppieren
- Vergleichsoperatoren:
==,!=,>,>=,<,<= - Logische Operatoren:
AND,OR,NOT - Operatorrangfolge:
NOT,>,>=,<,<=,AND,OR,
Bedingte Ausdrücke
Das System unterstützt bedingte Logik mit der IF (condition) THEN expression1 ELSE expression2-Syntax. Der Teil ELSE ist optional. Wenn Sie ihn weglassen und die Bedingung FALSE ist, wird standardmäßig NULL zurückgegeben.
Die Bedingung muss ein Ausdruck sein, der TRUE oder FALSE ergibt.
Beispiel: IF ( [CaseCustom.score] > 75 ) THEN "High Risk" ELSE "Low Risk".
Funktionen
Funktionen sind vordefinierte Operationen, die vollständig in Großbuchstaben geschrieben werden müssen. In der folgenden Tabelle sind die unterstützten Funktionen für die Datenbearbeitung und -auswertung aufgeführt.
| Funktion | Beschreibung | Syntax | Rückgabetyp |
|---|---|---|---|
CONTAINS(field, substring) |
Prüft, ob ein Textfeld einen Teilstring enthält (Groß-/Kleinschreibung wird nicht beachtet) | CONTAINS([case.name], "phishing") |
BOOLEAN |
DOES_NOT_CONTAIN(field, substring) |
Prüft, ob ein Textfeld keinen Teilstring enthält (Groß-/Kleinschreibung wird nicht beachtet) | DOES_NOT_CONTAIN([case.name], "test") |
BOOLEAN |
LENGTH(field) |
Gibt die Anzahl der Zeichen in einem Feld zurück. | LENGTH([case.name]) |
NUMBER |
STARTS_WITH(field, prefix) |
Prüft, ob das Feld mit einem Präfix beginnt (Groß- und Kleinschreibung wird nicht beachtet). | STARTS_WITH([CaseCustom.hostname], "srv-") |
BOOLEAN |
ENDS_WITH(field, suffix) |
Prüft, ob das Feld mit einem Suffix endet (Groß-/Kleinschreibung wird nicht beachtet) | ENDS_WITH([AlertCustom.filename], ".exe") |
BOOLEAN |
IS(field, literal) |
Prüft, ob der Feldwert mit dem Literal übereinstimmt (Groß-/Kleinschreibung wird nicht beachtet) | IS([alert.priority], "High") |
BOOLEAN |
IS_NOT(field, literal) |
Prüft, ob der Feldwert NICHT gleich dem Literal ist (Groß-/Kleinschreibung wird nicht beachtet) | IS_NOT([alert.priority], "Low") |
BOOLEAN |
Reservierte Schlüsselwörter und Kennungen
Die Berechnungs-Engine reserviert bestimmte Wörter für logische Operationen und Funktionen. Sie können diese Begriffe nicht als Namen für benutzerdefinierte Felder oder andere Kennungen in einer Formel verwenden:
- Logisch:
AND, OR, NOT, IF, THEN, ELSE - Werte:
NULL, TRUE, FALSE - Funktionen:
CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN
Kompatibilität von Datentypen
Damit die Auswertung erfolgreich ist, müssen alle Vorgänge und Funktionsargumente kompatible Typen verwenden. Unterstützte Typen sind STRING, NUMBER, BOOLEAN und NULL.
Die endgültige Ausgabe der Formel muss dem erwarteten Typ des Zielfelds entsprechen. Da Zielfelder auf „Freitext“ beschränkt sind, muss Ihre Formel letztendlich in einen String oder einen Wert aufgelöst werden, der implizit in das Format des Ziels umgewandelt werden kann.
Formatierung und Leerraum
Leerzeichen, Tabulatoren und Zeilenumbrüche werden zwischen Tokens in der Regel ignoriert, sind aber unbedingt erforderlich, um Keywords von Bezeichnern zu trennen. Verwenden Sie Leerzeichen strategisch, um komplexe, mehrzeilige Formeln zu strukturieren und so die Wartung und Überprüfung durch Kollegen zu erleichtern.
Effektive Formeln schreiben
Die Berechnungs-Engine ist zwar flexibel in Bezug auf Leerzeichen, aber Sie sollten diese Formatierungsstandards einhalten, um Logikfehler zu vermeiden und die Fehlerbehebung zu vereinfachen.
- Explizite Gruppierung: Verwenden Sie Klammern, um die Reihenfolge der Operationen eindeutig zu definieren, auch wenn Sie sich auf die Standardreihenfolge verlassen. So wird logische Mehrdeutigkeit vermieden.
- Visuelle Struktur: Fügen Sie Leerzeichen um Operatoren (
==, AND, OR) ein und fügen Sie Zeilenumbrüche für verschachtelteIF/THEN-Anweisungen ein, damit die Logik leichter zu erfassen ist. Typvalidierung: Prüfen Sie immer, ob die endgültige Ausgabe Ihrer Formel dem erwarteten Typ des Zielfelds entspricht, um Auswertungsfehler zu vermeiden.
IF ( (IS([CaseCustom.event_count], "100") AND NOT IS([case.priority], "Low")) OR CONTAINS([case.name], "Critical") ) THEN "Needs Immediate Review" ELSE "Standard Review"
Fehlerbehebung
In diesem Abschnitt werden die Leistungserwartungen beschrieben und Self-Service-Lösungen für häufige Bereitstellungsprobleme bereitgestellt, die beim Erstellen oder Verwalten von Formeln auftreten.
Latenz und Limits
Berechnete Felder werden synchron ausgewertet, wenn sich ein Abhängigkeitsfeld ändert. Um die Systemleistung aufrechtzuerhalten, darf in einem berechneten Feld nicht auf ein anderes berechnetes Feld verwiesen werden. Das System blockiert diese verketteten Abhängigkeiten, um Rekursion und Verarbeitungsverzögerungen zu verhindern.
Fehlerbehebung
Wenn Sie Formeln manuell eingeben, können Fehler aufgrund von Syntax- oder Datentypabweichungen auftreten. In der folgenden Tabelle finden Sie eine Zuordnung von spezifischen, reisebezogenen Fehlercodes zu den entsprechenden genauen, umsetzbaren Korrekturen.
| Fehlertyp | Problem | Korrigieren |
|---|---|---|
| Syntax | Die Formel verstößt gegen Grammatikregeln, z. B. durch nicht übereinstimmende Klammern oder Kleinbuchstaben bei Keywords. | Setzen Sie alle IF-Bedingungen in Klammern und prüfen Sie, ob alle Keywords in GROSSBUCHSTABEN geschrieben sind. |
| Validierung | Die Formel verweist auf ein unbekanntes Feld (z. B. [\case.typo]) oder führt zu einem Typkonflikt. | Prüfen Sie die Feldnamen in eckigen Klammern und bestätigen Sie, dass die Ausgabe dem Typ des Zielfelds entspricht. |
| Bewertung | Die Formel ist gültig, schlägt aber bei der Ausführung fehl und gibt häufig #ERROR! zurück. | Prüfen Sie, ob Laufzeitprobleme vorliegen, z. B. wenn ein Wert, der kein String ist, an eine Funktion wie LENGTH() übergeben wird. |
Zielfelder ändern oder löschen
Das System schützt die Felder, auf denen Ihre Formeln basieren, aktiv, um die Datenintegrität zu wahren. Wenn Sie versuchen, ein benutzerdefiniertes Feld zu löschen oder zu ändern, das als Zielfeld verwendet wird, wird die Aktion vom System blockiert und es wird eine Warnung angezeigt, dass das Feld in einem berechneten Feld verwendet wird.
Validierung und Tests
Nachdem Sie eine neue Berechnung gespeichert haben, können Sie die Ergebnisse überprüfen, indem Sie zu einem Fall oder einer Benachrichtigung navigieren und ein Abhängigkeitsfeld aktualisieren. Prüfen Sie, ob das Zielfeld in Echtzeit mit dem erwarteten Wert gefüllt wird.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten