Я записываю все execve в своего рода коробку с медом, и поэтому я пытаюсь разобраться в командах. Их много, и все с 'bash -c' и некоторым длинным буквенно-цифровым значением, не заключенным в двойные кавычки. Как мне понять, на что я на самом деле смотрю?
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*"
Последняя часть с httpd дает некоторое представление, но я действительно хотел бы понять, что именно происходит.
Немного поздно на вечеринку, но если это все же поможет вам или другим в поиске ...
Журналы аудита Linux на самом деле не предназначены для просмотра непосредственно в необработанном файле журнала - они предназначены для просмотра и анализа с использованием таких инструментов, как «ausearch» и «aureport». Многие вещи (включая даже метки времени / даты) хранятся в шестнадцатеричном формате, но вы можете указать ausearch интерпретировать шестнадцатеричный материал, а также преобразовать UID / GID в имена, используя параметр «-i». По умолчанию ausearch использует файл «/var/log/audit/audit.log», но вы также можете просмотреть определенный файл с помощью параметра «-if имя_файла». В качестве примера я вырезал и вставил ваши конкретные строки во временный файл и получил следующие результаты:
$ 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*
С участием auditd
он кодирует длинные аргументы в HEX и может быть декодирован несколькими способами, одним из которых является xxd
.
echo 6C73202F6574632F696E69742E64207C2067726570202D4520275B302D39612D7A5D7B31307D27207C2061776B20277B7072696E742024317D27207C207861726773206B696C6C616C6C | xxd -r -p
ls /etc/init.d | grep -E '[0-9a-z]{10}' | awk '{print $1}' | xargs killall