In diesem Abschnitt wird die von der Reporting Engine unterstützte Regelsyntax beschrieben.
NWDB-Regelsyntax
Die NWDB-Regel zählt zu der in der Reporting Engine unterstützten Regelsyntax. Informationen zur Verbesserung der Ausführungszeit Ihrer Reportingentitäten finden Sie unter „Reportingrichtlinien“ im Abschnitt Reporting-Übersicht.
Eine Regel ist eine Funktion, die den Ergebnissatz einer Regel manipuliert, um die Ausgabe in einem Bericht sinnvoller zu gestalten oder einer Regel über die Abfrage und Anzeige von Daten hinaus zusätzliche Funktionalität zu verleihen. Eine beliebige Kombination dieser Regelaktionen kann verwendet werden, um eindeutige und relevante Repräsentationen der von NetWitness Suite gesammelten Informationen zu erstellen.
Die Reporting Engine unterstützt die folgenden Kategorien der NWDB-Datenquellen-Regelsyntax:
-
select-Klausel
- Nichtaggregatregel
- Aggregatregel
- alias
- where-Klausel
- where-Klauseloperatoren
- Then-Klausel
- Feld Grenzwert
- Regelaktionen
- Regeloperatoren
Select-Klausel
Die Select-Klausel ist eine durch Komma getrennte Liste von Werten. Beispiel: select sessionid, time, service.
Es gibt zwei Arten von select-Klauseln/Regeln für NWDB-Regeln:
- Nichtaggregatregel
- Aggregatregel
Nichtaggregatregel
Wenn Sie eine Regel ohne eine Gruppierung definieren möchten, wählen Sie im Feld „Zusammenfassen“ die Option „Keine“ aus. In einer Nichtaggregatregel können Sie in der Select-Klausel eine beliebige Anzahl von Metadaten auswählen. Beispiel: select service, sessionid, time.
Aggregatregel
Wenn Sie bestimmte Metadaten und den zugehörigen Aggregatwert abfragen möchten, müssen Sie die Aggregatregel verwenden. Um ein Aggregat zu erhalten, müssen Sie im Feld Zusammenfassen einen der drei Metadatensätze (Ereignisanzahl, Paketanzahl, Sitzungsgröße) oder „Benutzerdefiniert“ auswählen, um der Select-Klausel eine Aggregatfunktion hinzuzufügen. Beispiel: select ip.src, sum (ip.dst). Wenn die benutzerdefinierte Aggregatregel aktiviert ist, werden die folgenden Felder in der Benutzeroberfläche ausgefüllt:
- Gruppieren nach
- Sortieren nach
- Sitzungsschwellenwert
Die folgende Abbildung zeigt die Ansicht „Regel erstellen“ für die Aggregatregel.
Es gibt zwei Typen von Aggregatwerten, die abgefragt werden können:
- Sammlungsaggregation
- Metaaggregation
Sammlungsaggregation
Mit der Sammlungsaggregation können Sie Aggregate zu Ereignis, Sitzung oder Paketen abrufen. Die folgenden Werte können in einer Sammlungsaggregation abgefragt werden:
- Ereignisanzahl: Gesamtanzahl der Ereignisse
- Paketanzahl: Gesamtanzahl der Pakete
- Sitzungsgröße: Die gesamte Sitzungsgröße.
Diese Optionen sind im Feld „Zusammenfassen“ aufgelistet und eine beliebige Option kann in einer Regel ausgewählt werden.
Beispiel: Wählen Sie im Feld „Zusammenfassen“ ein Sammlungsaggregat (Ereignisanzahl, Paketanzahl oder Sitzungsgröße) sowie „ip.src“ aus.
Metaaggregation
Mit der Metaaggregation können Sie Aggregate von Metawerten abrufen. Folgende Metaaggregatfunktionen werden unterstützt:
- sum(meta)
- count(meta)
- countdistinct(meta)
- min(meta)
- max(meta)
- avg(meta)
- first(meta)
- last(meta)
- len(meta)
- distinct(meta)
Unterstützte Metaaggregatfunktionen
Der NWDB-Service unterstützt in dieser Version die folgenden Metaaggregatfunktionen und die folgende Syntax.
Sie müssen im Feld „Zusammenfassen“ die Option „Benutzerdefiniert“ auswählen und in der select-Klausel die Metadaten und Metaaggregatfunktionen bereitstellen.
Hinweis: In einer WHERE-Klausel können keine Metaaggregatfunktionen verwendet werden. Zum Filtern von Aggregatfunktionen können Sie Regelaktionen wie „min_threshold/max_threshold“ nutzen. Bei Verwendung von „Gruppieren nach“ wird eine verfeinerte WHERE-Klausel empfohlen, um eine bessere Regelperformance zu erhalten.
Aggregieren von Abfragen für mehrere Metadaten
Führen Sie die folgenden Schritte aus, um Abfragen für mehrere Metadaten zu aggregieren:
-
Wählen Sie Monitor > Berichte aus.
Die Registerkarte „Managen“ wird hervorgehoben und die Ansicht Rules angezeigt.
-
Klicken Sie in der Symbolleiste „Regeln“ auf
> NetWitnessDB.
Geben Sie beispielsweise die folgenden Metadaten in die unten hervorgehobenen Felder ein:
SELECT: ip.src, service, count(alias.host)
ALIAS: Quell-IP-Adresse, Servicetyp, count(alias.host)
WHERE: ip.src = 59.96.136.142Hinweis: Im Aliasfeld können Sie einen Namen für Spalten eingeben, die in der SELECT-Klausel verwendet werden. Wenn Sie den Alias für eines der Felder in der Select-Klausel nicht angeben, wird die Standardbeschreibung verwendet. Wenn die Select-Klausel z. B. Feld1, Feld2, Feld3, Feld4 aufweist und Alias nur Feld1, Feld3, Feld4 aufweist, wird für Feld2 eine Standardbeschreibung verwendet.
-
Klicken Sie auf die Schaltfläche Regel testen unten auf der Seite.
Die Seite „Regel testen“ wird angezeigt.
Zusammenfassung
„Zusammenfassen“ bestimmt den Typ der Zusammenfassung oder Aggregation für die Regel.
Sortieren nach
„Sortieren nach“ legt fest, wie der Ergebnissatz sortiert wird.
Sitzungsschwellenwert
Der Sitzungsschwellenwert ist die Optimierungseinstellung, mit der die Abstimmungssitzungen für jeden möglichen eindeutigen Wert für die ausgewählten Metadaten beendet werden.
Der Schwellenwert ist eine ganze Zahl zwischen 0 (Standard) und 2147483647. Mit dem Schwellenwert 0 werden alle entsprechenden Sitzungen gesucht.
Hinweis: Wenn Sie einen Wert ungleich 0 angeben (einen Wert über 0), sind die Aggregatergebnisse ungenau. Deshalb kann dies nur verwendet werden, wenn Sie an eindeutigen Werten und nicht an Aggregatwerten interessiert sind.
Unterstützte where-Klausel
Stellen Sie sicher, dass in der where-Klausel die Syntax je nach Metadatentyp korrekt ist.
Beispiel:
Verwenden Sie für alle Metadaten vom Typ „Text“ Anführungszeichen, z. B.username = „user1“.
Verwenden Sie für alle IP-Adressen, Ethernetadressen und numerische Metadatentypen keine Anführungszeichen, z. B. service = 80
ip.src = 192.168.1.1. Verwenden Sie für die Metadatentypen Datum und Uhrzeit Anführungszeichen, wenn das Datums- und Uhrzeitformat 'YYYY-MM-DD HH:MM:SS' ist.
Wenn das Datums- und Uhrzeitformat 1448034064 (Anzahl der Epochensekunden (seit 1. Jan.1970)) ist, verwenden Sie keine Anführungszeichen.
Hinweis: Wenn die Liste in der Regel verwendet wird, stellen Sie sicher, dass die Listenwerte je nach Typ der verwendeten Metadaten in Anführungszeichen stehen oder nicht. Wenn Sie das Kontrollkästchen Anführungszeichen werden für alle Werte eingefügt auf der Seite „Listendefinition“ aktivieren (weitere Informationen finden Sie im Abschnitt „Erstellen von Listen oder Listengruppen“ in Konfigurieren einer Regel), werden alle Listenwerte in Anführungszeichen gesetzt.
Unterstützte where-Klauseloperatoren
Unterstützte then-Klausel
Feld Grenzwert
Gibt den Grenzwert an, der für die Abfrage gelten soll, wenn Daten aus der Datenbank abgerufen werden. Wenn ein Ergebnissatz nach Ereignisanzahl, Paketanzahl oder Sitzungsgröße sortiert wird, repräsentiert der Grenzwert die obersten (oder untersten) wiederzugebenden n Werte. Wenn die Ergebnismenge nicht
sortiert wird, werden die ersten n Werte wiedergegeben.
Regelaktionen
Die NWDB-Datenquellen-Regelsyntax unterstützt die folgenden Regelaktionen:
- dedup
- filter_on
- filter_out
- lookup_and_add
- max_threshold
- min_threshold
- regex
- sum_count
- sum_values
- show_whats_new
dedup (string field)
dedup entfernt Duplikateinträge in einem unsortierten Ergebnissatz und zeigt nur relevante Daten an. Die Regelaktion „dedup“ entfernt Duplikateinträge eines bestimmten Felds im Bericht, sodass nur das erste Auftreten dieses Werts im Bericht aufgeführt wird.
Hinweis: Die Regelaktion „dedup“ kann nicht mit einer Aggregatregel verwendet wird.
Beispielsweise sind die Metadaten, die von einer individuellen Sitzung erzeugt werden, oft repetitiv, besonders wenn Sie Sitzungen mit zahlreichen DNS-Lookups oder Websitzungen haben, bei denen für verschiedene Ressourcen (z. B. javascript und css) mehrmals auf denselben Host zugegriffen wird. Mit der Regelaktion „dedup“ können Sie Duplikateinträge des Hosts entfernen.
Beispiel:
Das folgende Beispiel ist ein langer Ergebnissatz, der gekürzt werden kann, indem die Duplikatwerte in derselben Sitzung entfernt werden.
In der folgenden Abbildung sehen Sie, wie mit der Regelaktion „dedup“ Duplikateinträge aus dem Ergebnissatz entfernt werden.
Der Duplikatwert für jeden Eintrag im Regelergebnissatz wird auf einen Wert reduziert.
filter_on (string filter, string field, bool matchExact)
filter_on entfernt Werte, in denen die filter -Kriterien nicht enthalten sind, aus dem Ergebnissatz. Wenn der Ergebnissatz mehrere Felder enthält, müssen Sie ein bestimmtes Feld auswählen, auf das der Filter angewendet wird. Wenn Sie zusätzliche Ergebnisse zu einem einzigen Ergebnissatz hinzufügen möchten, nehmen Sie eine Funktion wie „lookup_and_add“ auf.
Der Parameter matchExact bestimmt, ob die Übereinstimmung eine exakte Übereinstimmung ist oder eine Übereinstimmung enthält.
- Wenn matchExact auf false, eingestellt ist, wird jeder Wert, der den Filtertext enthält, als Entsprechung betrachtet.
- Wenn matchExact auf true eingestellt ist, werden nur Werte, die dem angegebenen Filtertext entsprechen, in den Ergebnissatz aufgenommen.
Hinweis: Wenn der Parameter „matchExact“ nicht angegeben wird, besteht das Standardverhalten der Regelaktion darin, dem im Filterparameter angegebenen Text genau zu entsprechen. Um anzugeben, dass Ergebnisse, die den Filtertext enthalten, im Ergebnissatz verbleiben müssen, ist es erforderlich, dass die Benutzer den Parameter „matchExact“ auf „false“ setzen.
Beispiel:
Die folgende Abbildung zeigt die Länderliste und die Anzahl ihrer Ereignisse an.
In der folgenden Abbildung wird die Regelaktion „filter_on“ gezeigt, mit der alle Länder außer Spanien, China, den Vereinigten Staaten und dem Vereinigten Königreich aus dem Ergebnissatz herausgefiltert werden.
Die folgende Abbildung zeigt die Ausgabe mit der Regelaktion „filter_on“.
Eine weitere Möglichkeit, die Einträge aus dem Ergebnissatz herauszufiltern, besteht darin, eine Liste der Variablen zu erstellen, die Sie herausfiltern möchten. Beispielsweise können Sie eine Liste mit Großbritannien, Frankreich und Deutschland als Listenwerten erstellen. Diese Liste können Sie in der Regelaktion verwenden, um den gleichen Ergebnissatz abzurufen. Wenn Sie z. B. eine Liste namens COUNTRY_LIST erstellen, können Sie sie folgendermaßen verwenden:
filter_on ('$COUNTRY_LIST', 'country.src', 'false');
filter_out (string filter, string field)
filter_out (string filter, string field, bool matchExact)
filter_out entfernt die Werte, in denen die filter-Kriterien enthalten sind, aus dem Ergebnissatz. Wenn der Ergebnissatz mehrere Felder enthält, müssen Sie ein bestimmtes Feld auswählen, auf das der Filter angewendet wird (z. B. können Sie unter Verwendung von „lookup_and_add“ einem einzigen Ergebnissatz Ergebnisse hinzufügen).
Der Parameter matchExact bestimmt, ob die Übereinstimmung eine exakte Übereinstimmung ist oder eine Übereinstimmung enthält.
- Wenn „matchExact“ auf „false“ eingestellt ist, wird jeder Wert, der den Filtertext enthält, als Entsprechung betrachtet.
- Wenn „matchExact“ auf „true“ eingestellt ist, werden nur Werte, die dem angegebenen Filtertext entsprechen, aus dem Ergebnissatz ausgeschlossen.
Hinweis: Wenn der Parameter matchExact nicht angegeben wird, besteht das Standardverhalten der Regelaktion darin, den im Filterparameter angegebenen Text genau abzustimmen. Um anzugeben, dass Ergebnisse, die den Filtertext enthalten, aus dem Ergebnissatz entfernt werden müssen, muss der Benutzer den Parameter matchExact auf „false“ setzen.
Beispiel:
Die folgende Abbildung zeigt die Länderliste und die Anzahl ihrer Ereignisse an.
In der folgenden Abbildung sehen Sie die Regelaktion „filter_out“, mit der die Ereignisanzahl für Spanien, China, die Vereinigten Staaten und das Vereinigte Königreich aus dem Ergebnissatz entfernt wird.
Die folgende Abbildung zeigt die Ausgabe mit der Regelaktion „filter_out“.
lookup_and_add (string select, string field)
lookup_and_add (string select, string field, int limit)
lookup_and_add (string select, string field, int limit, boolean inherit)
lookup_and_add (string select, string field, int limit, boolean inherit, string extraWhere)
lookup_and_add(string select, string field, int limit, boolean inherit, string extraWhere, boolean aggregate)
Diese Regelaktion läuft iterativ durch eine Liste von Werten in einem Ergebnissatz und sucht zusätzliche Metadaten, mit denen die Beziehungen zwischen verschiedenen Elementen in einem Ergebnissatz näher beschrieben werden.
Hinweis: Die Regelaktion „lookup_and_add“ kann nicht mit einer Aggregatregel verwendet werden.
Der erste Parameter, „select“, gibt den Typ der Metadaten an, die den Elementen im Ergebnissatz hinzugefügt werden müssen. Der zweite Parameter, „field“, gibt an, wo im Ergebnissatz die Daten angehängt werden müssen. Außerdem kann ein Grenzwert angewendet werden, damit der Ergebnissatz nicht überfüllt wird.
Standardmäßig übernehmen auf das SDK folgende Abfragen die where-Klausel der übergeordneten Regel. Wenn Sie eine where-Klausel nur einmal anwenden möchten, können Sie im vierten Parameter einen Booleschen Wert als „false“ und im fünften Parameter eine andere where-Klausel angeben.
Hinweis: Wenn Sie in Ihrer Abfrage eine where-Klausel nur einmal verwenden, müssen Sie sicherstellen, dass Sie Argumente in Apostrophe (') und Zeichenfolgenwerte in Anführungszeichen (") einschließen.
Nachdem jetzt die Zusammenfassung Benutzerdefiniert und die Funktion Gruppieren nach hinzugefügt wurden, kann das Ergebnis sogar ohne die Regelaktion „lookup_and_add“ erzielt werden. Die neue Regelsyntax mit „groupby“ zeigt das Ergebnis in einer flachen Struktur an und ist somit eine Verbesserung gegenüber der früheren Regelsyntax ohne „groupby“. Es wird daher empfohlen, die Regeln mit der Regelaktion „lookup_and_add“ manuell zu bearbeiten bzw. zu aktualisieren und, sofern möglich, die groupby-Klausel zu verwenden.
Hinweis: Die Regelaktion „Lookup_And_Add“ wird nur unterstützt, wenn die SELECT-Klausel eine Metaangabe und eine Aggregatfunktion hat.
Siehe zum Beispiel die unten stehenden Szenarien: Im Beispiel 2a wird die Regelaktion „lookup_and_add“ verwendet. Anstelle dieser Regelaktion kann dasselbe Ergebnis mithilfe der Zusammenfassung Benutzerdefiniert und der Funktion Gruppieren nach erzielt werden. Siehe Beispiel 2b unten.
Die Regelaktion „lookup_and_add“ wird aber unter den folgenden Bedingungen weiterhin für NWDB-Regeln unterstützt:
- Alle Versionen von NWDB-Regeln, die als Zusammenfassung Ereignisanzahl, Paketanzahl oder Sitzungsgröße verwenden.
- Bei der Zusammenfassung „Benutzerdefiniert“ darf die Regel „lookup_and_add“ nur eine Metaangabe „Gruppieren nach“ mit nur einer Aggregatfunktion haben, wobei die Aggregatfunktion entweder „sum()“ oder „count()“ sein muss.
Hinweis: Nicht unterstützt für „Zusammenfassen-Keine“.
Die Regelaktion „lookup_and_add“ kann zum Beispiel für die folgenden Regeln verwendet werden:
- select ip.src, sum(size) group by ip.src
- select ip.src, count(filename) group by ip.src
Sie kann nicht für die diese Regeln verwendet werden:
- select ip.src, sum(size),count(filename) group by ip.src
- select ip.src, sum(size),avg(size) group by ip.src
- select ip.src,ip.dst count(filename) group by ip.src,ip.dst
Beispiele:
1. lookup_and_add('ip.dst','ip.src', 2);
Diese Regelaktion würde iterativ über jede ip.src in der anfänglichen Ergebnismenge laufen und die beiden obersten Ziel-IP-Adressen mit jedem ip.src suchen.
Die folgende Abbildung zeigt die Regeldefinition an.
In der folgenden Abbildung wird der Ergebnissatz gezeigt, der für jedes „ip.src“ die Quell-IP-Adressen und die obersten zwei Ziel-IP-Adressen enthält.
2a. lookup_and_add('ip.dst','ip.src', 2); lookup_and_add('service','ip.src', 3);
Diese Regelaktion würde iterativ über jede „ip.src“ im anfänglichen Ergebnissatz laufen und für jedes „ip.src“ die beiden obersten Ziel-IP-Adressen sowie die obersten drei von jedem „ip.src“ verwendeten Ports suchen.
Die folgende Abbildung zeigt die Regeldefinition an.
In der folgenden Abbildung wird der Ergebnissatz gezeigt, der für jedes „ip.src“ die Quell-IP-Adressen und die obersten zwei Ziel-IP-Adressen sowie die obersten drei von jedem „ip.src“ verwendeten Ports enthält.
Sie können die Abfrage beliebig komplex gestalten, indem Sie verschiedene Felder im Ergebnissatz auswählen und sie an unterschiedliche Teile anhängen. Beispiel: Angenommen, Sie möchten wissen, welche Dateien die jeweilige Quell-IP verarbeitet hat. Da die übergeordnete Regel jedoch eine WHERE-Klausel „service = '6667'“ enthält und das Standardverhalten dieser Regelaktion darin besteht, dass Daten an die ursprüngliche WHERE-Klausel angehängt werden, müssen Sie die übergeordnete WHERE-Klausel außer Kraft setzen. Dieses Konzept ist am einfachsten zu verstehen, wenn Sie sich den vorherigen Aufruf von lookup_and_add ansehen: lookup_and_add('ip.dst','ip.src',2) ansehen. Die eigentliche Abfrage, die an den Server gesendet wird, lautet: SELECT ip.dst WHERE service = 6667 ip.src = 206.42.199.194. Um zu erzwingen, dass die WHERE-Klausel diesen Teil „service = '6667'“ der WHERE-Klausel (geerbt aus der übergeordneten Regel) außer Kraft setzt, kann der Benutzer als vierten Parameter „false“ festlegen, wie in Beispiel 3 dargestellt.
2b. Ohne die Regel Lookup_and_add
Diese Regel verwendet die Zusammenfassung „Benutzerdefiniert“ und die Funktion „Gruppieren nach“, um die Ergebnisse zu sortieren.
Die folgende Abbildung zeigt die Regeldefinition an.
In der folgenden Abbildung wird der Ergebnissatz gezeigt, der für jedes „ip.src“ die Quell-IP-Adressen und die obersten zwei Ziel-IP-Adressen sowie die obersten drei von jedem „ip.src“ verwendeten Ports enthält.
3. lookup_and_add('filename', 'ip.src', 2, false);
Dieser Aufruf würde eine Abfrage an den Server ausgeben, z. B. SELECT filename WHERE ip.src = 90.0.0.142 anstelle von SELECT filename WHERE service = 6667' && ip.src = 90.0.0.142, da Sie angegeben haben, dass die Regelaktion die anfängliche WHERE-Klausel der übergeordneten Regel ignorieren soll.
Die folgende Abbildung zeigt die Regeldefinition an.
Die folgende Abbildung zeigt die Ergebnismenge an.
Die Liste „test“ befindet sich im Gruppennamen „netwitness“; auf diese Liste können Sie mit der folgenden Syntax zugreifen.
Sie können diese angehängten Ergebnisse weiter einengen, sodass nur Dateinamen mit der Erweiterung .gif aufgenommen werden, indem Sie den fünften Parameter in der Regelaktion verwenden Mit dem fünften Parameter können Sie zusätzliche Kriterien für die WHERE-Klausel angeben. Die Dateien mit der Erweiterung .gif würden in der Liste test innerhalb einer Gruppe namens DocTeamList gespeichert. Sie können mit der folgenden Syntax auf diese Liste zugreifen: threat.source = $[DocTeamList/test]
Hierauf kann im zusätzlichen where-Klauselparameter auf folgende Weise verwiesen werden:
4. lookup_and_add('filename', 'ip.src', 5, false, 'filename CONTAINS $[DocTeamList/test]');
Die folgende Abbildung zeigt die Regeldefinition an.
Die folgende Abbildung zeigt die Ergebnismenge an.
5. lookup_and_add('ip.dst','ip.src', 2,true,,false);
Diese Regelaktion würde iterativ über jede ip.src in der anfänglichen Ergebnismenge laufen und die beiden obersten Ziel-IP-Adressen mit jedem ip.src suchen. Der Parameter „aggregate“ ist auf „false“ gesetzt; dadurch wird impliziert, dass Aggregate für Lookup-Werte übersprungen werden und daher die Lookup-Abfrage schneller ausgeführt wird.
Hinweis:
Der Standardwert für „aggregate“ ist „true“. Wenn „aggregate“ auf „false“ gesetzt ist, gibt die Reporting Engine threshold=1, Sort by='value' und Order=Ascending an NWDB weiter, um die Lookup-Abfragen zu beschleunigen.
. Sie müssen „aggregate“ auf „false“ setzen, wenn die Regel Aggregatfunktionen enthält oder wenn sie für einen langen Zeitbereich ausgeführt wird. Dann wird die Regel schneller ausgeführt.
Die folgende Abbildung zeigt die Regeldefinition an.
Die folgende Abbildung zeigt die Ergebnismenge an.
max_threshold (string quantity)
max_threshold (string quantity, string field)
„max_threshold“ entfernt alle Ergebnisse mit einer Menge, die über der maximalen Schwellenwertmenge liegt, aus einem Ergebnissatz. Die Menge kann entweder in Anzahl oder Größe angegeben werden und ist relativ zu den Sortieroptionen der übergeordneten Regel. Das bedeutet, wenn Sie eine Regel nach Größe sortieren, erwartet die Regelaktion, dass Sie die Parameter in Byte angeben (Sie können dem Parameter KB, MB, GB, TB anfügen, um die Größenkonvertierung zu vereinfachen).
Mithilfe der Regel „max_threshold“ können auch Werte auf Basis der Aggregatfunktionswerte gefiltert werden. Verwenden Sie die Syntax auf Basis des Typs von Zusammenfassung wie in der Regel unten:
- max_threshold(String quantity): Kann zum Filtern von Ereignisanzahl, Paketanzahl und Sitzungsgröße verwendet werden.
- max_threshold(String quantity, String field): Kann zum Filtern der Werte von benutzerdefinierten Aggregaten oder beliebigen Metadaten verwendet werden.
Beispiele:
1. max_threshold(200);
Die folgende Abbildung zeigt das Ergebnis ohne das Argument „max_threshold“. Die Ausgabeergebnisse haben Ereignisanzahlen über 200.
Die folgende Abbildung zeigt, wie die Regelaktion „max_threshold“ die Ausgabe auf 200 Byte begrenzt Alle Ausgaben, die mehr als 200 Byte an Daten umfassen, werden nicht aufgelistet.
Die folgende Abbildung zeigt das Ergebnis mit angewendeter Regelaktion „max_threshold“. Das Ergebnis Nummer 1 im obigen Screenshot wurde aus dem Ergebnis entfernt.
2. max_threshold(5,count(alias.host));
Die folgende Abbildung zeigt das Ergebnis ohne das Argument „max_threshold“. In der Ausgabe sind „alias.host“-Ergebnisse mit einer Anzahl von über 5 enthalten.
Die folgende Abbildung zeigt, wie die Regelaktion „max_threshold“ die Ausgabe auf 5 begrenzt. Ausgaben mit einem Wert über 5 werden nicht aufgelistet.
Die folgende Abbildung zeigt das Ergebnis mit angewendeter Regelaktion „max_threshold“. Alle Ausgaben mit einem Wert über 5 wurden aus dem Ergebnis entfernt.
min_threshold (string quantity)
„min_threshold“ entfernt Ergebnisse mit einer Menge, die unter der minimalen Schwellenwertmenge liegt, aus einem Ergebnissatz. Die Menge kann entweder in Anzahl oder Größe angegeben werden und ist relativ zu den Sortieroptionen der übergeordneten Regel. Das bedeutet, wenn Sie eine Regel nach Größe sortieren, erwartet die Regelaktion, dass Sie die Parameter in Byte angeben (Sie können dem Parameter KB, MB, GB, TB anfügen, um die Größenkonvertierung zu vereinfachen).
Mithilfe der Regel „min_threshold“ können Werte auch auf Basis der Aggregatfunktionswerte gefiltert werden. Verwenden Sie die Syntax auf Basis des Typs von Zusammenfassung wie in der Regel unten:
- min_threshold(String quantity): Kann zum Filtern von Ereignisanzahl, Paketanzahl und Sitzungsgröße verwendet werden.
- min_threshold(String quantity, String field): Kann zum Filtern der Werte von benutzerdefinierten Aggregaten oder beliebigen Metadaten verwendet werden.
Beispiele:
1. min_threshold(200);
Die folgende Abbildung zeigt ein Beispiel für eine Abfrage mit „min_threshold“.
In der obigen Abbildung wird die Ausgabe auf 200 Byte begrenzt. Es wird keine Ausgabe mit weniger als 200 Byte an Daten aufgelistet. Die Ausgabe mit der Regelaktion „min_threshold“ wird angewendet.
Wie aus der Abbildung hervorgeht, sind alle Werte größer als 200 Byte.
2. min_threshold(100,count(alias.host));
Die folgende Abbildung zeigt das Ergebnis ohne das Argument „min_threshold“. In der Ausgabe sind alias.host-Ergebnisse mit einer Anzahl von unter 100 enthalten.
Die folgende Abbildung zeigt, wie die Regelaktion „min_threshold“ die Ausgabe auf ein Minimum von 100 begrenzt. Es wird keine Ausgabe mit Daten unter 100 aufgelistet.
Die folgende Abbildung zeigt das Ergebnis mit angewendeter Regelaktion „min_threshold“. Alle Ausgaben mit Daten von weniger als 100 wurden aus dem Ergebnis entfernt.
regex (string regex, string field)
Die Regelaktion „regex“ wendet reguläre Ausdrücke auf den Ergebnissatz an. Die Regelaktion „regex“ hat folgendes Format:
regex(regular_expression, meta_name)
Hierbei gilt:
- regular_expression: Regulärer Ausdruck zum Vergleich mit dem Metawert
- meta_name: Meta- oder Feldname, auf den regex angewendet werden soll.
Eine umfassende Liste der unterstützten regex-Muster finden Sie unter http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html.
Beispiel für die Regelaktion „regex“:
Wenn Sie die Dateinamen aller Dateien im PNG- und JPEG-Format aus verschiedenen Sitzungen auflisten möchten, können Sie eine Regel mit der folgenden Regelaktion „regex“ schreiben:
regex(".+.(png|jpg)", filename);
Die folgende Abbildung zeigt die Regel.
In der folgenden Abbildung sehen Sie die Ausgabe mit angewendeter Regelaktion „regex“.
sum_count()
Zählt die Quantoren für einen angegebenen Ergebnissatz zusammen. Beispiel: Beim Aufruf von „sum_count()“ für eine Regel, die nach Ereignisanzahlsummen sortiert wird, werden die Größen aller Werte im Ergebnissatz zusammengezählt und der Gesamtwert anstelle des Ergebnissatzes angezeigt.
Beispiel:
Die folgende Abbildung zeigt die Regelaktion „sum_count()“.
Mit der Regelaktion „sum_count()“ zeigt die Ausgabe die Gesamtgröße aller Ereignisanzahlen.
sum_values()
Zählt die Anzahl der Werte für einen angegebenen Ergebnissatz zusammen. Mit dieser Aktion zeigen Sie an, wie viele Entsprechungen für eine angegebene Regel existieren.
Beispiel:
Die folgende Abbildung zeigt die Regelaktion „sum_values()“.
Die folgende Abbildung zeigt das Ergebnis mit der Regelaktion „sum_values()“.
show_whats_new()
Die Regelaktion „show_whats_new()“ nimmt ein beliebiges Ergebnis in einem Ergebnissatz und filtert alle Werte heraus, die bereits vor dem Zeitrahmen des derzeit ausgeführten Berichts in der NetWitness-Metadatenbank verfügbar waren. Wenn ein Bericht ausgeführt wird, bestimmt NetWitness Suite die ID der ersten Sitzung im Zeitbereich des Berichts. Wenn ein Wert in einem Ergebnissatz eine erste Sitzungs-ID hat, die größer als die erste Sitzungs-ID des Berichtzeitrahmens ist, war sie vor Ausführung des Berichts noch nicht in der NetWitness-Metadatenbank vorhanden und ist folglich im NetWitness-System relativ zum Zeitrahmen des Berichts neu.
Die Regelaktion „show_whats_new()“ wird auch für die benutzerdefinierte Aggregatregel unterstützt. Werden in der benutzerdefinierten Regel mehrere Metawerte ausgewählt, wird der erste zum Herausfiltern der alten Werte herangezogen. Die Verwendung dieser Regelaktion für die benutzerdefinierte Aggregatregel wird in Beispiel 2 verdeutlicht.
Hinweis: Die Regelaktion „show_whats_new()“ kann nicht mit einer Aggregatregel verwendet wird.
Beispiele:
1. „show_whats_new()“ für eine Aggregatregel mit Ereignisanzahl
Im folgenden Beispiel werden alle verfügbaren Quell-IP-Adressen der vergangenen zwei Wochen aufgelistet.
Die folgende Abbildung zeigt, wie mit der Regelaktion „show_whats_new“ nur die neuen Einträge der letzten zwei Wochen aufgelistet werden.
In der folgenden Abbildung werden die neuen Einträge der letzten zwei Wochen aufgelistet.
2. „show_whats_new()“ für eine benutzerdefinierte Aggregatregel
Im folgenden Beispiel werden alle verfügbaren Quell-IP-Adressen der vergangenen zwei Wochen aufgelistet.
Die folgende Abbildung zeigt, wie mit der Regelaktion „show_whats_new“ nur die neuen Einträge der letzten zwei Wochen aufgelistet werden.
In der folgenden Abbildung werden die neuen Einträge für Quell-IP-Adressen der letzten zwei Wochen aufgelistet.
Der Vorteil dieser Funktion liegt darin, dass es nicht darauf ankommt, wann der Bericht ausgeführt wird; Werte, die in NetWitness neu sind, können jederzeit identifiziert werden. Der Nachteil dieser Funktion liegt darin, dass, wenn die Daten zurückgesetzt werden, Ihre Daten verloren gehen. Es ist jedoch einfach, eine Baseline für ein System zu erstellen und Änderungen und neue Einträge zu identifizieren, ohne dass das System zu stark belastet wird (abhängig von der Größe Ihres Ergebnissatzes).
Unterstützte Regeloperatoren
Die Datenquellen-Regelsyntax der NWDB Reporting Engine unterstützt einen Teilsatz der von NetWitness Suite unterstützten Regeloperatoren.
Beispielgestützte Abfragen
Regelsyntax von Respond
Die unterstützte Regelsyntax für den Reagieren-Service anhand von Beschreibungen und Beispielen für unterstützte und nicht unterstützte Syntax. Bei der Erstellung von Regeln für Berichte mithilfe des Reagieren-Service können Sie auf eine endliche Menge von Syntaxausdrücken zurückgreifen.
Die Reporting Engine unterstützt die folgenden Kategorien der Reagieren-Datenquellen-Regelsyntax:
-
select-Klausel
- Nichtaggregatregel
- Aggregatregel
- alias
- where-Klausel
- where-Klauseloperatoren
- Gruppieren nach
- Sortieren nach
- Feld Grenzwert
Hinweis: Liste wird in Respond-Datenquellenregeln nicht unterstützt.
Select-Klausel
Die Select-Klausel ist eine durch Kommas getrennte Liste von Werten. Beispiel: select alert.severity, alert.name, count(*).
Es gibt zwei Arten von Select-Klauseln für Reagieren-Regeln:
- Nichtaggregatregel
- Aggregatregel
Nichtaggregatregel
Wenn Sie eine Regel ohne eine Gruppierung definieren möchten, wählen Sie im Feld „Zusammenfassen“ die Option „Keine“ aus. In einer Nichtaggregatregel können Sie in der Select-Klausel eine beliebige Anzahl von Metadaten auswählen. Beispiel: select alert.severity, alert.name.
Aggregatregel
Wenn Sie bestimmte Metadaten und den zugehörigen Aggregatwert abfragen möchten, müssen Sie die Aggregatregel verwenden. Um ein Aggregat zu erhalten, müssen Sie im Feld Zusammenfassen „Benutzerdefiniert“ auswählen, um der Select-Klausel eine Aggregatfunktion hinzuzufügen. Beispiel: select alert.severity, alert.name, count(*).
Die folgende Abbildung zeigt die Ansicht „Regel erstellen“ für die Aggregatregel.
Unterstützte Aggregatfunktionen
Die Regeln für den Reagieren-Service unterstützen die folgenden Aggregatfunktionen und die folgende Syntax.
- count
- max
- min
- sum
- avg
Hinweis: Für das Aggregieren von Abfragen müssen Aggregatfunktionen am Ende einer Select-Klausel hinzugefügt werden. Beispiel: alert.name, alert.severity, sum(alert.numEvents). Standardmäßig werden Ergebnisse mit maximal 10.000 Zeilen abgerufen und dies kann mithilfe von rsa.response.query.QueryProperties konfiguriert werden.
Beispiele für die select-Klausel-Syntax
Die folgende Tabelle enthält Beispiele für die select-Klausel-Syntax.
Beispiele für unterstützte Select-Abfragen
select alert.name, alert.numEvents, count(alert.numEvents)
select alert.severity, avg(alert.severity)
select alert.timestamp, incidentCreated where alert.timestamp >= 1475658011
Zusammenfassung
„Zusammenfassen“ bestimmt den Typ der Zusammenfassung oder Aggregation für die Regel.
Alias
Einige Metanamen sind möglicherweise nicht beschreibend. In diesem Fall kann die Beschreibung im Aliasfeld hinzugefügt werden, damit Spaltennamen besser lesbar sind. Beispiel: SELECT: alert.severity, alert.name, count(*)
ALIAS: Schweregrad der Warnmeldung, Name der Warnungmeldung
Im Aliasfeld können Sie einen Namen für Spalten eingeben, die in der SELECT-Klausel verwendet werden. Wenn Sie den Alias für eines der Felder in der Select-Klausel nicht angeben, wird die Standardbeschreibung verwendet. Wenn die Select-Klausel z. B. Feld1, Feld2, Feld3, Feld4 aufweist und Alias nur Feld1, Feld3, Feld4 aufweist, wird für Feld2 eine Standardbeschreibung verwendet.
Where-Klausel
Die where-Klausel ist ein Sprachfeldwert und -bereich, der von der Funktion Reagieren verwendet wird. In der where-Klausel müssen Zeichenfolgenwerte in Apostrophe gesetzt werden.
Unterstützte where-Klauseloperatoren
Gruppieren nach
Sortieren nach
„Sortieren nach“ legt fest, wie der Ergebnissatz sortiert wird und unterscheidet nicht zwischen Groß- und Kleinschreibung.
Feld Grenzwert
Gibt den Grenzwert an, der für die Abfrage gelten soll, wenn Daten aus der Datenbank abgerufen werden. Wenn ein Ergebnissatz nach Ereignisanzahl, Paketanzahl oder Sitzungsgröße sortiert wird, repräsentiert der Grenzwert die obersten (oder untersten) wiederzugebenden n Werte. Wenn die Ergebnismenge nicht
sortiert wird, werden die ersten n Werte wiedergegeben.