Вы можете использовать подсистему auditd
для регистрации команд, выполняемых в вашей системе. Он подключен к ядру, поэтому очень надежно регистрировать все, что выполняется.
Мои примеры на Fedora Linux, вы можете найти небольшие различия в зависимости от вашего дистрибутива. (Подсистема auditd
довольно сложна, поэтому может быть сложно сделать это правильно.)
Сначала убедитесь, что у вас уже установлен и запущен Audit, с помощью:
$ systemctl status auditd.service
Затем вы можете проверить, какие правила загружены. По умолчанию в Fedora вы получаете:
$ sudo auditctl -l
-a never,task
Поэтому нам нужно удалить этот список "задач" (который подавляет системные вызовы) и добавить тот, который регистрирует "execve" (который является системным вызовом, выполняющим команды).
$ sudo auditctl -d never,task
$ sudo auditctl -a always,exit -F arch=b64 -S execve
Как только это будет сделано, все команды будут зарегистрированы в системе аудита.
Затем вы можете найти его, используя команду ausearch
. Например, чтобы найти все исполнения, которые вызывают "gulp", вы можете использовать:
$ sudo ausearch -c gulp
Вывод будет довольно многословным ... Сосредоточьтесь на строке type = EXECVE. Аргументы будут перечислены как a0="gulp" a1="first_argument" a2="second_argument" ...
Если вместо строки в кавычках вы получите длинную последовательность чисел, используйте -i
для ее интерпретации.
Регистрация каждой команды, которая выполняется в вашей системе, может быть очень дорогой и занимать много места на диске! Возможно, это тоже влияет на производительность. Если вы хотите отменить эти изменения, вы можете перезагрузить набор правил по умолчанию с помощью этой команды:
$ sudo augenrules --load
Вы также можете применить фильтр к правилу ведения журнала, например, чтобы регистрировать только выполнение /usr /bin /gulp:
$ sudo auditctl -a always,exit -F arch=b64 -F exe=/usr/bin/gulp -S execve
Так что, может быть, это излишне ... Но это так же надежно, как и получается. Я надеюсь, что вы можете найти свой путь через подсистему auditd
которая даст вам информацию, которую вы ищете!