Inicio Linux & Systems Networks & Infrastructure Cybersecurity Cloud & DevOps SIEM & Monitoring DFIR & Threat Intel Development & Other Todas las categorias Herramientas

Integrar auditd con Wazuh

Integrar auditd con Wazuh

Tabla de contenidos

Auditd Se encarga de realizar un seguimiento de todo lo que va sucediendo en nuestro sistema GNU/Linux, en el cual va recopilando eventos sobre reglas pre-configuradas. 

En esta entrada veremos como integrar Auditd con wazuh para así poder generar ciertas alertas. 

Para ello, lo primero que tenemos que hacer es la instalación y configuración de Auditd en nuestro entorno. 

RedHat

BASH
yum install audit

Debian

BASH
apt install auditd 

Suse

CODE
zypper install audit

Agregamos las reglas en /etc/audit/rules.d/audit.rules.

Cualquiera de estas reglas pueden ser modificadas para adaptarlas a nuestras necesidades, En este caso esta configuración está realizada bajo un servidor Debian

SQL
## First rule - delete all
-D

## Increase the buffers to survive stress events.
## Make this bigger for busy systems
-b 8192

## This determine how long to wait in burst of events
--backlog_wait_time 0

## Set failure mode to syslog
-f 1

################## Ignorar Registros ##################

## Ignorar registros de SELinux AVC

-a always,exclude -F msgtype=AVC

## Ignorar registros del area de trabajo
-a always,exclude -F msgtype=CWD

## Ignoar archivos EOE Ignore 

-a always,exclude -F msgtype=EOE

## Ignorar registros cron 

-a never,user -F subj_type=crond_t
-a exit,never -F subj_type=crond_t
-a exit,never -F subj_type=cron

## Ignorar registros de CRYPTO_KEY_USER

-a always,exclude -F msgtype=CRYPTO_KEY_USER
-a never,user -F subj_type=du
-a never,user -F subj_type=df



################## Controlar cambios de archivos ##################


## Parametros del kernel
-w /etc/sysctl.conf -p wa -k audit-wazuh-w

##Archivos especiales 

#-a exit,always -F arch=b32 -S mknod -S mknodat -k audit-wazuh-x
#-a exit,always -F arch=b64 -S mknod -S mknodat -k audit-wazuh-x

##Contrab

-w /etc/cron.allow -p wa -k audit-wazuh-w
-w /etc/cron.deny -p wa -k audit-wazuh-w
-w /etc/cron.d/ -p wa -k audit-wazuh-w
-w /etc/cron.daily/ -p wa -k audit-wazuh-w
-w /etc/cron.hourly/ -p wa -k audit-wazuh-w
-w /etc/cron.monthly/ -p wa -k audit-wazuh-w
-w /etc/cron.weekly/ -p wa -k audit-wazuh-w
-w /etc/crontab -p wa -k audit-wazuh-w
-w /var/spool/cron/crontabs/ -k audit-wazuh-w

##Usuario y grupos

-w /etc/group -p wa -k audit-wazuh-w
-w /etc/passwd -p wa -k audit-wazuh-w
-w /etc/gshadow -k audit-wazuh-w
-w /etc/shadow -k audit-wazuh-w
-w /etc/security/opasswd -k audit-wazuh-w

##Sudoers

-w /etc/sudoers -p wa -k audit-wazuh-w

##hosts
-w /etc/hosts -p wa -k audit-wazuh-w

##fstab
-w /etc/fstab -p wa -k audit-wazuh-w

## Configuración de pam

-w /etc/pam.d/ -p wa -k audit-wazuh-w
-w /etc/security/limits.conf -p wa  -k audit-wazuh-w
-w /etc/security/pam_env.conf -p wa -k audit-wazuh-w
-w /etc/security/namespace.conf -p wa -k audit-wazuh-w
-w /etc/security/namespace.init -p wa -k audit-wazuh-w

## Configuracuón de SSH

-w /etc/ssh/sshd_config -k audit-wazuh-w

################## Ejecución de comandos ##################

##Tuneles, rdesktop o sniffing
-w /usr/sbin/tcpdump -p x -k audit-wazuh-c
-w /usr/bin/nc -p x -k audit-wazuh-c
-w /bin/netcat -p x -k audit-wazuh-c
-w /usr/bin/ncat -p x -k audit-wazuh-c
-w /usr/bin/ssh -p x -k audit-wazuh-c
-w /usr/bin/socat -p x -k audit-wazuh-c
-w /usr/bin/wireshark -p x -k audit-wazuh-c
-w /usr/bin/rawshark -p x -k audit-wazuh-c
-w /usr/bin/rdesktop -p x -k audit-wazuh-c
-w /usr/bin/nmap -p x -k audit-wazuh-c

