modified rules to use newer format
This commit is contained in:
@@ -1,89 +1,71 @@
|
|||||||
## auditd rules: detección LOLBin ransomware
|
## auditd rules: detección LOLBin ransomware (formato nuevo, sin -w legacy)
|
||||||
## Cubre los tres estilos: noxargs_ransom, xargs_ransom, tarbulk
|
## Cubre: noxargs_ransom, xargs_ransom, tarbulk
|
||||||
## Instalar: cp auditd_rules.rules /etc/audit/rules.d/lolbin-ransom.rules && augenrules --load
|
## Instalar: cp auditd_rules.rules /etc/audit/rules.d/lolbin-ransom.rules && augenrules --load
|
||||||
##
|
##
|
||||||
## Correlación post-evento:
|
## Correlación post-evento:
|
||||||
## ausearch -k crypto_exec --start today | aureport -x --summary
|
## ausearch -k crypto_exec --start today | aureport -x --summary
|
||||||
## ausearch -k mass_unlink --start today | wc -l # >100 en segundos = alerta
|
## ausearch -k mass_unlink --start today | wc -l # >500 en <10s = tarbulk
|
||||||
## ausearch -k bash_tcp --start today
|
## ausearch -k bash_tcp --start today -i
|
||||||
## ==========================================================================
|
## ==========================================================================
|
||||||
|
|
||||||
## --------------------------------------------------------------------------
|
## --------------------------------------------------------------------------
|
||||||
## COMUN A LOS TRES ESTILOS
|
## COMUN A LOS TRES ESTILOS
|
||||||
## --------------------------------------------------------------------------
|
## --------------------------------------------------------------------------
|
||||||
|
|
||||||
## Reconocimiento: find barriendo todo el sistema en busca de archivos objetivo.
|
## Reconocimiento: find / -type f -writable
|
||||||
## Los tres ransom arrancan con find / -type f -writable.
|
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/find -k lolbin_recon
|
||||||
-w /usr/bin/find -p x -k lolbin_recon
|
-a always,exit -F arch=b32 -S execve -F exe=/usr/bin/find -k lolbin_recon
|
||||||
|
|
||||||
## Generación de clave: openssl rand -hex 32 — precede al cifrado en los tres.
|
## openssl: generación de clave (rand) y cifrado (enc). Ambos usos relevantes.
|
||||||
## También captura openssl enc (el cifrado en sí) como parte del mismo keyname.
|
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/openssl -k crypto_exec
|
||||||
-w /usr/bin/openssl -p x -k crypto_exec
|
-a always,exit -F arch=b32 -S execve -F exe=/usr/bin/openssl -k crypto_exec
|
||||||
|
|
||||||
## Escritura en /tmp: .key (noxargs/xargs), .vault.enc (tarbulk), .targets (recon).
|
## Escritura en /tmp: .key, .vault.enc, .targets
|
||||||
-w /tmp -p wa -k tmp_staging
|
-a always,exit -F arch=b64 -S open,openat,creat -F dir=/tmp -F success=1 -k tmp_staging
|
||||||
|
-a always,exit -F arch=b32 -S open,openat,creat -F dir=/tmp -F success=1 -k tmp_staging
|
||||||
|
|
||||||
## --------------------------------------------------------------------------
|
## --------------------------------------------------------------------------
|
||||||
## NOXARGS_RANSOM + XARGS_RANSOM
|
## NOXARGS_RANSOM + XARGS_RANSOM
|
||||||
## openssl enc por archivo + shred -u por archivo
|
## Señal: miles de EXECVE de openssl y shred en minutos
|
||||||
## Señal: muchos EXECVE de openssl y shred en poco tiempo
|
|
||||||
## --------------------------------------------------------------------------
|
## --------------------------------------------------------------------------
|
||||||
|
|
||||||
## shred: destrucción segura de originales, archivo por archivo.
|
## shred -u por archivo. noxargs: secuencial. xargs: hasta 36 concurrentes.
|
||||||
## noxargs: secuencial, ~4 arch/s. xargs: paralelo, ~30 arch/s (36 workers).
|
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/shred -k shred_exec
|
||||||
## En ambos casos: miles de EXECVE de shred en minutos.
|
-a always,exit -F arch=b32 -S execve -F exe=/usr/bin/shred -k shred_exec
|
||||||
-w /usr/bin/shred -p x -k shred_exec
|
|
||||||
|
|
||||||
## xargs: el multiplicador. Con -P 36 genera 36 workers concurrentes.
|
## xargs con -P alto: el multiplicador de paralelismo
|
||||||
## Ver xargs ejecutado por bash con -P alto es señal de paralelización maliciosa.
|
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/xargs -k xargs_exec
|
||||||
-w /usr/bin/xargs -p x -k xargs_exec
|
-a always,exit -F arch=b32 -S execve -F exe=/usr/bin/xargs -k xargs_exec
|
||||||
|
|
||||||
## Persistencia: crontab re-cifra archivos nuevos cada 5 minutos.
|
## Persistencia via crontab (re-cifra archivos nuevos cada 5 min)
|
||||||
## Solo en noxargs/xargs_ransom (no implementado en tarbulk).
|
-a always,exit -F arch=b64 -S open,openat,creat,rename,unlink -F dir=/var/spool/cron -F success=1 -k crontab_mod
|
||||||
-w /var/spool/cron -p wa -k crontab_mod
|
-a always,exit -F arch=b32 -S open,openat,creat,rename,unlink -F dir=/var/spool/cron -F success=1 -k crontab_mod
|
||||||
-w /etc/cron.d -p wa -k crontab_mod
|
-a always,exit -F arch=b64 -S open,openat,creat,rename,unlink -F dir=/etc/cron.d -F success=1 -k crontab_mod
|
||||||
|
-a always,exit -F arch=b32 -S open,openat,creat,rename,unlink -F dir=/etc/cron.d -F success=1 -k crontab_mod
|
||||||
|
|
||||||
## curl: exfiltración de clave en noxargs y xargs.
|
## curl: exfiltración de clave en noxargs y xargs
|
||||||
## tarbulk usa /dev/tcp (ver regla connect más abajo).
|
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/curl -k key_exfil_curl
|
||||||
-w /usr/bin/curl -p x -k key_exfil_curl
|
-a always,exit -F arch=b32 -S execve -F exe=/usr/bin/curl -k key_exfil_curl
|
||||||
|
|
||||||
## --------------------------------------------------------------------------
|
## --------------------------------------------------------------------------
|
||||||
## TARBULK
|
## TARBULK
|
||||||
## tar | openssl (un proceso cada uno) + rm -f masivo + /dev/tcp
|
## Señal: UN solo openssl, storm de unlink, connect() desde bash
|
||||||
## Señal: NO hay spike de openssl/shred, pero sí storm de unlink y connect desde bash
|
|
||||||
## --------------------------------------------------------------------------
|
## --------------------------------------------------------------------------
|
||||||
|
|
||||||
## tar con salida a stdout (-czf -): staging para el pipe a openssl.
|
## tar -czf - (stdout): staging para el pipe a openssl
|
||||||
## tar legítimo raramente escribe a stdout; cuando lo hace, suele ser backup a red.
|
-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/tar -k tar_exec
|
||||||
-w /usr/bin/tar -p x -k tar_exec
|
-a always,exit -F arch=b32 -S execve -F exe=/usr/bin/tar -k tar_exec
|
||||||
|
|
||||||
## unlink/unlinkat: rm -f masivo sobre 3470 archivos tras el cifrado.
|
## unlink/unlinkat masivo: rm -f sobre 3470 archivos tras el cifrado.
|
||||||
## tarbulk no usa shred: borra con rm. Esta regla se dispara una vez por archivo.
|
## Esta regla dispara una vez por archivo. El volumen es la alerta.
|
||||||
## El VOLUMEN es la alerta: 3470 eventos en <5 segundos en ausearch.
|
-a always,exit -F arch=b64 -S unlink,unlinkat -F auid>=1000 -k mass_unlink
|
||||||
-a always,exit -F arch=b64 -S unlink -S unlinkat -F auid>=1000 -k mass_unlink
|
-a always,exit -F arch=b32 -S unlink,unlinkat -F auid>=1000 -k mass_unlink
|
||||||
-a always,exit -F arch=b64 -S unlink -S unlinkat -F uid=0 -k mass_unlink
|
-a always,exit -F arch=b64 -S unlink,unlinkat -F uid=0 -k mass_unlink
|
||||||
|
-a always,exit -F arch=b32 -S unlink,unlinkat -F uid=0 -k mass_unlink
|
||||||
|
|
||||||
## connect() desde bash: exfiltración via /dev/tcp sin curl ni wget.
|
## connect() desde bash: exfiltración via /dev/tcp sin curl ni wget.
|
||||||
## bash no debería abrir sockets TCP. Alta fidelidad, pocos falsos positivos.
|
## Alta fidelidad: bash no debería abrir sockets TCP directamente.
|
||||||
## Visible en /proc/<pid>/fd como socket:[inode] cuando el proceso sigue vivo.
|
|
||||||
-a always,exit -F arch=b64 -S connect -F exe=/usr/bin/bash -k bash_tcp
|
-a always,exit -F arch=b64 -S connect -F exe=/usr/bin/bash -k bash_tcp
|
||||||
|
-a always,exit -F arch=b32 -S connect -F exe=/usr/bin/bash -k bash_tcp
|
||||||
-a always,exit -F arch=b64 -S connect -F exe=/bin/bash -k bash_tcp
|
-a always,exit -F arch=b64 -S connect -F exe=/bin/bash -k bash_tcp
|
||||||
|
-a always,exit -F arch=b32 -S connect -F exe=/bin/bash -k bash_tcp
|
||||||
## --------------------------------------------------------------------------
|
|
||||||
## CORRELACION SUGERIDA (no son reglas auditd, son comandos de análisis)
|
|
||||||
##
|
|
||||||
## Detectar noxargs/xargs por volumen de crypto_exec:
|
|
||||||
## ausearch -k crypto_exec -ts today | grep -c EXECVE
|
|
||||||
## # >100 invocaciones de openssl en minutos = cifrado masivo
|
|
||||||
##
|
|
||||||
## Detectar tarbulk por storm de unlink:
|
|
||||||
## ausearch -k mass_unlink -ts today | grep -c SYSCALL
|
|
||||||
## # >500 unlinks en <10 segundos = fase de destrucción tarbulk
|
|
||||||
##
|
|
||||||
## Detectar exfiltración /dev/tcp:
|
|
||||||
## ausearch -k bash_tcp -ts today -i
|
|
||||||
## # Ver a4 (puerto destino) y a2 (familia AF_INET=2)
|
|
||||||
##
|
|
||||||
## Correlación de cadena completa (cualquier estilo):
|
|
||||||
## ausearch -k lolbin_recon -k crypto_exec -k mass_unlink --start today
|
|
||||||
## --------------------------------------------------------------------------
|
|
||||||
|
|||||||
Reference in New Issue
Block a user