Como encontrar um script responsável com resultados ausearch?

1

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

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

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 

Quebrado 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 envia esse comando como root. Isso é possível? O processo que usa esse PPID não está mais sendo executado.

    
por Gjordis 26.04.2013 / 07:47

2 respostas

1

Apenas desta saída, não é possível determinar qual programa chama o comando mkdir .

Se você tiver contabilidade do processo BSD , o seguinte comando mostra qual programa tinha o PID 24114:

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

Isso provavelmente é sh . A coluna 10 (com | como separador) contém o PID do processo gravado seguido por seu PPID, portanto repita a pesquisa com o PPID para ver qual programa invocou sh e assim por diante. Você também pode saber a que horas o processo foi iniciado, o que pode ajudar a descobrir qual tarefa do cron era essa.

Somente com o auditd, é necessário registrar não apenas a chamada mkdir , mas todos os acessos a esse diretório, para gravar os comandos que mudam para o diretório ou acessam os arquivos nele contidos. Se o diretório for criado, mas nada mais acessá-lo, não acho que o auditd sozinho seja suficiente para descobrir isso.

    
por 27.04.2013 / 02:47
2

Supondo que isso é causado por um script iniciado pelo cron, você pode rastrear todos os filhos-da-mãe:

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

Isso deve levar a uma saída assim:

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

    
por 26.04.2013 / 08:06