Добрый день. Ситуация: заметил страный процесс от одного из рядовых пользователей.
/proc/$PID/exe - /usr/bin/perl
/proc/$PID/cmdline - /sbin/syslogd (такой файл есть, но это бинарник, а не перл, да и не должен он запускаться от данного пользователя.
В /proc/$PID/fd симлинки на IN, OUT, ERR и 1 сокет который ведет на совершенно левый ip-адрес. Если сказать strace -fp $PID, то там ничего кроме такого нет:
[pre]select(0, NULL, NULL, NULL, {0, 10000}) = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0}) = 0 (Timeout)[pre]
Собственно вопрос: как найти что это, откуда взялось. То есть не "как провести аудит аккаунта\сервера", а именно "как понять откуда взялся данный процесс, откуда он запустилса, как назывался и где лежал этот перловый скрипт (если он был) или какие переменные были переданы перлу при запуске".
Ваши советы/предложения?
Perl: получить информацию о процессе.
Модераторы: SLEDopit, Модераторы разделов
-
o5_TaHKucT
- Сообщения: 19
- ОС: Linux
-
McSim
- Сообщения: 419
- Статус: Экспериментатор
- ОС: заGNU/Linux Debian
Re: Perl: получить информацию о процессе.
o5_TaHKucT писал(а): ↑17.06.2014 19:39/proc/$PID/cmdline - /sbin/syslogd (такой файл есть, но это бинарник, а не перл, да и не должен он запускаться от данного пользователя.
Если процесс работает в памяти, то не обязательно файлы /usr/bin/perl и /sbin/syslogd должны существовать в данный момент (по крайней мере, в том состоянии, в котором они были при запуске). Они могли быть созданы при запуске процесса, а потом удален/заменен. И если файл был заменен или удален, то по идее /proc/$PID/exe об этом напишет.
/sbin/syslogd - это то,что запустило процесс, а /usr/bin/perl - это то, что реально работает в памяти.
Можно попытаться найти PID родительского процесса через /proc/$PID/stat или /proc/$PID/status.
Может родительский процесс о чем-то расскажет.