저는 CPU의 100%를 차지하는 프로세스로 KVM 기반 서버를 실행하고 있습니다.
이것은 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
어떤 상황에서도 Apache를 실행해서는 안 됩니다.
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
......
프로세스가 어떻게 시작되었는지 모르겠습니다. 서버가 해킹되었을 수 있습니다. 프로세스를 종료했으며 서버를 다시 설치할 계획입니다.
이러한 특성을 고려할 때 해당 이름의 실행 파일이 없는 경우 프로세스가 시작되는 방법을 어떻게 추적할 수 있습니까? 분석을 위해 실행 파일의 메모리 이미지를 어떻게 캡처하고 해당 메모리 할당을 분석할 수 있습니까?
추신. 실행파일 이름을 찾았습니다. 공유 메모리에 복사되어 삭제된 것 같습니다.
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
.