¿Cómo encontrar un guión responsable con los resultados de ausearch?

¿Cómo encontrar un guión responsable con los resultados de ausearch?

Entonces quería saber qué proceso está creando un directorio ']' en mi raíz. Supuse que se trata de algún error tipográfico en algún guión. Entonces configuré una auditoría para ese directorio, de manera muy similar a como se muestra enEsta pregunta.

Al día siguiente revisé mis registros y descubrí que el directorio se había creado nuevamente y que se había registrado mediante auditoría. Pero todo lo que puedo decir de este resultado es queraízlo creó.

producción:

type=SYSCALL msg=audit(26.04.2013 06:25:20.275:85) : arch=i386 syscall=mkdir success=yes exit=0 a0=bfd02ea5 a1=1ed a2=bfd02ea5 a3=bfd025b8 items=2 ppid=24114 pid=24115 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=4294967295 comm=mkdir exe=/bin/mkdir key=weird 

Dividido en líneas:

type=SYSCALL 
msg=audit(26.04.2013 06:25:20.275:85) : 
arch=i386 
syscall=mkdir 
success=yes 
exit=0 a0=bfd02ea5 
a1=1ed a2=bfd02ea5 a3=bfd025b8 
items=2 ppid=24114 pid=24115 
auid=unset 
uid=root 
gid=root 
euid=root 
suid=root 
fsuid=root 
egid=root 
sgid=root 
fsgid=root 
tty=(none) 
ses=4294967295 
comm=mkdir 
exe=/bin/mkdir 
key=weird 

Me gustaría saber qué script emite este comando como root. ¿Es eso posible? El proceso que utiliza ese PPID ya no se está ejecutando.

Respuesta1

Suponiendo que esto se debe a un script iniciado por cron, podría rastrear todos los elementos secundarios de crond:

strace -p $CRONPID -f -o /path/to/cron-strace.log -e trace=mkdir

Esto debería conducir a un resultado como este:

Process 3584 attached
Process 18227 attached
[pid 18227] execve("./testscript", ["./testscript"], [/* 100 vars */]) = 0
Process 18228 attached
[pid 18228] execve("/usr/bin/mkdir", ["mkdir", "/home/hl/tmp/strace-testdir"], ...) = 0
[pid 18228] mkdir("/home/hl/tmp/strace-testdir", 0777) = 0

strace ralentiza la ejecución del script, por supuesto, pero normalmente eso no debería ser un problema.

Respuesta2

Sólo a partir de este resultado, no se puede determinar qué programa llamó el mkdircomando.

Si usted tienecontabilidad de procesos BSD, el siguiente comando muestra qué programa tenía PID 24114:

dump-acct /var/log/account/pacct | awk -F '|' '$10 ~ / 24114 / {print}'

Esto es probable sh. La columna 10 (como |separador) contiene el PID del proceso registrado seguido de su PPID, así que repita la búsqueda con el PPID para ver qué programa invocó shy así sucesivamente. También podrá saber a qué hora comenzó el proceso, lo que puede ayudar a determinar qué trabajo cron fue.

Solo con auditd, necesita registrar no solo la mkdirllamada sino todos los accesos a ese directorio, para registrar los comandos que cambian al directorio o acceden a los archivos en él. Si se crea el directorio pero nada más accede a él, no creo que auditd por sí solo sea suficiente para resolver esto.

información relacionada