English version



Para que el agente de OSSIM pueda interpretar y estandarizar la información que un determinado dispositivo le envía es necesario que disponga de un Plugin enfocado en ese dispositivo. Un plugin básicamente consiste en una serie de expresiones regulares y una lista que permite identificar de forma inequívoca el tipo de evento producido. Una vez se obtiene la información estandarizada se pasa a otras funciones del agente para ser enviada al server de OSSIM en forma de eventos.


OSSIM considera dos tipos de plugins, detectores y monitores. Los detectores leen los logs que se almacenan de un determinado dispositivo y los estandarizan para que el agente pueda enviarlos al servidor de OSSIM. Los monitores reciben indicaciones del servidor de OSSIM y analizan de forma activa los dispositivos.


Según lo anterior, el plugin de Vyatta será de tipo detector.


Antes de enfrentar la creación de un plugin detector hay que tener claro el flujo de funcionamiento:


  • El dispositivo genera un evento.
  • Mediante syslog lo envía al agente de OSSIM.
  • Rsyslog recibe el evento por el puerto 514 UDP (por defecto).
  • Según las reglas con las que está configurado rsyslog enviará el evento a un archivo de logs u otro. (/etc/rsyslog.conf y /etc/rsyslog.d/)
  • El plugin de dicho dispositivo leerá los eventos recogidos en el archivo de logs correspondiente (especificado con la variable “locate” en el archivo .cfg del plugin).
  • Cada evento en el archivo de logs será normalizado según las reglas del plugin.
  • Cada evento normalizado será enviado al servidor de OSSIM con sus correspondientes plugin_id y plugin_sid asignados por el plugin.



Para registrar en OSSIM el nuevo plugin para Vyatta los pasos a seguir son:

  1. Configurar Vyatta para enviar logs al agente de OSSIM por syslog:

    root@R1# set system syslog host 10.0.0.5 facility protocols level debug
    [edit]
    root@R1# set system syslog host 10.0.0.5 facility all level notice
    [edit]
    root@R1# commit
    Reloading system log daemon....
    [edit]

    Con esto Vyatta enviará los eventos de syslog configurados al servidor 10.0.0.5 por el puerto 514.



  2. Comprobar en el agente de OSSIM que el archivo /etc/rsyslog.conf contiene:

    $ModLoad imudp
    $UDPServerRun 514
    $ModLoad imtcp
    $InputTCPServerRun 514


  3. En el mismo archivo de configuración de rsyslog añadimos la siguiente regla, para que todo lo que llegue desde la IP 10.0.0.20 se loguee en el fichero de logs que especifiquemos:

    ...
    ...
    :fromhost, isequal, "10.0.0.20" /var/log/vyatta/vyatta.log
    :fromhost, isequal, "10.0.0.20" ~
    ...
    ...


  4. Reiniciamos rsyslog:

    OSSIM:~# /etc/init.d/rsyslog restart
     * Stopping enhanced syslogd rsyslogd                                    [ OK ]
     * Starting enhanced syslogd rsyslogd                                    [ OK ]
    OSSIM:~#


  5. Comprobar que se ha creado el nuevo archivo de logs para Vyatta (/var/log/vyatta/vyatta.log) y que las nuevas entradas de eventos que Vyatta envía al agente de OSSIM se están escribiendo en el nuevo archivo de logs:

    OSSIM:~# tail -f /var/log/vyatta/vyatta.log
    Feb 10 17:29:35 10.0.0.20 kernel: [30442.030652] [LANin-10-R] IN=eth0 OUT=eth1 SRC=10.0.0.16 DST=74.125.230.82 LEN=60 TOS=0x00 PREC=0x00 TTL=127 ID=3591 PROTO=ICMP TYPE=8 CODE=0 ID=512 SEQ=3072
    Feb 10 17:29:37 10.0.0.20 kernel: [30443.787059] [LANin-10-R] IN=eth0 OUT=eth1 SRC=10.0.0.16 DST=217.12.10.62 LEN=48 TOS=0x00 PREC=0x00 TTL=127 ID=3635 DF PROTO=TCP SPT=2160 DPT=995 WINDOW=25200 RES=0x00 SYN URGP=0


  6. Descargamos el fichero vyatta.cfg del nuevo plugin de Vyatta y lo introducimos en el agente de OSSIM en la ruta /etc/ossim/agent/plugin/vyatta.cfg

    • El plugin lo podemos descargar desde su página y guardarlo después en la ruta /etc/ossim/agent/plugin/ del agente de OSSIM.


    • O directamente desde OSSIM con los siguientes comandos:

      OSSIM:~# cd /tmp
      OSSIM:/tmp# wget http://www.openredes.com/wp-content/files/vx.xx/vyatta.cfg
      OSSIM:/tmp# mv vyatta.cfg /etc/ossim/agent/plugins/vyatta.cfg



      Nota: Cambiar vx.xx por la Última versión

  7. Registramos y activamos el nuevo plugin en el agente de OSSIM introduciendo la siguiente línea dentro de la declaración de los plugins en el archivo de configuración del agente /etc/ossim/agent/config.cfg:

    [plugins]
    ...
    ...
    vyatta=/etc/ossim/agent/plugins/vyatta.cfg
    ...
    ...


  8. Descargamos el fichero vyatta.sql del nuevo plugin de Vyatta y lo introducimos en el agente de OSSIM en la ruta /usr/share/doc/ossim-mysql/contrib/plugins/vyatta.sql:

    • El plugin lo podemos descargar desde su página y guardarlo después en la ruta /usr/share/doc/ossim-mysql/contrib/plugins/.


    • O directamente desde OSSIM con los siguientes comandos:

      OSSIM:~# wget http://www.openredes.com/wp-content/files/vx.xx/vyatta.sql
      OSSIM:~# mv vyatta.sql /usr/share/doc/ossim-mysql/contrib/plugins/vyatta.sql


  9. Guardamos los cambios en la base de datos del servidor de OSSIM con el comando:



    OSSIM:~# cat /usr/share/doc/ossim-mysql/contrib/plugins/vyatta.sql | ossim-db


  10. Comprobamos que el plugin ha sido correctamente registrado desde Configuration -> Collection:


  11. Hacemos clic en el ID del nuevo plugin para ver los plugin_sids correctamente cargados:


  12. Reiniciamos el servidor de OSSIM:

    OSSIM:~# /etc/init.d/ossim-server restart


  13. Reiniciamos el agente de OSSIM:

    OSSIM:~# /etc/init.d/ossim-agent restart


  14. Reiniciamos rsyslog:

    OSSIM:~# /etc/init.d/rsyslog restart




A partir de este momento estaremos recibiendo en OSSIM todos los eventos reflejados en el plugin que Vyatta le envíe al agente de OSSIM.


Nota: Los valores de prioridad y fiabilidad de cada tipo de evento se han dejado a 1 por lo que tendríamos que modificarlos según nuestras necesidades. Esto lo podemos hacer en el archivo vyatta.sql antes de cargarlo o una vez cargado el plugin desde Configuration -> Collection y haciendo clic en el plugin_id del plugin de Vyatta, donde podremos ver y modificar todos los tipos de eventos reflejados en el plugin y los valores de prioridad y fiabilidad asignado a cada uno de ellos.



Referencias:


Plugin de Vyatta para el agente de OSSIM by openredes.

Guía de actualización del plugin.

Guía de testeo del plugin.


Fuente:

Alienvault Plugin tutorial

Documentación rsyslog