Decoder: Comandos del Decoder para administrar reglas

Document created by RSA Information Design and Development on Apr 23, 2018
Version 1Show Document
  • View in full screen mode
 

En la base de datos de NetWitness Core, el árbol de reglas tiene la funcionalidad principal relacionada con la administración de reglas para todos los servicios de Core que tienen reglas: Concentrators, Decoders, Log Decoders y Archivers. A pesar de que puede administrar reglas en la interfaz del usuario de NetWitness Suite, es probable que los usuarios avanzados prefieran administrar reglas mediante una línea de comandos para agregar, combinar, reemplazar, eliminar y validar reglas en un servicio. Esta sección proporciona una breve descripción general de los comandos y su uso. Estos son los comandos disponibles:

  • add: agrega una sola regla en la posición especificada.
  • clear: elimina todas las reglas existentes en el nodo actual en el servicio. Por ejemplo, el comando en el nodo /decoder/config/rules/application elimina todas las reglas de aplicación existentes en el Decoder.
  • delete: elimina una o más reglas en una posición especificada y el conteo.
  • merge: combina un conjunto de reglas migrado con un conjunto de reglas existente. Se reemplazan las reglas existentes que coinciden con las reglas entrantes (por nombre o regla); de lo contrario, las reglas se insertan según la posición indicada, como se describe en comando Combinar.
  • replace: elimina todas las reglas existentes y las reemplaza con el conjunto de reglas entrantes.
  • validate: valida la sintaxis de una regla, pero no valida las claves de metadatos.

Comando Agregar

El comando add agrega la regla al conjunto de reglas existente. El formato es importante debido a que la API usa comillas dobles en el idioma de la regla y también las usa como parámetros en todas las API RSA NetWitness® Suite. Por lo tanto, debe omitir todas las comillas dobles en la regla, para ello comience con un carácter de barra invertida (\). La sintaxis del comando es la siguiente:

add rule=<string> name=<string> alert=<string, optional> atPos=<<uint32, optional>

  • rule es la regla para agregar. Asegúrese de colocar todas las reglas con un espacio en blanco entre comillas dobles y de omitir con una barra invertida todas las comillas dobles que forman parte de la regla.
  • name es el nombre de la regla.
  • alert es la alerta para la regla (si corresponde).
  • atPos es la posición en la que se debe agregar la regla (con base 1). Cero es la parte superior de la lista y cualquier número mayor que el tamaño actual de la lista se anexa a ella.

Este es un ejemplo del comando para agregar una regla mediante NwConsole
send /decoder/config/rules/application add rule="ip.src exists" order=1 alert=alert.id name=testrule

Por ejemplo, considere la siguiente regla:

alias.host = "myPC" && country.src="china","russian federation"

Para agregar esto como una regla, debe enviar los parámetros siguientes:

rule="alias.host = \"myPC\" && country.src=\"china\",\"russian federation\"" name=myRule filter

Observe cómo se tuvo que omitir todas las comillas dobles dentro del parámetro de la regla. Un truco simple para que esto sea más legible es usar comillas simples dentro de la regla. Las comillas dobles y simples son intercambiables en la regla y el idioma de consulta, pero no en los parámetros de la API (allí solo se admiten comillas dobles). Por lo tanto, esto es más legible:

rule="alias.host = 'myPC' && country.src='china','russian federation'" name=myRule filter

comando Combinar

El comando merge se usa para combinar una lista de reglas entrante con las reglas existentes en el servicio. Así es como funciona:

  • Encuentra las reglas existentes que coinciden mediante el nombre o por medio de una regla de coincidencia, actualiza el nombre de la regla existente y mantiene la misma posición.
  • Inserta las reglas nuevas en la lista de reglas en función de la posición del NÚMERO. Si el número es cero, se dirige a la parte superior de la lista.
  • Procesa las reglas en el orden de recepción de modo que, si tiene dos reglas con la numeración de cero, la segunda regla se procesa después de la primera y se asegura el puesto principal. Todas las reglas existentes bajan dos lugares. Cualquier número mayor que las posiciones de regla existentes se agrega después de la última regla existente y se numera en secuencia.
  • Cualquier regla sin número se agrega después de la última regla existente y se numera en secuencia.

La sintaxis del comando Combinar es la siguiente:

