
Auf einem von mir betriebenen KVM-basierten Server beansprucht ein Prozess 100 % der CPU-Leistung.
Dies ist die Ausgabe von 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
Der Prozessname ist apache
und der Benutzer ist adminx
. Auf dem System sollte kein ausführbarer Apache vorhanden sein und der Benutzer adminx
sollte ihn auf keinen Fall ausführen.
Die Ausgabe strace
der beiden PIDs wird unten angezeigt.
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
......
Ich weiß nicht, woher der Prozess stammt, und der Server wurde möglicherweise gehackt. Ich habe den Prozess beendet und plane, den Server neu zu installieren.
Wie lässt sich bei einem solchen Vorgang nachvollziehen, wie der Prozess gestartet wurde, wenn es keine ausführbare Datei mit diesem Namen gibt? Wie lässt sich das Speicherabbild der ausführbaren Datei zur Analyse erfassen und wie lassen sich ihre Speicherzuweisungen analysieren?
PS. Ich habe den Namen der ausführbaren Datei gefunden. Es scheint, dass sie in den gemeinsamen Speicher kopiert und dann gelöscht wurde.
adminx@gw06 ~ ls -l /proc/10160/exe
lrwxrwxrwx 1 adminx adminx 0 Jun 3 09:22 /proc/10160/exe -> /dev/shm/apache (deleted)
Antwort1
Dabei könnte es sich um Bitcoin-Mining-Malware handeln.
Sie können die ausführbare Datei überprüfen mit
ls -l /proc/22230/exe
Der Name dieser Datei kann anders sein. Der Prozess kann ihn festlegen, $0
wie beispielsweise gezeigt top
.