
На моем сервере на базе KVM есть процесс, который занимает 100% ЦП.
Это вывод htop.
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
22230 adminx 20 0 185M 3468 1600 S 100. 0.5 72h45:33 apache
22232 adminx 20 0 185M 3468 1600 R 100. 0.5 72h45:12 apache
10660 root 20 0 26880 4680 3176 R 0.0 0.6 0:00.11 htop
1061 root 20 0 276M 5796 0 S 0.0 0.8 0:05.59 /usr/lib/snapd/snapd
9529 root 20 0 92796 6916 5992 S 0.7 0.9 0:00.11 sshd: root@pts/3
Имя процесса — , apache
а пользователь — adminx
. В системе не должно быть исполняемого файла apache, и пользователь adminx
в любом случае не должен его запускать.
Вывод strace
двух pid показан ниже.
strace -p 22230
epoll_wait(7, [], 1024, 204) = 0
epoll_wait(7, [], 1024, 34) = 0
epoll_wait(7, [], 1024, 500) = 0
epoll_wait(7, [], 1024, 465) = 0
epoll_wait(7, [], 1024, 34) = 0
......
strace -p 22232
sched_yield() = 0
sched_yield() = 0
sched_yield() = 0
sched_yield() = 0
sched_yield() = 0
......
Я не знаю, как возник этот процесс, и сервер мог быть взломан. Я убил процесс и планирую переустановить сервер.
Учитывая что-то подобное, как вы можете отследить, как начался процесс, если нет исполняемого файла с таким именем? Как можно захватить образ памяти исполняемого файла для анализа и как можно проанализировать его распределение памяти?
P.S. Я нашел имя исполняемого файла. Похоже, он копируется в общую память и удаляется.
adminx@gw06 ~ ls -l /proc/10160/exe
lrwxrwxrwx 1 adminx adminx 0 Jun 3 09:22 /proc/10160/exe -> /dev/shm/apache (deleted)
решение1
Это может быть вредоносное ПО для майнинга биткоинов.
Вы можете проверить исполняемый файл с помощью
ls -l /proc/22230/exe
Имя этого файла может быть другим. Процесс может установить его, $0
который показан напр top
.