Como encontrar o script responsável com os resultados do Ausearch?

Como encontrar o script responsável com os resultados do Ausearch?

Então eu queria saber qual processo está criando um diretório ']' na minha raiz. Eu estava assumindo que isso era algum erro de digitação em algum script. Então configurei uma auditoria para esse diretório, de forma muito semelhante à mostrada emEssa questão.

No dia seguinte, verifiquei meus logs e descobri que o diretório foi criado novamente e registrado por auditoria. Mas tudo o que posso dizer a partir desta saída é queraizcriou.

saída:

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 em linhas:

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 

Gostaria de saber qual script emite este comando como root. Isso é possível? O processo que usa esse PPID não está mais em execução.

Responder1

Supondo que isso seja causado por um script iniciado pelo cron, você poderá rastrear todos os filhos do crond:

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

Isso deve levar a uma saída como esta:

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 retarda a execução do script, é claro, mas isso normalmente não deve ser um problema.

Responder2

Somente com essa saída, você não pode determinar qual programa chamou o mkdircomando.

Se você temContabilidade de processos BSD, o seguinte comando mostra qual programa tinha PID 24114:

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

Isto é provavelmente sh. A coluna 10 (com |o separador) contém o PID do processo registrado seguido de seu PPID, então repita a pesquisa com o PPID para ver qual programa foi invocado she assim por diante. Você também saberá a que horas o processo foi iniciado, o que pode ajudar a descobrir qual foi o cron job.

Somente com auditd, você precisa registrar não apenas a mkdirchamada, mas todos os acessos a esse diretório, para registrar os comandos que mudam para o diretório ou acessam arquivos nele. Se o diretório for criado, mas nada mais o acessar, não acho que auditd por si só seja suficiente para descobrir isso.

informação relacionada