マシンがハッキングされた兆候
他人のコードがマシン上で実行されていることを示す症状、コマンドによる確認方法、再インストールが唯一の確実な解決策である理由を説明します。
更新日 2026年8月23日
侵害されたマシンは、見た目で異常だと分かることはほとんどありません。多くの場合、依頼した以上のことを少しだけ始めるだけです。CPU が熱くなり、外向きの通信を送り、他人のアドレスを叩く。それに早く気づけば、影響は少なくて済みます。
初期の兆候
- 自分では負荷をかけていないのに、CPU が常に 100% になっている — パネルの「概要」
/hosting/vds/m/<id>のグラフで確認できます。 - 外向きの通信が一日中、一定の高い水準で続いている — 通信量の使用状況を参照してください。
- ディスク容量がどこへともなく減っていく。
- ログに見覚えのないアドレスからのログイン成功が記録されている — ログインログを参照してください。
- 新しいユーザーやスケジュールタスクが現れている。
- プロバイダーに、あなたのマシンに関する苦情が届いている — スパムの配信や攻撃への加担です。
特に危険なのは、すべてが「ただ遅くなっただけ」というケースです。マイナーは発覚を長引かせるため、意図的にマシンを限界まで使い込まないようにします。
確認
top -c
ps auxf
ss -tunp
ss -tnp state established
www-data などのサービスユーザーとして動作している、意味のない名前のプロセスや、見覚えのないアドレスへの外向き接続を探してください。
ユーザーと自動起動の項目:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
awk -F: '$2 == "" {print $1}' /etc/shadow
crontab -l
crontab -l -u www-data
ls -la /etc/cron.d/ /var/spool/cron/crontabs/
systemctl list-units --type=service --state=running
systemctl list-timers
システムディレクトリの最近の変更:
find /etc /usr/bin /usr/sbin -mtime -7 -type f
find /tmp /dev/shm /var/tmp -type f -executable
/tmp や /dev/shm にある実行ファイルは、ほぼ間違いなく外部から持ち込まれたものです。
アクセスキー:
cat /root/.ssh/authorized_keys
for d in /home/*; do cat $d/.ssh/authorized_keys 2>/dev/null; done
外部のキーが追加されているのは、マシンに足場を築く最も一般的な手口です。
確定した場合
「きれいにして使い続ける」ことはしないでください。何が変更されたのか正確には分かりません。攻撃者がシステムコマンドをすり替えている可能性があり、ps も ls も平気で嘘をつきます。
正しい手順は次のとおりです。
- マシンを外部サービスから切り離し、使用していたすべての場所でパスワードとキーを変更します。
- 調査に必要なものを集めます。ログ、プロセスの一覧、最初の不審なログインの時刻です。
- コピーするのはデータのみで、実行ファイルはコピーしないでください。侵害されたマシンからコードをコピーすることは、バックドアを持ち出すことと同じです。
- パネル
/hosting/vds/m/<id>の「アクセス」タブでシステムを再インストールします。 - 最初の1時間の堅牢化から始めて、一から構築し直します。
- 元の穴を塞ぎます。古いアプリケーション、弱いパスワード、パスワードなしで公開されたデータベースなどです。
攻撃者の主な侵入経路
| 方法 | 対策 |
|---|---|
| SSH 経由で root パスワードを総当たり | キー認証とパスワードログインの無効化 |
| パスワードなしでインターネットに公開されたデータベース | 127.0.0.1 で待ち受けます。ポートを参照してください |
| 古いバージョンのアプリケーションの脆弱性 | 自動アップデート |
| リポジトリから漏れたキー | シークレットは別に保管する |
| 誰でもアクセスできる管理パネル | ファイアウォールでアドレスを制限する |
再インストールは高くつくように見えますが、何のためにも信頼できなくなったマシンよりは安く済みます。マイナーやスパムキャンペーンが見つかった場合も、たとえあなたが起動していなくても、あなたのマシンによる利用規約違反となります。