実行可能ファイル名が関連付けられていないプロセスをどのように診断できますか?

実行可能ファイル名が関連付けられていないプロセスをどのように診断できますか?

実行中の KVM ベースのサーバーで、CPU を 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いずれにしてもそれを実行していないはずです。

strace2 つの 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
......

プロセスがどのように発生したかはわかりません。サーバーがハッキングされた可能性があります。プロセスを強制終了し、サーバーを再インストールする予定です。

このような性質のものがある場合、その名前の実行可能ファイルがない場合、プロセスの開始方法をどのように追跡しますか? 実行可能ファイルのメモリ イメージを分析用にキャプチャするにはどうすればよいでしょうか? また、そのメモリ割り当てを分析するにはどうすればよいでしょうか?

PS. 実行可能ファイルの名前を見つけました。共有メモリにコピーされて削除されるようです。

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

関連情報