merge --file-data=<string> --file-format<string>

  • file-data es la ruta de acceso completa y el nombre del archivo de reglas para combinar.
  • file-format es el formato del archivo de reglas. Los valores válidos son params-list, string, params, binary y params-binary.

Métodos de envío de una lista de reglas a un servicio

Existen dos maneras para enviar una lista de reglas. Puede enviarlas como un archivo .nwr (regla de NetWitness) o como un conjunto numerado de parámetros, cada número indica la posición para insertar la regla, además de la regla codificada. Si desea ver la lista de reglas actual en un servicio, debe ejecutar el comando ls en la categoría de regla (por ejemplo, las reglas de aplicación en un Decoder se encuentran en /decoder/config/rules/application).

Este es un ejemplo de los comandos para listar las reglas existentes mediante NwConsole:

login <hostname>:50004 <username> <password>

cd /decoder/config/rules/application

ls

Este es otro ejemplo para listar las reglas existentes en NwConsole:

send /decoder/config/rules/application ls

Este es un ejemplo del comando para apuntar a las reglas de red en el puerto RESTful, que admite una aplicación admin HTML básica.

http[s]://<decoder>:50104/decoder/config/rules/network

Enviar un archivo de reglas de NetWitness

Comencemos con un ejemplo del archivo nwr, cada regla debe estar en una línea independiente:

rule="ip.src=192.168.0.1" name=first keep

rule="ip.src=192.168.1.1" name=second alert=risk.info

rule="ip.src=192.168.2.1" name=third filter

Para migrar y combinar reglas mediante NwConsole, use los siguientes comandos:

login <hostname>:50004 <username> <password>

send /decoder/config/rules/application merge --file-data=/root/App_Rules.nwr --file-format=params-list

Para reemplazar las reglas existentes con las reglas en el archivo, en lugar de usar el comando merge, use el comando replace.

send /decoder/config/rules/application replace --file-data=<pathname> --file-format=params-list

Para combinar las reglas en un archivo nwr mediante el puerto RESTful, puede usar un comando curl que migra las reglas:

curl -u "<username>:<password>" -H "Content-Type: application/octet-stream" --data-binary @<pathname> -X POST "http://<hostname>:50104/decoder/config/rules/application?msg=merge"

Los ejemplos tienen relación con la migración de reglas de aplicación. Para migrar reglas de red, envíe las reglas a /decoder/config/rules/network. Para las reglas de correlación, envíe las reglas a /decoder/config/rules/correlation.

Enviar parámetros numerados

La otra manera de enviar una lista de reglas es enviarlas como parámetros numerados. La dificultad de este método es recordar que se deben omitir las comillas dentro de cada regla numerada. Aunque es el único problema si intenta hacerlo manualmente. Por ejemplo, para enviar las mismas reglas anteriores como parámetros a través de NwConsole, use el siguiente comando:

send /decoder/config/rules/application merge 1="rule=\"ip.src=192.168.0.1\" name=first keep" 2="rule=\"ip.src=192.168.1.1\" name=second alert=risk.info" 3="rule=\"ip.src=192.168.2.1\" name=third filter"

Este comando es difícil de leer porque tiene que omitir las comillas internas con una barra invertida (\). De lo contrario, estos dos comandos realizan lo mismo. Combinar o agregar tres reglas en las posiciones 1, 2 y 3. Si piensa que fue difícil leer lo anterior, el comando curl equivalente se ve así:

curl -u "<username>:<password>" "http://<hostname>:50104/decoder/config/rules/application?msg=merge&1=rule%3D%22ip.src%3D192.168.0.1%22%20name%3Dfirst%20keep&2=rule%3D%22ip.src%3D192.168.1.1%22%20name%3Dsecond%20alert%3Drisk.info&3=rule%3D%22ip.src%3D192.168.2.1%22%20name%3Dthird%20filter"

Para obtener más detalles sobre cómo omitir las comillas dobles dentro de los parámetros, consulte Comando Agregar.

Orden de las reglas cuando se migran

Las reglas migradas se ordenan en una de dos maneras. Cuando se pasan como parámetros, el número de cada parámetro determina el orden de inserción. Si no es realmente un número, merge comprueba si hay un parámetro order dentro de la regla y usa ese valor si se encuentra.

