Процесс.resyslogd использует 200% ЦП
Прежде всего, дисклеймер, я не являюсь системным администратором, меня просто попросили проверить, почему наша виртуальная машина использует большую часть процессора.
Оказывается, этот процесс работает вечно на 200% $top
PID USER PR NI VIRT RES SHR S% CPU% MEM TIME + КОМАНДА
11058 www-data 20 0 269564 5812 384 S 185,5 0,1 2:42,95 .resyslogd
После некоторых исследований я выяснил, что это регистратор (на самом деле я обнаружил, что регистратор - это rsyslog, но я понимаю, что системный журнал - это то же самое.
Итак, я заметил, что есть много попыток подключения (от ботов, я предполагаю), которые запускали запись в журнал. Поэтому я решил прекратить разрешать пароли для входа в систему и переключился на аутентификацию по ключу. Это никак не отразилось на использовании процессора, хотя записей на регистраторе было меньше, чем раньше. для случайных IP-адресов, которые я видел на регистраторе, я добавил их в /etc/hosts.deny.
После всего этого использование процессора не уменьшилось вообще. тот же процесс использует более 100% ядра процессора.
Я знаю, что www-данные - это веб-сервер, предполагающий apache, и я не знаю, использовался ли он по какой-либо причине.
Любая помощь высоко ценится.
1 ответ
Выглядит очень подозрительно. rsyslogd
определенно не должен быть запущен как пользователь www-data
!
.resyslogd
это определенно не то же самое, что rsyslogd
, но он пытается притвориться, что это процесс регистрации, чтобы избежать подозрений.
Это точно не регистратор. Вероятно, это монетоприемник или что-то в этом роде, которое проникло на ваш сервер, используя слабость вашего веб-сервера, или один из сценариев (CGI, PHP, Perl и т. Д.), Который настроен для работы веб-сервера.
Если у вас есть root-доступ (или вы можете переключиться на www-data
пользователь), вы можете остановить и проанализировать этого червя. Если нет, вам следует попросить системного администратора помочь вам.
Чтобы не тратить больше ресурсов вашего процессора, запустите kill -STOP 11058
(либо как root
или как www-data
). Этот сигнал не может быть перехвачен программой: он просто говорит ядру не выделять больше процессорного времени для этого процесса, пока не будет указано иное. По сути, он замораживает процесс в своих треках.
Затем используйте /proc
файловая система для выгрузки фактического программного кода, используемого червем, используя /proc/<PID of the suspicious process>/exe
, В вашем случае PID 11058, поэтому:
sudo cat /proc/11058/exe >/tmp/dirty_worm
Это должно работать, даже если червь удалил свой исполняемый файл (что он, вероятно, сделал, чтобы спрятаться).
Затем вы можете использовать любые команды для анализа исполняемого файла, например,
strings /tmp/dirty_worm | less
чтобы увидеть, содержит ли он какой-либо читаемый текст, который может помочь в определении его и его цели.
Then, you can inspect all the available information under /proc
to see what the process was doing. Например, ls -l /proc/11058/fd
should reveal which files it had open, ls -l /proc/11058/map_files
should list any libraries and other memory-mapped files it was using, etc.
Once you've gathered all the information you can, you can finally remove this process with kill -9 11058
, This is one of the few situations where using kill -9
is definitely justified.
Since it looks like this process got into your server through the web server, you should shut down the web server, check its configuration, remove everything (web applications, CGI/PHP/Perl scripts, etc.) from it that is no longer used, and make sure everything you do use is up to date and secure.