Integración Wazuh con Lynis en FreeBSD

Siguiendo con las entradas de la implementación de un SIRP (http://red-orbita.com/?p=8726) Ahora vamos a integrar Lynis con Wazuh dado que por desgracia aun no tenemos open-scap en FreeBSD

Primero debemos instalar lynis

pkg install lynis

Configuramos en ossec script que ejecutaremos

<wodle name="command">
  <disabled>no</disabled>
  <tag>Audit</tag>
  <command>/bin/sh /var/ossec/wodles/command/check-audit.sh</command>
  <interval>1d</interval>
  <ignore_output>no</ignore_output>
  <run_on_start>yes</run_on_start>
  <timeout>1800</timeout>
</wodle>

Creamos la carpeta

mkdir -p /var/ossec/wodles/command/

Probablemente esto se podría realizar mejor mediante decoders, para en futuras versiones intentaré realizar un decoder. Dentro del script tenemos el siguiente comando:

cat /var/ossec/bin/check-audit.sh
lynis --pentest --no-colors | sed -n '/Results ]-/,/Suggestions/p' | grep -v "Results ]-" | sed 's/\!/Lynis:/g' | grep Lynis

Reiniciamos el servicio

/var/ossec/bin/ossec-control restart

Ahora nos vamos a wazuh y agregamos las reglas en /var/ossec/etc/rules/local_rules.xml

<group name="lynis,">

<rule id="100080" level="7">
  <match>Lynis</match>
  <description>Lynis Results</description>
  <group>process_monitor,pci_dss_10.6.1, pci_dss_2.2,</group>
</rule>
</group>

Reiniciamos el servicio de wazuh manager

/etc/init.d/wazuh-manager restart

Nos vamos a Kibana y comprobamos que haya generado las alertas

Ahora nos vamos al servidor donde se encuentra elastalert y generamos la siguiente regla

es_host: localhost
es_port: 9200
name: Security audit with Lynis
type: any
index: wazuh-alerts-3.x-*
num_events: 60
timeframe:
    hours: 1
realert: 
    minutes: 0
filter:
- term:
    rule.id: "100080"
alert: hivealerter
hive_connection:
  hive_host: http://ip_thehive
  hive_port: 9000
  hive_apikey: <Paste API key for elastalert user here>

hive_alert_config:
  title: '{rule[name]}'
  type: 'external'
  source: 'elastalert'
  description: '{match[full_log]}'
  severity: 2
  tags: ['{rule[name]}', '{match[agent][name]}', 'Lynis', '{match[rule][groups]}', '{match[_id]}']
  tlp: 3
  status: 'New'
  follow: True

hive_observable_data_mapping:
    - ip: "{match[src_ip]}"

Reiniciamos el servicio

systemctl status elastalert

Ahora nos vamos a Thehive y comprobamos que nos haya generado una alerta

:wq!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*