異常なリソース使用のために VPS がハッキングされていないかどうかを確認します。

CyberPanel を利用しているVPSが突然遅くなり、ページの読み込みに時間がかかり、アクセス数が増えていないにもかかわらずCPUやメモリ使用率が頻繁に高騰する場合、それは偶然であることはほとんどありません。こうした現象の背後には、異常なプロセスがリソースを消費している、Webサイトがマルウェアに感染している、あるいはサーバーがインターネット上のボットや自動化ツールに継続的に悪用されているといった原因が潜んでいることが多くあります。状況を正確に把握するには、コントロールパネル上の確認と、SSHによるOSレベルでの調査を並行して行うことが重要です。

CyberPanelのダッシュボードでは、CPU、メモリ、ディスク使用率のグラフからサーバー全体の健全性を把握できます。CPU使用率が長時間高止まりしている場合は、SSHでログインしてどのプロセスが負荷を生み出しているのかを確認する必要があります。管理者アカウントでVPSに接続した後、次のコマンドでリアルタイムのリソース状況を監視できます。

top

表示された一覧から、CPUやメモリを多く消費しているプロセスを確認できます。CPU使用率の高い順に並べ替えるには、画面上で Shift と P を押します。不審なプロセスの詳細や実行コマンドを確認するには、対象のPIDを使って次のコマンドを実行します。

ps -fp PID

より視覚的に確認したい場合は htop が便利です。インストールされていない場合は次のように導入できます。

yum install htop -y
htop

Ubuntu系の場合は以下を使用します。

apt install htop -y
htop

メモリがほぼ使い切られ、スワップ領域が使用され始めると、サーバーのパフォーマンスは大きく低下します。メモリの状態は次のコマンドで確認できます。

free -m

同時にディスク使用量も確認すべきです。容量が急激に増えている場合、どのパーティションが圧迫されているかを調べます。

df -h

Webサイト関連のディレクトリでどこが最も容量を使っているかを確認するには次のコマンドが役立ちます。

du -h --max-depth=1 /home | sort -hr | head -n 10

特定のサイトが疑わしい場合は、そのユーザーディレクトリの中を詳しく確認します。

du -h --max-depth=1 /home/username | sort -hr | head -n 10

CyberPanelのファイルマネージャーからもコードは確認できますが、SSHでは最近変更されたPHPファイルを素早く探すことができ、マルウェア感染の調査に非常に有効です。

find /home -type f -name "*.php" -mtime -2

これは直近2日間に変更されたPHPファイルを表示します。管理者が更新していないにもかかわらず多数のファイルが変更されている場合は、すぐに中身を確認する必要があります。マルウェアが挙動を隠すためによく使う関数を検索するには、次のコマンドを使います。

grep -R "base64_decode" /home
grep -R "eval(" /home
grep -R "gzinflate" /home

これらの関数があるだけで即座にマルウェアとは限りませんが、不審なファイルや難読化されたコード内に存在する場合は感染の可能性が高まります。

CyberPanelのアクセスログでも異常なトラフィックは確認できますが、SSHから現在の接続数を素早く把握することも可能です。

netstat -antp | grep :80 | wc -l

通常よりはるかに多い場合、リクエストの集中攻撃を受けている可能性があります。どのIPアドレスが最も多く接続しているかを調べるには次のコマンドを使います。

netstat -antp | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | tail

この結果をもとに、不審なIPをファイアウォールで遮断できます。VPSがスパムメール送信に悪用されている疑いがある場合は、メールキューを確認します。Eximを使用しているサーバーでは、次のコマンドで待機中のメール総数を確認できます。

exim -bpc

数が異常に多い場合は、次のコマンドで詳細を確認できます。

exim -bp

リソースや通信状況だけでなく、サーバー上のユーザーアカウントも確認が必要です。次のコマンドで全ユーザーを一覧表示できます。

cat /etc/passwd

見覚えのないシェルアクセス可能なユーザーが存在する場合、サーバーがより深いレベルで侵害されている可能性があります。攻撃者が持続的にアクセスを維持するためによく利用するのがスケジュールタスクです。現在のユーザーのcron設定は次のコマンドで確認できます。

crontab -l

さらにシステム全体のcronディレクトリも確認します。

ls /etc/cron*

一時ディレクトリやWebディレクトリ内の不審なファイルを定期実行する設定が見つかった場合、マルウェアが自動復活する仕組みである可能性が高く、早急な対処が必要です。

これらすべての確認作業から明らかなのは、CyberPanelは表面的な状況把握に優れており、SSHはOS内部まで踏み込んで原因を特定できるという点です。不明なプロセスの存在、無断で変更されたファイル、ネットワーク接続数の急増、メールキューの異常増加といった兆候が見られた場合、まず重要なパスワードをすべて変更することが第一です。その後、感染が疑われるサイトを隔離し、システム全体のクリーンアップを進めます。根本原因を取り除いて初めて、VPSは本当に安定した状態へ戻ることができます。