diff --git a/QueComanTierra/detection/auditd_rules.rules b/QueComanTierra/detection/auditd_rules.rules new file mode 100644 index 0000000..2e719b1 --- /dev/null +++ b/QueComanTierra/detection/auditd_rules.rules @@ -0,0 +1,89 @@ +## auditd rules: detección LOLBin ransomware +## Cubre los tres estilos: noxargs_ransom, xargs_ransom, tarbulk +## Instalar: cp auditd_rules.rules /etc/audit/rules.d/lolbin-ransom.rules && augenrules --load +## +## Correlación post-evento: +## ausearch -k crypto_exec --start today | aureport -x --summary +## ausearch -k mass_unlink --start today | wc -l # >100 en segundos = alerta +## ausearch -k bash_tcp --start today +## ========================================================================== + +## -------------------------------------------------------------------------- +## COMUN A LOS TRES ESTILOS +## -------------------------------------------------------------------------- + +## Reconocimiento: find barriendo todo el sistema en busca de archivos objetivo. +## Los tres ransom arrancan con find / -type f -writable. +-w /usr/bin/find -p x -k lolbin_recon + +## Generación de clave: openssl rand -hex 32 — precede al cifrado en los tres. +## También captura openssl enc (el cifrado en sí) como parte del mismo keyname. +-w /usr/bin/openssl -p x -k crypto_exec + +## Escritura en /tmp: .key (noxargs/xargs), .vault.enc (tarbulk), .targets (recon). +-w /tmp -p wa -k tmp_staging + +## -------------------------------------------------------------------------- +## NOXARGS_RANSOM + XARGS_RANSOM +## openssl enc por archivo + shred -u por archivo +## Señal: muchos EXECVE de openssl y shred en poco tiempo +## -------------------------------------------------------------------------- + +## shred: destrucción segura de originales, archivo por archivo. +## noxargs: secuencial, ~4 arch/s. xargs: paralelo, ~30 arch/s (36 workers). +## En ambos casos: miles de EXECVE de shred en minutos. +-w /usr/bin/shred -p x -k shred_exec + +## xargs: el multiplicador. Con -P 36 genera 36 workers concurrentes. +## Ver xargs ejecutado por bash con -P alto es señal de paralelización maliciosa. +-w /usr/bin/xargs -p x -k xargs_exec + +## Persistencia: crontab re-cifra archivos nuevos cada 5 minutos. +## Solo en noxargs/xargs_ransom (no implementado en tarbulk). +-w /var/spool/cron -p wa -k crontab_mod +-w /etc/cron.d -p wa -k crontab_mod + +## curl: exfiltración de clave en noxargs y xargs. +## tarbulk usa /dev/tcp (ver regla connect más abajo). +-w /usr/bin/curl -p x -k key_exfil_curl + +## -------------------------------------------------------------------------- +## TARBULK +## tar | openssl (un proceso cada uno) + rm -f masivo + /dev/tcp +## 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 legítimo raramente escribe a stdout; cuando lo hace, suele ser backup a red. +-w /usr/bin/tar -p x -k tar_exec + +## unlink/unlinkat: rm -f masivo sobre 3470 archivos tras el cifrado. +## tarbulk no usa shred: borra con rm. Esta regla se dispara una vez por archivo. +## El VOLUMEN es la alerta: 3470 eventos en <5 segundos en ausearch. +-a always,exit -F arch=b64 -S unlink -S unlinkat -F auid>=1000 -k mass_unlink +-a always,exit -F arch=b64 -S unlink -S unlinkat -F uid=0 -k mass_unlink + +## connect() desde bash: exfiltración via /dev/tcp sin curl ni wget. +## bash no debería abrir sockets TCP. Alta fidelidad, pocos falsos positivos. +## Visible en /proc//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=/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 +## -------------------------------------------------------------------------- diff --git a/QueComanTierra/slides/slides.pptx b/QueComanTierra/slides/slides.pptx index 9a5748f..4eb8adb 100644 Binary files a/QueComanTierra/slides/slides.pptx and b/QueComanTierra/slides/slides.pptx differ