Как найти ответственный скрипт с помощью результатов поиска ausearch?

Как найти ответственный скрипт с помощью результатов поиска ausearch?

Поэтому я хотел узнать, какой процесс создает каталог ']' в моем корне. Я предполагал, что это какая-то опечатка в каком-то скрипте. Поэтому я настроил аудит для этого каталога, очень похоже на то, что показано наЭтот вопрос.

На следующий день я проверил свои логи и обнаружил, что каталог был создан снова, и он был зарегистрирован аудитом. Но все, что я могу сказать из этого вывода, это то, чтокореньсоздал его.

выход:

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 

Разбито на строки:

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 

Я хотел бы узнать, какой скрипт выдает эту команду как root. Это возможно? Процесс, использующий этот PPID, больше не запущен.

решение1

Предположив, что это вызвано скриптом, запущенным cron, вы можете отследить все дочерние процессы crond:

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

Это должно привести к такому выводу:

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 замедляет выполнение скрипта, но обычно это не должно быть проблемой.

решение2

По одному этому выводу невозможно определить, какая программа вызвала mkdirкоманду.

Если у вас естьУчет процесса BSD, следующая команда показывает, какая программа имела PID 24114:

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

Вероятно, это sh. Столбец 10 (с |разделителем) содержит PID записанного процесса, за которым следует его PPID, поэтому повторите поиск с PPID, чтобы увидеть, какая программа была вызвана shи т. д. Вы также узнаете, в какое время был запущен процесс, что может помочь выяснить, какое это было задание cron.

С помощью только Auditd вам нужно записывать не только вызов, mkdirно и все обращения к этому каталогу, чтобы записывать команды, которые изменяют каталог или обращаются к файлам в нем. Если каталог создан, но больше ничего к нему не обращается, я не думаю, что одного Auditd достаточно, чтобы разобраться с этим.

Связанный контент