1. 乗っ取りサーバーによくある症状
- CPU使用率が常に高い(仮想通貨の不正マイニング)
- 身に覚えのないユーザーやSSH鍵が追加されている
- 知らないポートがLISTEN状態になっている(バックドアや踏み台)
- アウトバウンド通信量が急増している(情報の外部送信・DDoS加担)
これらは日常的に監視していないと気づきにくく、被害が拡大してから発覚するケースが少なくありません。
2. プロセスの確認方法
ps auxf fオプションを付けると、親子関係がツリー表示され、「どのプロセスから起動されたか」が見えます。正規のサービスから起動されていない孤立したプロセスは要注意です。
ps aux --sort=-%cpu | head -15 CPU使用率順に並べ、見慣れないプロセス名(ランダムな英数字の実行ファイル名など)がないか確認します。
3. 開放ポートの確認方法
sudo ss -tulnp LISTEN状態のポートとそれを開いているプロセスの一覧です。以下のように読みます。
| 列 | 意味 |
|---|---|
| Local Address:Port | 待ち受けているIP・ポート番号 |
| Process | そのポートを開いているプロセス名とPID |
Webサーバー(80/443)やSSH(22)以外に見慣れないポートが開いていないか、また0.0.0.0(全世界からアクセス可能)になっている不要なサービスがないかを確認します。
4. AIに「正常な状態」との差分を判定させる
効果的なのは、サーバー構築直後の「正常な状態」のコマンド結果を控えておき、以後の結果をAIに比較させる方法です。
「以下は構築直後の`ss -tulnp`の結果と、今日実行した結果です。新しく増えたポート・プロセスがあれば教えてください」
人間の記憶だけに頼ると「これは前からあったっけ?」と判断に迷いますが、AIにテキストとして比較させれば差分は一瞬で分かります。定期的にコマンド結果を記録しておく習慣とセットで使うと効果的です。
5. 不審なものを見つけたら
⚠️ 対応の優先順位
- 該当プロセスを即座にkillする前に、PIDと実行パスを控えておく(証跡保全)
- 不要な公開ポートはファイアウォールで塞ぐ
- 被害の疑いが強い場合は、そのサーバーをネットワークから隔離し、必要ならOSごと再構築する
- 同じ設定ミスを繰り返さないよう、原因(弱いパスワード・古いソフトウェアの脆弱性等)を特定する
まとめ
- ps auxf・ss -tulnpで、動いているプロセスと開いているポートを定期的に確認する
- 「正常な状態」を控えておき、AIに差分比較させると異常検知がしやすい
- 見つけた不審なものはすぐに消さず、まず証跡を残してから対応する