##Otros comandos interesantes

-w /usr/bin/wget -p x -k audit-wazuh-c
-w /usr/bin/curl -p x -k audit-wazuh-c
-w /usr/bin/base64 -p x -k audit-wazuh-c

##Elevar privilegios

-w /usr/sbin/useradd -p x -k audit-wazuh-c
-w /bin/su -p x -k audit-wazuh-c
-w /usr/bin/sudo -p x -k audit-wazuh-c

##Detectar el uso abusivo de root 

-a always,exit -F dir=/home -F uid=0 -F auid>=1000 -F auid!=4294967295 -C auid!=obj_uid -k  audit-wazuh-x

##Apagar servidor

-w /sbin/shutdown -p x -k audit-wazuh-c
-w /sbin/poweroff -p x -k audit-wazuh-c
-w /sbin/reboot -p x -k audit-wazuh-c
-w /sbin/halt -p x -k audit-wazuh-c



################## Injeccion de codigo con ptrace ##################

-a always,exit -F arch=b32 -S ptrace -k audit-wazuh-x
-a always,exit -F arch=b64 -S ptrace -k audit-wazuh-x
-a always,exit -F arch=b32 -S ptrace -F a0=0x4 -k audit-wazuh-x
-a always,exit -F arch=b64 -S ptrace -F a0=0x4 -k audit-wazuh-x
-a always,exit -F arch=b32 -S ptrace -F a0=0x5 -k audit-wazuh-x
-a always,exit -F arch=b64 -S ptrace -F a0=0x5 -k audit-wazuh-x
-a always,exit -F arch=b32 -S ptrace -F a0=0x6 -k audit-wazuh-x
-a always,exit -F arch=b64 -S ptrace -F a0=0x6 -k audit-wazuh-x


################## Instalacion de software ##################

# DEB (Debian)
-w /usr/bin/dpkg -p x -k audit-wazuh-c
-w /usr/bin/apt -p x -k audit-wazuh-c
CODE
 Tras guardar el archivo de configuración de las reglas, activamos Auditd 
CODE
systemctl enable auditd
systemctl start auditd
auditctl -R /etc/audit/rules.d/audit.rules
CODE
En Wazuh Agent debemos indicar que nos envié los logs de Auditd, para ello agregamos las siguientes lineas en: /var/ossec/etc/ossec.conf y reiniciamos el agente
CODE
<localfile>
    <location>/var/log/audit/audit.log</location>
    <log_format>audit</log_format>
</localfile>

Reinicamos el agente

CODE
systemctl restart wazuh-agent

Ahora nos tenemos que ir al servidor donde tenemos el rol de Wazuh Manager y configuramos la siguiente lista de patrones

CODE
 /var/ossec/etc/lists/audit-keys
audit-wazuh-w:write
audit-wazuh-r:read
audit-wazuh-a:attribute
audit-wazuh-x:execute
audit-wazuh-c:command

De la misma forma, si queremos realizar algún tipo de regla extra la podemos realizar en: /var/ossec/etc/rules/local_rules.xml

En mi caso he realizado una alerta para poder identificar la modificación  de los archivos shadow y passwd (La cual ya existe pero con un nivel muy bajo)

CODE
<group name="auditd,">
    <rule id="221000" level="0">
     <if_sid>80781</if_sid>
     <field name="audit.file.name">/etc/shadow|shadow|passwd|/etc/passwd</field>
      <description>Ignoring check</description>
      <group>audit_watch_write,</group>
   </rule>


  <rule id="221002" level="12">
    <if_sid>221000</if_sid>
     <list field="data.audit.exe" lookup="match_key">etc/lists/editor-programs</list>
    <description>User auid $(audit.auid) Watch - Write access: $(audit.file.name). Exe: $(audit.exe)</description>
    <group>audit_watch_write,</group>
  </rule>


  </group>

Reiniciamos el servicio de Wazuh Manager

CODE
systemctl status wazuh-manager

Ahora nos vamos a la consola de Wazuh Manager > Agent > Seleccionamos el agente > System Auditing

Integrar auditd con Wazuh

:wq!

Comentarios