auditd execve argumentos que se parecem com dados codificados

4

Estou registrando todos os execve's em uma espécie de pote de mel e, como tal, tento dar sentido aos comandos. Há muitos deles, todos com 'bash -c' e algum valor alfanumérico longo não entre aspas duplas. Como posso entender o que estou realmente vendo?

type=EXECVE msg=audit(1425426965.480:57967): argc=3 a0="bash" a1="-c" a2=6C73202F6574632F696E69742E64207C2067726570202D4520275B302D39612D7A5D7B31307D27207C2061776B20277B7072696E742024317D27207C207861726773206B696C6C616C6C
type=EXECVE msg=audit(1425510362.928:72792): argc=3 a0="bash" a1="-c" a2=6B696C6C616C6C20373737206874747064
type=EXECVE msg=audit(1425510366.832:72800): argc=3 a0="bash" a1="-c" a2=726D202D66202F746D702F68747470642A
type=EXECVE msg=audit(1425510366.832:72801): argc=3 a0="rm" a1="-f" a2="/tmp/httpd*"

A última parte com o httpd dá algumas indicações, mas eu realmente gostaria de entender exatamente o que está acontecendo.

    
por 3molo 05.03.2015 / 16:04

2 respostas

4

Um pouco atrasado para a festa, mas caso ainda ajude você ou outras pessoas a pesquisar ...

Os logs de auditoria do Linux não devem ser vistos diretamente no arquivo de log bruto - eles devem ser visualizados e analisados usando ferramentas como "ausearch" e "aureport". Muitas coisas (incluindo até mesmo data / data) são armazenadas em formato hexadecimal, mas você pode dizer ao ausearch para interpretar o material hexadecimal, bem como converter UIDs / GIDs para nomes, usando a opção "-i". Por padrão, ausearch usa o arquivo "/var/log/audit/audit.log", mas você também pode ver um arquivo específico com a opção "-if filename". Como exemplo, recortei e colei suas linhas específicas em um arquivo temporário e obtive os seguintes resultados:

$ ausearch -if temp_audit.log -i
----
type=EXECVE msg=audit(03/03/2015 18:56:05.480:57967) : argc=3 a0=bash a1=-c a2=ls /etc/init.d | grep -E '[0-9a-z]{10}' | awk '{print $1}' | xargs killall
----
type=EXECVE msg=audit(03/04/2015 18:06:02.928:72792) : argc=3 a0=bash a1=-c a2=killall 777 httpd
----
type=EXECVE msg=audit(03/04/2015 18:06:06.832:72800) : argc=3 a0=bash a1=-c a2=rm -f /tmp/httpd*
----
type=EXECVE msg=audit(03/04/2015 18:06:06.832:72801) : argc=3 a0=rm a1=-f a2=/tmp/httpd*
    
por 26.04.2015 / 08:07
4

Com o auditd, ele codifica argumentos longos em hexadecimais e pode ser decodificado de várias maneiras, uma das quais é com xxd

echo 6C73202F6574632F696E69742E64207C2067726570202D4520275B302D39612D7A5D7B31307D27207C2061776B20277B7072696E742024317D27207C207861726773206B696C6C616C6C | xxd -r -p                
ls /etc/init.d | grep -E '[0-9a-z]{10}' | awk '{print $1}' | xargs killall
    
por 07.03.2015 / 17:16