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 Warndaten abzuleiten. So können Sie die manuelle Dateneingabe vermeiden und dafür sorgen, dass wichtige Messwerte in Echtzeit aktualisiert werden. Der erfolgreiche Abschluss verbessert die Analysefunktionen der Plattform und beschleunigt die Triage von Vorfällen durch automatisches Ausfüllen von Feldern.
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 dem Label Zielfeld) gespeichert.
Gängige Anwendungsfälle
Die folgenden Szenarien zeigen die häufigsten Möglichkeiten, wie Unternehmen berechnete Felder nutzen, um die betriebliche Effizienz und die Datenklarheit 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.
- Vorteil: 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 (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 Fall-Daten.
- Umgebungsprüfung: Sie benötigen vorhandene, aktive benutzerdefinierte Felder vom Typ Freitext, die als Zielfelder dienen.
Achten Sie darauf, dass in Ihrem System benutzerdefinierte Felder vorhanden sind, die Sie als Zielfelder verwenden können. Wenn nicht, führen Sie die folgenden Schritte aus:
- Rufen Sie Einstellungen > Vorgangsdaten > 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 sicherstellen, dass Ihre Zielfelder und die Logik den folgenden Systemeinschränkungen entsprechen. Diese Regeln legen fest, wie die Google SecOps-Engine Formelergebnisse validiert und speichert.
Kriterien für die Feldvalidierung
Die Berechnungs-Engine setzt die folgenden Anforderungen für alle Felder, die als Zielfeld festgelegt sind, 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 das Ziel sein, wenn es bereits eine Abhängigkeit für ein anderes berechnetes Feld ist.
Bereich eines Felds festlegen
Wenn Sie ein benutzerdefiniertes Feld mit dem Bereich Both 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:
- Fallumfang: Mit
CaseCustom.YourFieldgekennzeichnet (z. B.CaseCustom.RiskLevel) - Benachrichtigungsbereich: 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:
- Rufen Sie Einstellungen > Fall-Daten > Berechnete Felder auf.
- 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.
- Korrektiver Schritt: 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 einen roten Fehler an.
- Korrektiver Schritt: Prüfen Sie auf Syntaxfehler wie fehlende Klammern um
IF-Bedingungen oder Kleinbuchstaben bei Keywords.
Zugriff auf erweiterte Assets und Referenzen
Formeln müssen für alle integrierten Operatoren und Funktionen strenge Grammatik- und Groß-/Kleinschreibungsregeln einhalten. Anhand der folgenden technischen Spezifikationen können Sie prüfen, ob Ihre Berechnungen gültig sind.
Beispiele für Formeln
Die folgenden Vorlagen zeigen, wie Sie Funktionen und Operatoren kombinieren, um die Datenanreicherung zu automatisieren. Sie können diese Snippets kopieren und an Ihre spezifischen Feldnamen und organisatorischen Anforderungen 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 melden
Mit dieser Logik werden Testdaten identifiziert und mit Labels versehen, damit Analysten ihre primären Ansichten filtern und sich auf Produktionsvorfälle konzentrieren können.
- Zielfeld:
AlertCustom.is_test(Text) - Ziel: Das Suffix
-TESToder den StringTESTin einem Benachrichtigungsnamen erkennen 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 nach Ereignisvolumen als auch nach vorhandenen Prioritätsstufen priorisiert werden.
- Zielfeld:
CaseCustom.review_status(Text) - Ziel: Eine manuelle Überprüfung soll nur ausgelöst werden, wenn die Loglänge 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. Sie müssen Keywords (z. B. IF, THEN, ELSE, AND, OR, NOT) und Funktionsnamen (z. B. CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN) in Großbuchstaben schreiben. Beim Testen von Textstrings in Funktionen und Gleichheitsoperatoren wird die Groß- und Kleinschreibung jedoch nicht berücksichtigt. 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. Wir empfehlen, darauf zu achten, 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. | TRUE, FALSE |
| 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 Feldverweisen 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.
- Eine Formel für ein berechnetes Feld kann nicht auf ein anderes berechnetes Feld verweisen.
Operatoren
Verwenden Sie Operatoren für Vergleiche und logische Operationen. Klammern () verwenden, um die Standardrangfolge 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 als TRUE oder FALSE ausgewertet wird.
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 berücksichtigt) | 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ß-/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 einem Literal übereinstimmt (Groß-/Kleinschreibung wird nicht beachtet) | IS([alert.priority], "High") |
BOOLEAN |
IS_NOT(field, literal) |
Prüft, ob der Feldwert NICHT mit dem Literal übereinstimmt (Groß-/Kleinschreibung wird nicht berücksichtigt) | IS_NOT([alert.priority], "Low") |
BOOLEAN |
Reservierte Keywords 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 Leerzeichen
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) und 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 mit dem erwarteten Typ des Zielfelds übereinstimmt, 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 Erwartungen an die Leistung 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 schreiben, können Fehler aufgrund von Syntax- oder Datentypabweichungen auftreten. In der folgenden Tabelle finden Sie eine Zuordnung von spezifischen, reisebezogenen Fehlercodes zu den entsprechenden, umsetzbaren Korrekturen.
| Fehlertyp | Problem | Korrigieren |
|---|---|---|
| Syntax | Die Formel verstößt gegen Grammatikregeln, z. B. nicht übereinstimmende Klammern oder kleingeschriebene Schlüsselwörter. | 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. | Überprü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 während der Ausführung fehl und gibt häufig #ERROR! zurück. | Suchen Sie nach Laufzeitproblemen, z. B. wenn ein Nicht-String-Wert 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, prüfen Sie die Ergebnisse, indem Sie zu einem Fall oder einer Benachrichtigung wechseln 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