Unsupported content This version of the documentation is no longer supported. However, the documentation is available for your convenience. You will not be able to leave comments.

Where clauses


The where clauses are an optional part of the ECF and establish restrictive selection criteria. A where clause consists of the keyword where followed by the criteria within square brackets:

where \[criteria\]

The criteria portion of the statement is a logical combination of expressions about the slots of the event.

The where clauses can use logical combination operators, as described in, and any of the following condition operators:

equals (==)
within
matches
not_equals (!=)
outside
ip_greater_or_equals
greater_than (>)
has_prefix
ip_smaller_or_equals
greater_or_equal(<)
has_suffix
ip_matches
smaller_than (>=)
contains
ip_matched_by
smaller_or_equals (<=)
contains_one_of
superclass_of
between
contained_in
subclass_of

MRL primitives, functions, and operations also can be used in expressions. An exhaustive list can be found in MRL-functions-and-primitives.

In the following example, the where clause syntax requires that the mc_host slot of the event under analysis literally is to be set to 'thishost'.

APPLICATION_EVENT ($APEV)
   where [
   $APEV.mc_host == 'thishost';
   ]

The syntax in the next example requires that the mc_host slot of the event under analysis literally to be set to 'thishost' or to 'thathost' if the source does not contain NT.

APPLICATION_EVENT ($APEV)
   where [
   $APEV.mc_host == 'thishost' OR
   $APEV.mc_host == 'thathost' AND
      NOT $APEV.source contains 'NT'
   ]

Note

Quotation marks are mandatory when the string contains spaces, punctuation characters, or arithmetic operators (+, -, *, /, and so forth).

You can write the same rule by using parentheses to specify priority or precedence, as shown in the following example:

APPLICATION_EVENT ($APEV)
   where [
   ($APEV.mc_host == 'thishost') OR
   (($APEV.mc_host == 'thathost') AND
      (NOT ($APEV.source contains 'NT')));
   ]

You can also use parentheses to alter the precedence. In the following example, the OR operator would be evaluated first because it is enclosed in parentheses.

APPLICATION_EVENT ($APEV)
   where [
   ($APEV.mc_host == 'thishost' OR
   $APEV.mc_host == 'thathost')
      AND $APEV.source contains 'NT';
   ]

For information about the order of precedence for combination operators, see Combination-operators.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*