Como o fastCGI PHP altera um arquivo e a detecção de escape pelo auditd?

1

Outro dia eu configurei um pequeno script de shell em um servidor Debian para me enviar um email quando os arquivos mudam; parece assim:

#!/bin/sh

items='find /var/www/vhosts -regex ".*/httpdocs/.*" -newer files_start -ls'
if [ ! -z "$items" ]
then
 touch files_start
 echo "$items" | mail -s "new file(s)" "[email protected]"
fi

Continuei sendo notificado de um misterioso arquivo de texto de tamanho 0 (acessível pela Web, gravável pelo PHP e pelo usuário vhost, mas não pelo Apache) sendo modificado de 2 a 3 vezes por dia, portanto configurei a auditoria com a seguinte regra .

auditctl -l
LIST_RULES: exit,always watch=/var/www/vhosts/path/to/file.txt perm=rwa key=wh1

Eu testei e com ausearch obtive, como esperado:

...comm="touch" exe="/bin/touch"...

Depois de receber o próximo email com a nova data de modificação, eu corri ausearch: sem novas correspondências!

Como isso pode acontecer?

---- UPDATE ----

Eu descobri por outros meios que o processo é o PHP rodando como o fastCGI chamado pelo Apache. A chamada da função PHP é:

touch('path/to/file.txt');

Então a questão se torna: Como o fastCGI PHP altera um arquivo e a detecção de escape pelo auditd? Isso está começando a parecer um erro de auditoria.

    
por Peter Rowntree 24.08.2013 / 04:10

1 resposta

0

Exclua essa regra e tente isto:

auditctl -w <path-to-file> -p wa -k mystery-file

Verifique também se o /etc/init.d/auditd foi iniciado.

    
por 24.08.2013 / 09:47