Berechnete Felder erstellen und verwalten
Diese Anleitung richtet sich an Sicherheitsanalysten und SOC-Manager, die die Datenanreicherung in ihren Sicherheitsprozessen automatisieren möchten. Darin wird erklärt, wie Sie berechnete Felder mit logischen Formeln erstellen und verwalten, um neue Werte aus vorhandenen Fall- und Benachrichtigungsdaten abzuleiten. Mit dieser Methode können Sie die manuelle Dateneingabe vermeiden und dafür sorgen, dass wichtige Messwerte in Echtzeit aktualisiert werden. Ein erfolgreicher Abschluss verbessert die analytischen Fähigkeiten der Plattform und beschleunigt die Fallpriorisierung durch das automatische Ausfüllen von Feldern.
Mit berechneten Feldern können Sie dynamisch neue Datenpunkte in Google Security Operations-Fällen und -Benachrichtigungen ableiten. Durch das Definieren logischer Formeln können Sie Werte basierend auf vorhandenen System- oder benutzerdefinierten Feldern berechnen. Der berechnete Wert wird automatisch in Echtzeit ausgewertet und in einem vom Nutzer ausgewählten, bereits vorhandenen benutzerdefinierten Feld (mit der Bezeichnung Zielfeld) gespeichert.
Gängige Anwendungsfälle
Die folgenden Szenarien stellen die häufigsten Möglichkeiten dar, wie Unternehmen berechnete Felder nutzen, um die Betriebseffizienz und die Datenübersichtlichkeit zu verbessern.
Automatisierte Risikobewertung
- Ziel: Fälle nach Ereignisvolumen oder Prioritätsstufen kategorisieren.
- Wert: Standardisiert die Fallpriorisierung und sorgt dafür, dass Vorfälle mit hohem Risiko für das Team sofort sichtbar sind.
Daten normalisieren
- Ziel: Benachrichtigungen basierend auf Namenskonventionen als Test oder Produktion kennzeichnen.
- Wert: Reduziert Rauschen, indem Analysten nicht kritische Testdaten aus ihrer Hauptansicht herausfiltern können.
Schlüsselterminologie
- Formel: Ein textbasierter logischer Ausdruck, den Sie mit Funktionen, Operatoren und Feldverweisen definieren, um einen Wert zu berechnen.
- Zielfeld: Ein vorhandenes benutzerdefiniertes Feld (Freitext), in dem das Ergebnis der Formelberechnung gespeichert wird.
- Abhängigkeiten: Die Felder, auf die in der Formel verwiesen wird. Wenn sich der Wert eines Abhängigkeitsfelds ändert, wird das berechnete Feld synchron neu ausgewertet.
Hinweis
Bevor Sie eine Berechnung erstellen, prüfen Sie, ob Ihre Umgebung die folgenden technischen Anforderungen erfüllt:
- Berechtigungen: Sie benötigen Administratorzugriff auf das Menü Einstellungen und Berechtigungen zum Verwalten von Fall-Daten.
- Umgebungsprüfung: Achten Sie darauf, dass Sie vorhandene, aktive benutzerdefinierte Felder (Freitext) als Zielfelder haben.
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 > 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, prüfen Sie, ob Ihre Zielfelder und Ihre Logik diesen Systembeschränkungen entsprechen. Diese Regeln legen fest, wie die Google SecOps-Engine Formelergebnisse validiert und speichert.
Kriterien für die Feldvalidierung
Die Berechnungs-Engine erzwingt die folgenden Anforderungen für alle Felder, die als Zielfeld festgelegt sind:
- 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 Zirkellogik zu vermeiden, kann ein Feld nicht als Ziel verwendet werden, wenn es bereits eine Abhängigkeit für ein anderes berechnetes Feld ist.
Feldbereich
Wenn Sie ein benutzerdefiniertes Feld mit dem Bereich Both erstellen, generiert das System eindeutige Einträge für jeden Kontext. So können Sie für Fälle und Benachrichtigungen innerhalb derselben logischen Kategorie separate Logik verwenden.
Wählen Sie im Menü Zielfeld den Bereich aus, der für Ihre Formel relevant ist:
- Fallbereich: Gekennzeichnet als
CaseCustom.YourField(z. B.CaseCustom.RiskLevel) - Benachrichtigungsbereich: Gekennzeichnet als
AlertCustom.YourField(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 das Pluszeichen add 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 ist.
Erstellen Sie im Texteditor eine Formel 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.
- Korrektiver Schritt: Prüfen Sie auf Syntaxfehler, z. B. fehlende Klammern um
IFBedingungen oder Kleinbuchstaben in Keywords.
Auf erweiterte Assets und Referenzen zugreifen
Formeln müssen für alle integrierten Operatoren und Funktionen strengen Regeln für Grammatik und Groß-/Kleinschreibung folgen. Verwenden Sie die folgenden technischen Spezifikationen, um sicherzustellen, dass Ihre Berechnungen gültig sind.
Formelbeispiele
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 im Falltitel kategorisieren.
- 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
Diese Logik identifiziert und kennzeichnet Testdaten, damit Analysten ihre Hauptansichten filtern und sich auf Produktionsvorfälle konzentrieren können.
- Zielfeld:
AlertCustom.is_test(Text) - Ziel: Das
-TESTSuffix oder denTESTString in 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 eine verschachtelte Logik verwendet, um Überprüfungen sowohl nach Ereignisvolumen als auch nach vorhandenen Prioritätsstufen zu priorisieren.
- Zielfeld:
CaseCustom.review_status(Text) - Ziel: Eine manuelle Überprüfung nur auslösen, 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 der Berechnungs-Engine wird bei allen integrierten Operatoren, Keywords und Funktionen 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. Bei Tests von Textstrings in Funktionen und Gleichheitsoperatoren wird jedoch nicht zwischen Groß- und Kleinschreibung unterschieden. Wenn Sie beispielsweise nach „phishing“ suchen, werden „PHISHING“ oder „Phishing“ gefunden.
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. | „kritisch“, „k. A.“ |
| NUMBER | Ganzzahlen oder Dezimalzahlen. | 100, 3,14 |
| BOOLEAN | Muss in Großbuchstaben geschrieben 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 kann Buchstaben, Zahlen, Unterstriche und Leerzeichen enthalten. Beispiel:[case.name],[alert.priority],[AlertCustom.my_custom_field]. - Sie können diese Systemfelder verwenden:
case.name,case.stage,case.priority,alert.name,alert.priority,alert.rule_generator. - Sie können auf alle benutzerdefinierten Felder verweisen.
- In einer Formel für ein berechnetes Feld kann nicht auf ein anderes berechnetes Feld verwiesen werden.
Operatoren
Verwenden Sie Operatoren für Vergleiche und logische Operationen. Verwenden Sie Klammern (), um die Standardpriorität zu überschreiben und Ausdrücke zu gruppieren.
- Vergleichsoperatoren:
==,!=,>,>=,<,<= - Logische Operatoren:
AND,OR,NOT - Operatorpriorität:
NOT,>,>=,<,<=,AND,OR,
Bedingte Ausdrücke
Das System unterstützt bedingte Logik mit der Syntax IF (condition) THEN expression1 ELSE expression2. 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 zu 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 (ohne Berücksichtigung der Groß-/Kleinschreibung) | CONTAINS([case.name], "phishing") |
BOOLEAN |
DOES_NOT_CONTAIN(field, substring) |
Prüft, ob ein Textfeld keinen Teilstring enthält (ohne Berücksichtigung der Groß-/Kleinschreibung) | 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 (ohne Berücksichtigung der Groß-/Kleinschreibung) | STARTS_WITH([CaseCustom.hostname], "srv-") |
BOOLEAN |
ENDS_WITH(field, suffix) |
Prüft, ob das Feld mit einem Suffix endet (ohne Berücksichtigung der Groß-/Kleinschreibung) | ENDS_WITH([AlertCustom.filename], ".exe") |
BOOLEAN |
IS(field, literal) |
Prüft, ob der Feldwert mit dem Literal übereinstimmt (ohne Berücksichtigung der Groß-/Kleinschreibung) | IS([alert.priority], "High") |
BOOLEAN |
IS_NOT(field, literal) |
Prüft, ob der Feldwert NICHT mit dem Literal übereinstimmt (ohne Berücksichtigung der Groß-/Kleinschreibung) | IS_NOT([alert.priority], "Low") |
BOOLEAN |
Reservierte Keywords und Bezeichner
Die Berechnungs-Engine reserviert bestimmte Wörter für logische Operationen und Funktionen. Sie können diese Begriffe nicht als benutzerdefinierte Feldnamen oder andere Bezeichner 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
Achten Sie darauf, dass für alle Vorgänge und Funktionsargumente kompatible Typen verwendet werden, damit die Auswertung erfolgreich ist. Unterstützte Typen sind STRING, NUMBER, BOOLEAN und NULL.
Die endgültige Ausgabe der Formel muss mit dem erwarteten Typ des Zielfelds übereinstimmen. 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 im Allgemeinen ignoriert. Sie sind jedoch unbedingt erforderlich, um Keywords von Bezeichnern zu trennen. Verwenden Sie Leerraum strategisch, um komplexe, mehrzeilige Formeln besser zu strukturieren und die Wartung und Überprüfung durch andere zu erleichtern.
Effektive Formeln schreiben
Die Berechnungs-Engine ist flexibel in Bezug auf Leerraum. Folgen Sie jedoch diesen Formatierungsstandards, 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 Standardpriorität verlassen. So vermeiden Sie logische Mehrdeutigkeiten.
- Visuelle Struktur: Verwenden Sie Leerzeichen um Operatoren (
==, AND, OR) und fügen Sie Zeilenumbrüche für verschachtelteIF/THENAnweisungen ein, um die Logik besser lesbar zu machen. 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 Leistungserwartungen beschrieben und Self-Service-Lösungen für häufige Bereitstellungsprobleme bei der Erstellung oder Verwaltung von Formeln bereitgestellt.
Latenz und Limits
Berechnete Felder werden synchron ausgewertet, wenn sich ein Abhängigkeitsfeld ändert. Um die Systemleistung aufrechtzuerhalten, kann ein berechnetes Feld nicht auf ein anderes berechnetes Feld verweisen. Das System blockiert diese verketteten Abhängigkeiten, um Rekursion und Verarbeitungsverzögerungen zu vermeiden.
Fehlerbehebung
Wenn Sie Formeln manuell schreiben, können Fehler aufgrund von Syntax- oder Datentypabweichungen auftreten. In der folgenden Tabelle können Sie bestimmte, auf den Ablauf bezogene Fehlercodes den entsprechenden, umsetzbaren Lösungen zuordnen.
| Fehlertyp | Problem | Korrigieren |
|---|---|---|
| Syntax | Die Formel verstößt gegen Grammatikregeln, z. B. durch nicht übereinstimmende Klammern oder Kleinbuchstaben in Keywords. | Setzen Sie alle IF-Bedingungen in Klammern und prüfen Sie, ob alle Keywords in Großbuchstaben geschrieben sind. |
| Validierung | Die Formel verweist auf ein unbekanntes Feld (z. B. [\case.typo]) oder führt zu einer Typabweichung. | Prüfen Sie die Feldnamen in eckigen Klammern und bestätigen Sie, dass die Ausgabe mit dem Typ des Zielfelds übereinstimmt. |
| Auswertung | Die Formel ist gültig, schlägt aber während der Ausführung fehl und zeigt oft #ERROR! an. | Prüfen Sie auf Laufzeitprobleme, 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 die sich Ihre Formeln beziehen, aktiv, um die Datenintegrität aufrechtzuerhalten. Wenn Sie versuchen, ein benutzerdefiniertes Feld zu löschen oder zu ändern, das als Zielfeld verwendet wird, blockiert das System die Aktion und zeigt eine Warnung an, dass es aktiv 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