Назад | Перейти на главную страницу

Процесс .resyslogd использует 200% ЦП

Прежде всего, отказник, я не системный администратор, меня просто попросили проверить, почему наша виртуальная машина использует много процессора.
Получается, что этот процесс запущен вечно на 200%
$top

PID ПОЛЬЗОВАТЕЛЬ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
11058 www-data 20 0 269564 5812 384 S 185,5 0,1 2: 42,95 .resyslogd

После некоторых исследований я понял, что это регистратор (на самом деле я обнаружил, что регистратором является rsyslog, но я думаю, что rеsyslog - то же самое.
Итак, я заметил, что было много попыток подключения (от ботов, я предполагаю), которые запускали запись в регистратор. Поэтому я решил прекратить использование паролей для входа в систему и переключился на аутентификацию по ключу. Это не повлияло на использование процессора, хотя записей в регистраторе теперь меньше, чем раньше. для случайных IP-адресов, которые я видел в регистраторе, я добавил их в /etc/hosts.deny.
После всего этого использование процессора вообще не упало. тот же процесс использует более 100% ядра процессора.
Я знаю, что www-data - это веб-сервер, предполагающий apache, и не знаю, действительно ли он использовался по какой-либо причине.

Любая помощь высоко ценится.

Выглядит очень подозрительно. rsyslogd определенно не должен работать как пользователь www-data!

.resyslogd определенно НЕ то же самое как rsyslogd, но он пытается представить, что это процесс регистратора, чтобы избежать подозрений.

Это точно не регистратор. Вероятно, это майнер монет или что-то подобное, которое проникло на ваш сервер, используя уязвимость на вашем веб-сервере, или один из скриптов (CGI, PHP, Perl и т. Д.), На запуск которого настроен веб-сервер.

Если у вас есть root-доступ (или вы можете переключиться на www-data user) вы можете остановить и проанализировать этого червя. Если нет, обратитесь к системному администратору за помощью.

Чтобы он больше не тратил впустую ваш процессор, запустите 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

чтобы узнать, содержит ли он какой-либо читаемый текст, который может помочь идентифицировать его и его цель.

Затем вы можете просмотреть всю доступную информацию в разделе /proc чтобы увидеть, что происходит в процессе. Например, ls -l /proc/11058/fd должен показать, какие файлы были открыты, ls -l /proc/11058/map_files должен перечислить все библиотеки и другие файлы с отображением памяти, которые он использовал, и т. д.

После того как вы соберете всю необходимую информацию, вы, наконец, сможете удалить этот процесс с помощью kill -9 11058. Это одна из немногих ситуаций, когда использование kill -9 определенно оправдано.

Поскольку похоже, что этот процесс попал на ваш сервер через веб-сервер, вам следует выключить веб-сервер, проверить его конфигурацию, удалить с него все (веб-приложения, сценарии CGI / PHP / Perl и т. Д.), Что больше не используется. , и убедитесь, что все вы делать использование актуально и безопасно.