1つのサイトの穴が、全部のサイトに広がる レンタルサーバーの「同居」リスク
この記事でわかること
PHPの重大な穴(PHP2Shell)の対応で、自分が管理しているサーバーを見直していたとき、ひやっとしたことがあります。
1つのサーバーのアカウントに、いくつものサイトが同居していたのです。
レンタルサーバーでは、1つの契約に複数のドメインを入れられます。
便利なので、つい「全部ここに置いておこう」となりがちです。
ところが、これが大きな落とし穴でした。
同じアカウントなら、1か所破られると全部読まれる
同じアカウントに入っているサイトは、サーバーから見ると「同じ人の持ち物」です。
そのため、どれか1つのサイトから入られると、
- ほかのサイトのファイル
- ほかのサイトのデータベースの合言葉(WordPressの設定ファイルに書いてある)
まで、読めてしまいます。
1部屋の窓が割れたら、家じゅうに入られる状態です。

いちばん弱いサイトが、全体の強さになる
ここで怖いのは、守りの強さが「いちばん弱いサイト」で決まることです。
たとえば、
- 9つのサイトは最新の状態
- 1つだけ、古いPHPのまま放置されている
この場合、その1つが入口になれば、残りの9つも危なくなります。
今回のPHPの穴でいえば、サポートの終わった古い版(8.1以前)には公式の修正版が出ないので、まさに「いちばん弱いサイト」になりえます。
隣のお客さんは?
「レンタルサーバーは、ほかのお客さんとも同じサーバーを使っているのでは?」という心配もあるかもしれません。
共用サーバーでは、お客さん(契約)ごとに部屋が分かれています。
隣の契約の人が破られても、ふつうはこちらの部屋までは入れません。
危ないのは「隣の家」ではなく、「自分の家の中の、別の部屋」です。

できること
| やること | 効きめ |
|---|---|
| 同じアカウントの全サイトの版をそろえる | 弱い入口をなくす |
| 使っていないテスト用サイトを片付ける | 忘れられた入口をなくす |
| 大事なサイトや、人から預かったサイトは別の契約に分ける | 破られても、そこで止まる |
| 記事を更新しないサイトはHTMLにする | PHPが動かないので、入口にならない |
特に見落としやすいのが、昔作ったテスト用サイトです。
作ったきり忘れていて、古いPHPやWordPressのまま残っていることがあります。誰も見ていない場所ほど、入口になりやすいのです。
今回のPHPの穴について、自分のサイトで何ができるかは、こちらにまとめました。
TAG