Nota: Usar order es la única manera de configurar el orden de un archivo .nwr. Si no se encuentra ni un número ni un parámetro order , no hay ninguna garantía del orden de inserción.

Ejemplo

Un Decoder tiene las siguientes reglas de aplicación instaladas; observe que SIEMPRE la numeración es consecutiva y comienza en 1:

0001 : rule="ip.src = 192.168.0.1 || ip.dst = 192.168.0.1 || alias.host = 'My-PC'" name=first keep

0002 : rule="ip.src=192.168.1.1" name=second alert=risk.info

0003 : rule="ip.src=192.168.2.1" name=third filter

Y desea combinar las cuatro reglas siguientes:

rule="ip.src=192.168.3.1" name=third keep

rule="ip.dst=192.168.4.1" name=NewRule filter order=0

rule="alias.host = 'pc1','pc2'" name=filterTheseNames filter order=append

rule="service=80,443" name=web filter order=3

Use cualquier método para migrar las reglas y el resultado será el siguiente:

0001 : rule="ip.dst=192.168.4.1" name=NewRule filter order=1

0002 : rule="ip.src = 192.168.0.1 || ip.dst = 192.168.0.1 || alias.host = 'My-PC'" name=first keep order=2

0003 : rule="service=80,443" name=web filter order=3

0004 : rule="ip.src=192.168.1.1" name=second alert=risk.info order=4

0005 : rule="ip.src=192.168.3.1" name=third keep order=5

0006 : rule="alias.host = 'pc1','pc2'" name=filterTheseNames filter order=6

¿Hay sorpresas aquí? Así es como se procesó cada regla.

1. rule="ip.src=192.168.3.1" name=third keep

Esta regla tenía el mismo nombre que una regla existente en el Decoder (tercero). Por lo que la regla actualizó la regla existente, changing _filter_ to _keep_.

2. rule="ip.dst=192.168.4.1" name=NewRule filter order=0

Esta regla es nueva y tenía order=0 en ella, lo cual significa que se inserta en la parte superior.

3. rule="alias.host = 'pc1','pc2'" name=filterTheseNames filter order=append

Esta regla tenía un valor no numérico append para order, por lo tanto, quedó al final de la lista. Puede lograr lo mismo con un número grande, como 999999.

Esta regla es la última, pero tiene order=3, por lo tanto, si no coincide con una regla existente por el nombre o el texto de la regla, se debe colocar en la posición 3. Y ahí la tiene, la tercera regla en la lista. Las reglas que seguían se colocaron más abajo.

Comando Reemplazar

El comando replace quita todas las reglas existentes y las reemplaza por la lista de reglas entrantes. Consulte comando Combinar para obtener más información sobre cómo dar formato a la lista de reglas entrantes y cómo funciona el orden.

Este es un ejemplo del comando replace con un archivo de regla de NetWitness:

send /decoder/config/rules/application replace --file-data=/root/Decoder-AppRules.nwr --file-format=string

Este es un ejemplo del comando replace mediante parámetros numerados:

send /decoder/config/rules/application replace 1="rule=\"ip.src exists\" name=\"test rule\" order=1 alert=alert.id"

Comando Borrar

El comando clear quita todas las reglas existentes en el servicio. Este es un ejemplo del comando:

send /decoder/config/rules/application clear

Comando Eliminar

El comando delete elimina una o más reglas en el servicio.

delete atPos <uint32> count <uint32, optional>

  • atPos elimina la regla en la posición especificada. Las reglas se enumeran empezando por 1 y se ordenan en secuencia.
  • count elimina una o más reglas comenzando en atPos. Este es un parámetro opcional que define la cantidad de reglas para eliminar comenzando en atPos. El valor predeterminado es 1.

En este ejemplo del comando se eliminan cuatro reglas comenzando en la posición 0003:

send /decoder/config/rules/application delete atPos=0003 count=4

Comando Validar

El comando validate toma la regla proporcionada y verifica que analiza correctamente. Tenga en cuenta que este comando no puede verificar si las claves de idioma y las entidades son válidas.

validate rule <string>

rule: es el nombre de la regla para validar. Asegúrese de que colocar todas las reglas con un espacio en blanco entre comillas dobles.

You are here
Table of Contents > Configurar reglas de Decoder > Comandos del Decoder para administrar reglas

Attachments

    Outcomes