En este tema se describe la sintaxis de reglas compatible con la sintaxis de reglas de NWDB en Reporting Engine. Para mejorar el tiempo de ejecución de las entidades informantes, consulte Guías para informes.
Una regla es una función que manipula el conjunto de resultados de una regla para lograr que la salida de un informe sea más concreta o para agregar una funcionalidad adicional distinta a la consulta de datos y su visualización. Se puede utilizar cualquier combinación de estas acciones de regla para crear representaciones únicas e interesantes de la información que recopila Security Analytics.
El Reporting Engine es compatible con las siguientes categorías de sintaxis de reglas de orígenes de datos de NWDB:
-
Cláusula Select
- Regla no agregada
- Regla agregada
- Cláusula Where
- Operadores de la cláusula Where
- Cláusula Then
- Campo Límite
- Acciones de regla
- Operadores de regla
Cláusula Select
La cláusula Select es una lista de valores separados por comas. Por ejemplo: select sessionid,time,service.
Hay dos tipos de cláusulas Select para la regla NWDB:
- Regla no agregada
- Regla agregada
Regla no agregada
Cuando desee definir una regla sin agrupación, elija “Ninguno” en el campo Resumen. En una regla no agregada, puede seleccionar una cantidad indefinida de metadatos en la cláusula Select. Por ejemplo, select service, sessionid, time.
Regla agregada
Cuando desea consultar por metadatos específicos y su valor agregado asociado, debe usar la regla agregada. Para obtener un agregado, debe elegir cualquiera de los tres metadatos (Conteo de eventos, Conteo de paquetes o Tamaño de sesión) o seleccionar “Personalizado” en el campo Resumen para incluir una función de agregado en la cláusula Select. Por ejemplo, select ip.src, sum (ip.dst). Cuando se habilita la regla agregada Personalizado, se completan los siguientes campos en la interfaz del usuario:
- Agrupar por
- Ordenar por
- Umbral de sesión
En la siguiente figura se muestra la vista Crear regla para una regla agregada.
Existen dos tipos de valores de agregados que se pueden consultar:
- Agregación de recopilados
- Agregación de metadatos
Agregación de recopilación
Con la agregación de recopilación, puede obtener agregados relacionados con eventos, sesiones o paquetes. Los siguientes valores se pueden solicitar en una agregación de recopilación:
- Conteo de eventos: El conteo total de eventos.
- Conteo de paquetes: El conteo total de paquetes.
- Tamaño de sesión: El tamaño total de la sesión.
Estas opciones se indican en el campo “Resumen ejecutivo” y cualquiera de ellas se puede seleccionar en una regla.
Por ejemplo, elija cualquiera de los agregados de Recopilación (Conteo de eventos, Conteo de paquetes o Tamaño de sesión) en el campo “Resumen” y seleccione ip.src.
Agregación de metadatos
Con la agregación de metadatos, puede obtener agregados de valores de metadatos. Las siguientes son las funciones de agregado de metadatos compatibles:
- sum(meta)
- count(meta)
- countdistinct(meta)
- min(meta)
- max(meta)
- avg(meta)
- first(meta)
- last(meta)
- len(meta)
- distinct(meta)
Funciones agregadas de metadatos compatibles
El servicio NWDB es compatible con las siguientes funciones agregadas y sintaxis en esta versión.
Sintaxis | Función |
---|---|
sum(<meta>) | La suma de todos los valores de metadatos. Por ejemplo, si proporciona el campo sum(payload) en la cláusula Select, el conjunto de resultados es la suma del tamaño de la carga útil. Nota: El campo de metadatos escogido para la función de suma de agregados debe ser del tipo de datos numéricos. |
count(<meta>) | La cantidad total de campos de metadatos que se deberían devolver. Por ejemplo, si proporciona el campo count(ip.dst) en la cláusula Select, el conjunto de resultados es la cantidad de veces que se devuelve un valor ip.dst. |
countdistinct(<meta>) | La cantidad total de campos de metadatos distintos que se devolverían. Por ejemplo, si proporciona el campo countdistinct(ip.dst) en la cláusula Select, el conjunto de resultados es la cantidad de veces que se devuelve un valor distinct ip.dst. |
min(<meta>) | El mínimo de todos los valores de metadatos. Por ejemplo, si proporciona el campo min(payload) en la cláusula Select, el conjunto de resultados es el mínimo del tamaño de la carga útil. |
max(<meta>) | El máximo de todos los valores de metadatos. Por ejemplo, si proporciona el campo max(payload) en la cláusula Select, el conjunto de resultados es el máximo del tamaño de la carga útil. |
avg(<meta>) | El promedio de todos los valores de metadatos. Por ejemplo, si proporciona el campo avg(payload) en la cláusula Select, el conjunto de resultados es el promedio del tamaño de la carga útil. Nota: El campo de metadatos que se eligió para la función de promedio de agregados debe ser del tipo de datos numéricos. |
first(<meta>) | La primera aparición del valor de metadatos. Por ejemplo, si proporciona el campo first(ip.src) en la cláusula Select, el conjunto de resultados es la primera aparición de ip.src para ese grupo. |
last(<meta>) | La última aparición del valor de metadatos. Por ejemplo, si proporciona el campo last(ip.src) en la cláusula Select, el conjunto de resultados es la última aparición de ip.src para ese grupo. |
len(<meta>) | Convierte todos los valores de campo a una longitud UInt32 en lugar de devolver el valor real. Esta longitud es el número de bytes para almacenar el valor real, no la longitud de la estructura almacenada en la base de datos de metadatos. Por ejemplo, el valor de metadatos “NetWitness” devuelve una longitud de 10. Todos los campos IPv4, como ip.src, devuelven 4 bytes. |
distinct(<meta>) | Los valores distintos de los metadatos. Por ejemplo, si proporciona el campo distinct(ip.src) en la cláusula Select, el conjunto de resultados corresponde a todos los ip.src distintos para ese grupo. |
Debe seleccionar “Personalizado” en el campo “Resumen” y proporcionar los metadatos y las funciones de agregado de metadatos en la cláusula Select.
Nota: Las funciones de agregado de metadatos no se pueden usar en una cláusula WHERE y las acciones de regla como min_threshold/max_threshold se pueden usar para filtrar funciones de agregado. Se recomienda usar una cláusula WHERE más refinada para obtener un mejor rendimiento de la regla cuando se usa “group by”.
Consulta de agregado para múltiples metadatos
Para ejecutar una consulta de agregado para múltiples metadatos, siga estos pasos:
-
En el menú de Security Analytics, haga clic en Administration > Informes.
Se resalta la pestaña Administrar y se muestra la vista Reglas.
-
En la barra de herramientas Regla, haga clic en
> Base de datos de NetWitness.
Por ejemplo, ingrese los siguientes metadatos en los campos que se resaltan a continuación:
SELECT: ip.src, service, count(alias.host)
WHERE: ip.src = 59.96.136.142 -
Haga clic en el botón Probar regla de la parte inferior de la pantalla.
Aparecerá la página Probar regla.
Resumen
Resumen determina el tipo de resumen o agregación para la regla.
Nombre | Valor de configuración |
---|---|
Resumen | Para consultar metadatos sin ninguna agrupación personalizada, seleccione:
Para obtener agregados relacionados con la recopilación (sesiones/eventos/paquetes), seleccione una de las siguientes opciones:
Para obtener agregados basados en metadatos, seleccione:
|
Ordenar por
Ordenar por determina cómo se ordena el conjunto de resultados.
Nombre | Valor de configuración |
---|---|
Nombre de la columna | El Nombre de la columna es el nombre de las columnas según las cuales desea ordenar los resultados. El valor está vacío de forma predeterminada. Cuando hace clic en una columna, el valor se completa de acuerdo con el campo Resumen.
|
Ordenar por | Ordenar por determina el orden en el cual desea clasificar los resultados. Los valores son los siguientes:
|
Umbral de sesión
El umbral de sesión es la configuración de optimización para detener el escaneo de las sesiones coincidentes para cada valor único posible
para los metadatos seleccionados. El umbral es un número entero entre 0 (predeterminado) y 2,147,483,647. El umbral 0 escanea todas las sesiones coincidentes.
Nota: Si proporciona un valor distinto de cero (un valor mayor que cero), los resultados del agregado son inexactos. Esto puede utilizarse únicamente cuando está interesado en valores únicos y no en valores agregados.
Cláusula Where compatible
Sintaxis | Descripción |
---|---|
where <field1> [<field-operator>] <value1>,<value2>,<value3-value4> <logic-operator> <field2>, etc. | La cláusula Where es una lista separada por comas de los valores y rangos de campos de idiomas que utiliza la función NwValues. En la cláusula Where, los valores de cadena deben estar encerrados en comillas simples. Por ejemplo, where username = 'admin' && service = 22. |
where <field1> [<field-operator>] <List1> | Puede usar una lista en la cláusula Where si tiene múltiples valores que informar. Por ejemplo, where ip.src exists && alias.host exists && alias.host contains $[User Reports/List of Alias Host]. Cuando utiliza la lista, debe especificar en el formato $[<path>/<List name>]. |
En la cláusula Where, asegúrese de que la sintaxis esté correcta según el tipo de metadatos.
Por ejemplo,
Para todos los tipos de metadatos de texto, use comillas; por ejemplo, username = ‘user1’.
Para todas las direcciones IP, las direcciones de Ethernet y los tipos de metadatos numéricos, no utilice comillas; por ejemplo, service = 80 && ip.src = 192.168.1.1.
Para los tipos de metadatos de fecha y hora, si el formato de fecha y hora es “AAAA-MM-DD HH:MM:SS”, utilice comillas.
Si el formato de fecha y hora es 1448034064 (número de segundos transcurridos desde EPOCH (1 de enero de 1970), no use comillas.
Nota: Si se utiliza una lista en la regla, asegúrese de que los valores de la lista estén entre comillas o sin comillas en función del tipo de metadatos que se utiliza. Si marca la casilla de verificación Se insertarán comillas para todos los valores en la página de definición de lista (para obtener más información, consulte la sección Agregar una lista ), se agregarán comillas a todos los valores de la lista.
Operadores de cláusula Where compatibles
Sintaxis | Descripción |
---|---|
= | Devuelve los resultados donde el campo es igual a cualquier valor proporcionado. Por ejemplo, tcp.dstport = 21-25,110 devuelve la sesión con puertos de destino TCP de 21, 22, 23, 24, 25 o 110. |
!= | Devuelve resultados para los campos que no coinciden con los valores especificados. Por ejemplo, eth.type !=0x0800 devuelve sesiones fuera del valor hexadecimal (valor decimal de 2048), que son todos los protocolos que no se basan en IP. |
begins | Verifica un valor en el comienzo de un texto o campo binario. |
contains | Busca un textoo valor binario para una coincidencia parcial. |
ends | Verifica un valor al final de un texto o campo binario. |
exists | Si el valor de campo existe, independientemente del valor, la operación se evalúa como verdadera. |
!exists | Si el valor de campo no existe, la operación se evalúa como verdadera. |
length | Evalúa la longitud del campo. Por ejemplo, username length 20-u devuelve todos los nombres de usuario que tienen 20 o más caracteres de longitud. |
regex | Ejecuta una búsqueda de expresión regular contra el texto o los valores binarios. |
Cláusula Then compatible
Sintaxis | Descripción |
---|---|
then <rule action> | La cláusula Then contiene una acción de regla que manipula el conjunto de resultados original de una regla para lograr que la salida en un informe sea más concreta o agregar una funcionalidad adicional distinta de la consulta de datos y su visualización. Por ejemplo, dedup (nombre de archivo). |
Campo Límite
Indica el límite que se introducirá en la consulta mientras se obtienen los datos de la base de datos. Si un conjunto de resultados se ordena por conteo de
eventos, conteo de paquetes o tamaño de sesión, el límite representa los N valores superiores (o inferiores) que se devolverán. Si el conjunto de resultados no
se ordena, se devuelven los primeros N valores.
Acciones de regla
La sintaxis de regla de orígenes de datos de NWDB es compatible con las siguientes acciones de regla:
- dedup
- filter_on
- filter_out
- lookup_and_add
- max_threshold
- min_threshold
- regex
- sum_count
- sum_values
- show_whats_new
dedup (string field)
Dedup elimina las entradas duplicadas en un conjunto de resultados desordenado y solo muestra datos pertinentes. La acción de regla dedup elimina entradas duplicadas de un campo específico del informe, de modo que solo se incluye la primera aparición de ese valor en el informe.
Nota: La acción de regla dedup no se puede usar con una regla agregada.
Por ejemplo, los metadatos que genera una sesión individual son generalmente repetitivos, en especial cuando tiene sesiones con muchas búsquedas de DNS o sesiones web que acceden al mismo host en múltiples ocasiones para varios recursos (como javascript, css). Para quitar las entradas duplicadas del host, puede usar la acción de regla dedup.
Ejemplo:
El siguiente ejemplo es un conjunto de resultados extenso que se puede acortar eliminando los valores duplicados en la misma sesión.
Las siguientes figuras muestran la acción de regla dedup para eliminar las entradas duplicadas del conjunto de resultados.
El valor duplicado de cada entrada en el conjunto de resultados de la regla se reduce a un valor.
filter_on (string filter, string field, bool matchExact)
filter_on quita valores que no contienen el criterio filter del conjunto de resultados. Si el conjunto de resultados contiene múltiples campos, debe seleccionar un campo específico al cual se aplica el filtro. Para agregar resultados adicionales a un único conjunto de resultados, incluya una función como lookup_and_add.
El parámetro matchExact determina si la coincidencia es una coincidencia exacta o si contiene una coincidencia.
- Si matchExact se configura en false,, cualquier valor que contiene el texto de filtro se considera una coincidencia.
- Si matchExact se configura en true, solamente los valores que coinciden con el texto de filtro proporcionado se incluyen en el conjunto de resultados.
Nota: A menos que se especifique el parámetro matchExact, el comportamiento predeterminado de la acción de regla será coincidir exactamente con el texto especificado en el parámetro de filtro. Para especificar que los resultados que contienen el texto de filtro se mantengan en el conjunto de resultados, los usuarios deben configurar el parámetro matchExact en falso.
Ejemplo:
La siguiente figura muestra la lista de países y su conteo de eventos.
En la siguiente figura se muestra una acción de regla filter_on para excluir países del conjunto de resultados, con excepción de España, China, Estados Unidos y Reino Unido.
En la siguiente figura se muestra la salida con la acción de regla filter_on:
Otra forma de filtrar las salidas de cada conjunto de resultados es crear una lista de variables que desea filtrar. Por ejemplo, puede crear una lista con Reino Unido, Francia y Alemania como valores de la lista. Puede utilizar esta lista en la acción de regla para obtener el mismo conjunto de resultados. Por ejemplo, si crea una lista denominada COUNTRY_LIST, puede utilizar la lista de la siguiente manera:
filter_on ('$COUNTRY_LIST', 'country.src', 'false');
filter_out (string filter, string field)
filter_out (string filter, string field, bool matchExact)
filter_out elimina los valores que contienen el criterio filtro del conjunto de resultados. Si el conjunto de resultados contiene múltiples campos, debe seleccionar un campo específico al cual se aplica el filtro (por ejemplo, puede utilizar lookup_and_add para agregar resultados a un único conjunto de resultados).
El parámetro matchExact determina si la coincidencia es una coincidencia exacta o si contiene una coincidencia.
- Si matchExact se configura en falso, cualquier valor que contiene el texto de filtro se considera una coincidencia.
- Si matchExact se configura en verdadero, solamente los valores que coinciden con el texto de filtro proporcionado se excluyen del conjunto de resultados.
Nota: A menos que se especifique el parámetro matchExact, el comportamiento predeterminado de la acción de regla es buscar una coincidencia exacta para el texto especificado en el parámetro de filtro. Para especificar que los resultados que contienen el texto de filtro se quiten del conjunto de resultados, los usuarios deben configurar el parámetro matchExact en falso.
Ejemplo:
La siguiente figura muestra la lista de países y su conteo de eventos.
En la siguiente figura se muestra la acción de regla filter_out para eliminar el conteo de eventos de España, China, Estados Unidos y Reino Unido del conjunto de resultados.
En la siguiente figura se muestra la salida con la acción de regla 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)
Esta acción de regla realiza una iteración mediante una lista de valores en un conjunto de resultados y busca metadatos adicionales para describir con más detalles las relaciones entre diversos elementos dentro de un conjunto de resultados.
Nota: La acción de regla lookup_and_add se puede usar solo con una regla agregada.
El primer parámetro, select, designa el tipo de metadatos que se debe agregar a los elementos del conjunto de resultados. El segundo parámetro, field, especifica en qué parte del conjunto de resultados se debe aplicar el adjunto. Además, se puede aplicar un límite para evitar la sobrecarga del conjunto de resultados con un gran conjunto de resultados.
De manera predeterminada, las consultas posteriores que se realicen a SDK heredan la cláusula Where de la regla principal. Para usar una cláusula Where única, puede especificar un valor booleano en el cuarto parámetro como false y, en el quinto parámetro, especificar una cláusula Where diferente.
Nota: Si está utilizando una cláusula where única en su consulta, asegúrese de utilizar una comilla simple (') para encerrar argumentos y comillas dobles (") para los valores de cadena.
Ahora, con la adición del resumen Personalizado y la función Group By, el resultado se puede lograr incluso sin tener una acción de regla lookup_and_add. La sintaxis de la nueva regla con groupby muestra el resultado en una estructura plana que es mejor que la sintaxis de regla anterior sin groupby. Por lo tanto, se recomienda editar/actualizar manualmente las reglas con la acción de regla lookup_and_add y usar la cláusula groupby dondequiera que pueda aplicarse.
Nota: La acción de regla Lookup_And_Add solo es compatible si la cláusula SELECT tiene un metadato y una función de agregado.
Por ejemplo, consulte los siguientes escenarios: En el ejemplo 2a, se usa la acción de regla lookup_and_add. En lugar de usar la acción de regla lookup_and_add, se puede lograr el mismo resultado si se usa el resumen Personalizado y la función Group By. Consulte el ejemplo 2b más adelante.
Sin embargo, la acción de regla lookup_and_add es compatible con las reglas de NWDB en las siguientes condiciones:
- Todas las versiones de reglas de NWDB en las cuales Resumen está configurado en Conteo de eventos, Conteo de paquetes o Tamaño de sesión.
- En el caso del resumen Personalizado, la regla lookup_and_add debe tener solo un metadato group by con solo una función de agregado, y esta debe ser sum() o count().
Nota: No es compatible con “Resumen: Ninguno”.
Por ejemplo, la acción de regla lookup_and_add se puede usar para las siguientes reglas:
- select ip.src, sum(size) group by ip.src
- select ip.src, count(filename) group by ip.src
No se puede usar para las siguientes reglas:
- 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
Ejemplos:
1. lookup_and_add('ip.dst','ip.src', 2);
Esta acción de regla se repetirá a través de cada ip.src en el conjunto de resultados inicial y buscará las dos direcciones IP de destino principales con cada ip.src.
La siguiente figura muestra la definición de la regla.
En la siguiente figura se muestra el conjunto de resultados que contienen las direcciones IP de origen y las dos direcciones IP principales de destino con cada ip.src.
2a. lookup_and_add('ip.dst','ip.src', 2); lookup_and_add('service','ip.src', 3);
Esta acción de regla realizará la iteración a través de cada ip.src en el conjunto de resultados inicial y buscará las dos direcciones IP de destino principales con cada ip.src y los tres puertos principales utilizados por ip.src.
La siguiente figura muestra la definición de la regla.
La siguiente captura de pantalla muestra el conjunto de resultados que contienen las direcciones IP de origen y las dos direcciones IP principales de destino con cada ip.src y los tres puertos principales utilizados por cada ip.src:
Puede hacer la consulta con el grado de complejidad que desee mediante la selección de diferentes campos en el conjunto de resultados y la adición a diferentes partes. Por ejemplo, puede que desee saber qué archivos ha tocado cada IP de origen. Sin embargo, debido a que la regla principal tiene una cláusula WHERE service = 6667 y a que el comportamiento predeterminado de esta acción de regla es anexarse a la cláusula WHERE original, será necesario reemplazar la cláusula WHERE primaria. La manera más fácil de comprender este concepto es buscar en la llamada lookup_and_add anterior: lookup_and_add('ip.dst','ip.src',2). La consulta real que se envía al servidor es SELECT ip.dst WHERE service = 6667 &&ip.src = 206.42.199.194. Para forzar que la cláusula WHERE reemplace la parte de service = 6667 de la cláusula WHERE (heredada de la regla primaria), el usuario puede especificar un cuarto parámetro false, como se muestra en el ejemplo 3.
2b. Sin la regla lookup_and_add
Esta regla usa el resumen Personalizado y la función Group By para ordenar los resultados.
La siguiente figura muestra la definición de la regla.
La siguiente captura de pantalla muestra el conjunto de resultados que contienen las direcciones IP de origen y las dos direcciones IP principales de destino con cada ip.src y los tres puertos principales utilizados por cada ip.src:
3. lookup_and_add('filename', 'ip.src', 2, false);
Esta llamada enviaría una consulta al servidor, como SELECT filename WHERE ip.src = 90.0.0.142 en lugar de SELECT filename WHERE service = 6667' && ip.src = 90.0.0.142, porque se especificó la acción de regla para omitir la cláusula WHERE inicial de la regla primaria.
La siguiente figura muestra la definición de la regla.
La siguiente figura muestra el conjunto de resultados.
La lista test está en un grupo llamado netwitness, puede acceder a esa lista con la siguiente sintaxis.
Incluso puede acotar aún más estos resultados anexados para incluir solamente nombres de archivos que tengan .gif como la extensión del nombre de archivo utilizando el quinto parámetro en la acción de regla. El quinto parámetro le permite especificar criterios adicionales de la cláusula WHERE. Los archivos con extensión de nombre de archivo .gif se almacenarían en la lista test dentro de un grupo llamado DocTeamList. Puede acceder a esta lista con la siguiente sintaxis: threat.source = $[DocTeamList/test]
Puede hacer referencia a ella en el parámetro de la cláusula Where adicional de la siguiente forma:
4. lookup_and_add('filename', 'ip.src', 5, false, 'filename CONTAINS $[DocTeamList/test]');
La siguiente figura muestra la definición de la regla.
La siguiente figura muestra el conjunto de resultados.
5. lookup_and_add('ip.dst','ip.src', 2,true,,false);
Esta acción de regla se repetirá a través de cada ip.src en el conjunto de resultados inicial y buscará las dos direcciones IP de destino principales con cada ip.src. El parámetro “aggregate” está configurado en “false”, lo cual implica que los agregados se omitirán en los valores de búsqueda y, por lo tanto, las ejecuciones de consulta de búsqueda se completarán más rápidamente.
Nota:
El valor predeterminado para “aggregate” es “true”. Cuando “aggregate” está configurado en “false”, Reporting Engine transmite threshold=1, Sort by='value' y Order=Ascending a NWDB para acelerar las consultas de búsqueda.
. Debe configurar “aggregate” en false cuando la regla contenga funciones de agregado o cuando se ejecute contra un rango de tiempo amplio. Esto ayuda a la regla a completar la ejecución con mayor rapidez.
La siguiente figura muestra la definición de la regla.
La siguiente figura muestra el conjunto de resultados.
max_threshold (string quantity)
max_threshold (string quantity, string field)
max_threshold elimina cualquier resultado con una cantidad que es mayor a la cantidad del umbral máximo de un conjunto de resultados. Se puede especificar la cantidad en términos de conteo o de tamaño y es relativa a las opciones de orden de la regla principal. Esto significa que si clasifica una regla por tamaño, la acción de la regla espera que especifique el parámetro en bytes (puede agregar KB, MB, GB o TB al parámetro para facilitar la conversión del tamaño).
La regla max_threshold también se puede usar para filtrar valores de acuerdo con los valores de la función de agregado. Use la sintaxis según el tipo de resumen que se utiliza en la regla que se muestra a continuación:
- max_threshold(String quantity): se puede usar para filtrar Conteo de eventos, Conteo de paquetes y Tamaño de sesión.
- max_threshold(String quantity, String field): se puede usar para filtrar valores de agregados personalizados o cualquier metadato.
Ejemplos:
1. max_threshold(200);
En la siguiente figura se muestra el resultado sin el argumento max_threshold. Los resultados de salida tienen conteos de eventos que exceden los 200.
En la siguiente figura se muestra la acción de regla max_threshold que pone un límite de 200 bytes en la salida. No se enumera ninguna salida que tenga más de 200 bytes de datos.
En la siguiente figura se muestra el resultado cuando se aplica la acción de regla max_threshold. Los resultados enumerados 1 en la captura de pantalla anterior se quitan del resultado.
2. max_threshold(5,count(alias.host));
En la siguiente figura se muestra el resultado sin el argumento max_threshold. Los resultados de salida tienen un conteo de alias.host mayor de cinco.
En la siguiente figura se muestra la acción de regla max_threshold que pone un límite de cinco en la salida. No se enumera ninguna salida que tenga un valor mayor de cinco.
En la siguiente figura se muestra el resultado cuando se aplica la acción de regla max_threshold. Cualquier salida que tenga un valor mayor de cinco se elimina del resultado.
min_threshold (string quantity)
min_threshold elimina los resultados con una cantidad que es menor a la cantidad del umbral mínimo de un conjunto de resultados. Se puede especificar la cantidad en términos de conteo o de tamaño y es relativa a las opciones de orden de la regla principal. Esto significa que si clasifica una regla por tamaño, la acción de la regla espera que especifique el parámetro en bytes (puede agregar KB, MB, GB o TB al parámetro para facilitar la conversión del tamaño).
La regla min_threshold también se puede usar para filtrar valores de acuerdo con los valores de la función de agregado. Use la sintaxis según el tipo de resumen que se utiliza en la regla que se muestra a continuación:
- min_threshold(String quantity): se puede usar para filtrar Conteo de eventos, Conteo de paquetes y Tamaño de sesión.
- min_threshold(String quantity, String field): se puede usar para filtrar valores de agregados personalizados o cualquier metadato.
Ejemplos:
1. min_threshold(200);
En la siguiente se figura muestra un ejemplo de la consulta min_threshold.
En la figura anterior se establece un límite de 200 bytes en la salida. No se enumera ninguna salida que tenga menos de 200 bytes de datos. Se aplica la salida con la acción de regla min_threshold.
Como se muestra, todos los valores son más grandes que 200 bytes.
2. min_threshold(100,count(alias.host));
En la siguiente figura se muestra el resultado sin el argumento min_threshold. Los resultados de salida tienen un conteo de alias.host menor de 100.
En la siguiente figura se muestra la acción de regla min_threshold que establece el límite mínimo de 100 en la salida. No se lista ninguna salida que tenga datos menores de 100.
En la siguiente figura se muestra el resultado cuando se aplica la acción de regla min_threshold. Cualquier salida que tenga datos de menos de 100 se quita del resultado.
regex (string regex, string field)
La acción de regla regex aplica la expresión regular al conjunto de resultados. El siguiente es el formato de la acción de regla regex:
regex(regular_expression, meta_name)
Donde:
- regular_expression: es la expresión regular para igualar el valor de los metadatos.
- meta_name: nombre del campo o de los metadatos donde se debe aplicar regex.
Para ver una lista completa de los patrones de regex compatibles, consulte http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html.
Ejemplo de la acción de regla regex:
Si desea incluir nombres de archivos de todos los formatos de archivo PNG y JPEG de diferentes sesiones, puede escribir una regla con la siguiente acción de regla regex:
regex(".+.(png|jpg)", filename);
En la siguiente se figura muestra la regla.
La salida con la acción de regla regex aplicada se muestra en la siguiente figura:
sum_count()
Calcula el total de los cuantificadores de un conjunto de resultados específico. Por ejemplo, al llamar un sum_count() para una regla que está clasificada por conteos de eventos, se calcula el tamaño total de todos los valores en el conjunto de resultados y se muestra el total implementado del conjunto de resultados.
Ejemplo:
En la siguiente se figura muestra la regla de acción sum_count().
Con la regla de acción sum_count(), la salida muestra el tamaño total de todos los conteos de eventos:
sum_values()
Calcula la cantidad total de valores de un conjunto de resultados específico. Use esta acción para mostrar la cantidad de coincidencias que se encontraron para una regla determinada.
Ejemplo:
En la siguiente figura se muestra la acción de regla sum_values().
En la siguiente figura se muestra el resultado con la acción de regla sum_value:
show_whats_new()
La acción de regla show_whats_new() toma cualquier resultado de un conjunto de resultados y filtra cualquier valor disponible en la base de datos de metadatos de NetWitness antes del marco de tiempo del informe en ejecución. Cuando se ejecuta un informe, Security Analytics determina el ID de la primera sesión en el rango de tiempo del informe. Si un valor en un conjunto de resultados tiene un ID de primera sesión mayor al ID de primera sesión del marco de tiempo del informe, no existía en la base de datos de metadatos de NetWitness antes de que el informe se ejecutara y, por lo tanto, es nueva para el sistema NetWitness relacionado con el marco de tiempo del informe.
La acción de regla show_whats_new() también es compatible con la regla agregada personalizada. Cuando se seleccionan múltiples metadatos en la regla Personalizada, se consideran los primeros para filtrar los valores antiguos. Consulte el ejemplo 2 más adelante para comprender cómo se usa esta acción de regla para la regla agregada personalizada.
Nota: La acción de regla show_whats_new() se puede usar solo con una regla agregada.
Ejemplos:
1. show_whats_new() para una regla agregada con Conteo de eventos
En el siguiente ejemplo se enumeran todas las direcciones IP de origen disponibles durante las últimas dos semanas.
En la siguiente figura se muestra el uso de la acción de regla show_whats_new para mostrar solo las entradas nuevas en las últimas dos semanas.
En la siguiente figura se muestran las entradas nuevas en las últimas dos semanas.
2. show_whats_new() para una regla agregada personalizada
En el siguiente ejemplo se enumeran todas las direcciones IP de origen disponibles durante las últimas dos semanas.
En la siguiente figura se muestra el uso de la acción de regla show_whats_new para mostrar solo las entradas nuevas en las últimas dos semanas.
En la siguiente figura se muestran las entradas nuevas de direcciones IP de origen en las últimas dos semanas.
El poder de esta función es que no importa cuándo se ejecuta el informe en los valores identificados que son nuevos para NetWitness. Preste atención con esta función porque si se restablecen los datos, se perderán. Sin embargo, es fácil establecer un punto de base en un sistema e identificar cambios y nuevos elementos sin una gran cantidad de esfuerzo en el sistema (según el tamaño del conjunto de resultados).
Operadores de reglas compatibles
La sintaxis de regla de origen de datos del Reporting Engine de NWDB es compatible con un subconjunto de operadores de reglas que son compatibles con Security Analytics.
Sintaxis | Descripción |
---|---|
* | Use un asterisco (*) como el único operador de una regla para seleccionar todo el tráfico. |
= | Es igual al operador |
!= | No es igual al operador |
&& | Operador Y lógico |
|| | Operador O lógico |
-u | Límite superior. Por ejemplo, tcp.port = 40000-u selecciona todos los puertos TCP superiores a 40,000. |
-l | Límite inferior. Por ejemplo, tcp.port = I-40000 selecciona todos los puertos TCP inferiores a 40,000. |
- | El operador guion (-) solo se aplica a valores numéricos. Separe los límites inferiores y superiores del rango con un guion (-). Por ejemplo, tcp.port = 25-443 selecciona todos los puertos TCP entre 25 y 443. |