
Hay un proceso que ocupa el 100% de la CPU en un servidor basado en KVM que estoy ejecutando.
Esta es la salida de 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
El nombre del proceso es apache
y el usuario es adminx
. No debería haber ningún Apache ejecutable en el sistema y el usuario adminx
no debería ejecutarlo en ningún caso.
El resultado de strace
los dos pids se muestra a continuación.
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
......
No sé cómo se originó el proceso y es posible que el servidor haya sido pirateado. He cerrado el proceso y planeo reinstalar el servidor.
Dado algo de esta naturaleza, ¿cómo se puede rastrear cómo se inició el proceso, si no hay ningún ejecutable con ese nombre? ¿Cómo se puede capturar la imagen de memoria del ejecutable para su análisis y cómo se pueden analizar sus asignaciones de memoria?
PD. Encontré el nombre del ejecutable. Parece que se copia a la memoria compartida y se elimina.
adminx@gw06 ~ ls -l /proc/10160/exe
lrwxrwxrwx 1 adminx adminx 0 Jun 3 09:22 /proc/10160/exe -> /dev/shm/apache (deleted)
Respuesta1
Puede ser malware de minería de bitcoins.
Puedes comprobar el ejecutable con
ls -l /proc/22230/exe
El nombre de ese archivo puede ser diferente. El proceso puede configurar lo $0
que se muestra en, por ejemplo top
.