そのWebサイト、まだ「大丈夫」だと思ってますか?

そのWebサイト、まだ「大丈夫」だと思ってますか?

最近、情報漏えいや不正アクセスのニュースがずいぶん増えました。
そのたび、クレジットカードの再発行やだなーとビクビクしてるmmochiです。

こうした不正アクセスによる被害のニュースを見ていると、「大きな会社だけが被害に遭っている」という感じではなくなってきたように思います。
実際、近年のランサムウェアや不正アクセスの被害を見ると、中小規模の企業も珍しくありません。

「うちは大企業じゃないから、そんなに狙われないでしょ」

という考え方は、もう捨てないと危ないかもしれないですよ。

無差別に行われる自動スキャンでは、会社の規模よりも「攻撃できる状態かどうか」のほうが重要だからです。
Webサイトは入口のひとつにすぎませんが、インターネットに直接公開されているため、継続的に攻撃を受けやすい対象です。

Webサイトには、今日も知らない誰かがアクセスしている

実際、この記事を書いている間にも、あんどぷらすのWebサイトには攻撃を試みるアクセスが届いています。

これは、WordPressのREST APIバッチエンドポイントに対する、攻撃目的と考えるのが自然なリクエストです。

ただし、Cloudflare WAFがオリジンサーバーへの到達前にブロックしているため、このログだけで侵入や攻撃成功を意味するものではありません。

インターネット上に公開している以上、Webサイトには世界中からアクセスがあります。
その中には、検索エンジンも、普通のお客さんも、そしてこのログのように「攻撃を試みるアクセス」も混ざっています。

だからこそ、「うちの会社なんて誰も狙わない」ではないんですよ。

「狙われる前提で、攻撃されても大丈夫な状態にしておく」ことが必要になります。

WordPressも、脆弱性とは無縁ではありません

[WordPress公式のセキュリティ情報]でも、WordPress本体や関連コンポーネントのセキュリティ情報が継続的に公開されています。

WordPressそのものだけではありません。
プラグインやテーマなど、周辺のソフトウェアも含めて考える必要があります。

ただし、「WordPressを最新版にしておけばいい」というわけではないんですよね。
WebサイトはWordPressだけで動いているわけではありません。
PHPがあり、Webサーバーがあり、データベースがあり、OSがあり、場合によってはキャッシュサーバーや各種ミドルウェアがあります。

どこか一つだけ古いままでも、そこが弱点になる可能性があります。

「動いているから問題ない」は、一番危ない

たとえば、サポートが終了したPHPを使っているWebサイト。
さらに、そのPHPについてサーバー会社の独自サポートまで終了している。

それでも、「今ちゃんと動いているから」と、そのまま使い続ける。
かなり危ないです。

Webサイトというのは、「壊れてから直す」ものではありません。
ソフトウェアにはサポート期間があります。
脆弱性が発見されれば、通常は修正プログラムが提供されます。

しかし、サポートが終了したバージョンでは、原則として新たなセキュリティ修正を受けられません。

  • 「昨日まで動いていた」
  • 「今も表示できている」
  • 「何年も問題が起きていない」

これらは、セキュリティ上の安全を証明するものにはなりません。

むしろ、「何年も更新されていないこと自体が問題」かもしれません。

PHPだけじゃない。ミドルウェアも適正なバージョンに

ここはCMSを運用している人ほど意識してほしいところです。
WordPressだけが最新版だとしても、それだけでは不十分なんですよね。

  • PHPは何を使っているのか。
  • Webサーバーは何か。
  • データベースは何か。
  • OSは何か。
  • その他のミドルウェアは、サポートされているバージョンなのか。

きちんと確認しておきましょう。

そして、古い環境を使い続ける理由が、「アップデートするとサイトが動かなくなるかもしれないから」というケースもあります。
これは確かに、その通りです。

だからこそ、「動かなくなる前に対応する」必要があるのですよね。

古い環境に依存したまま何年も運用して、サーバー会社から、「もうこのバージョンはサポートしません。アップデートします」と言われてから慌てる。

これは、ちょっとまずいと思います。

サーバー会社が強制アップデートしたら、サイトが壊れた?

サーバー会社によっては、サポート終了したPHPやミドルウェアを、一定期間後に強制的にアップデートすることがあります。
その結果、古いプログラムが動かなくなって、Webサイトが停止するということは実際に起こり得ますし、何度も見てきました。

そして、「サーバー会社が勝手にアップデートしたせいでサイトが止まった!」となるケースがあるんですよね。

でも、ほんとにそうなんですかね?
もちろん、サーバー会社側にも、事前告知や移行期間、サポート体制など、適切な案内は求められます。

ただ、

> 「このバージョンは○月でサポート終了します」

と何度も案内されているのに、

> 「でも今動いてるから」

で放置する。

そして数年後、

> 「アップデートされたらサイトが壊れました!」

となっても、それは「突然壊された」という話ではありません。

いつか対応しなければならない問題を、後回しにしていただけです。
サポートが終了した古い環境を使い続けていたことまで、サーバー会社のせいにするのは違うと思うんですよね。

だからこそ、Webサイトを運用する側も、環境の寿命をきちんと見ておく必要があります。

じゃあ、どう守ればいいの?

方法はいくつかあります。
すべての会社が同じ対策をする必要はありません。

まずは、きちんとアップデートする

もっとも基本的な対策です。

CMS、プラグイン、テーマ、PHP、Webサーバー、データベースなど、利用しているソフトウェアを適切なバージョンに保つ。

これがスタートです。

脆弱性診断をする

自社では把握できていない問題がないか、第三者による診断を受ける方法もあります。
特に、長期間運用しているサイトや、独自開発部分が多いシステムでは、一度きちんと調べてみる価値があります。

WAFで防御する

今回、弊社のログを紹介したのもこれです。
WAF(Web Application Firewall)によって、Webアプリケーションへの不正なリクエストを検知・遮断します。

ただし、WAFを入れたから脆弱性を放置していい、というわけでは当然ありません。
WAFは防御のためのひとつの手段です。
脆弱性そのものを修正することとは別の話です。

そもそもの構成を変える

場合によっては、Webサイトの構成そのものを見直す方法もあります。
たとえば、CMS本体や管理画面を公開サイトから分離することで、公開側から直接到達できる機能を減らせる場合があります。
ただし、APIや認証基盤が新たな攻撃面になるため、ヘッドレス化そのものをセキュリティ対策と考えるのは危険です。

大切なのは、「今の構成が、本当に必要なのか?」ということを考えることです。

作ったときは安全だったかもしれないけど

Webサイトは、家電製品のように「買って設置したら、そのまま10年間使える」というものではありません。

  • 利用しているソフトウェアのサポートが終わる。
  • 新しい脆弱性が発見される。
  • 攻撃手法が変わる。
  • サーバー環境が変わる。
  • ブラウザや外部サービスの仕様が変わる。

公開したあとも、周囲の環境はずっと変化しています。

だから、Webサイトは「作って終わり」ではなく、「運用し続けるもの」です。
これは機能追加やデザイン変更だけの話ではありません。
セキュリティも含めて、です。

まずは、自社サイトを確認してみよう

もし今、

  • 「うちのPHP、何バージョンだっけ?」
  • 「WordPressは最新版だっけ?」
  • 「プラグイン、使っていないものが残ってない?」
  • 「サーバー会社から何かアップデートのお知らせ来てたっけ?」
  • 「このサーバー、いつまでサポートされるんだっけ?」
  • 「バックアップ取ってたっけ?」
  • 「なにかあったときに復旧できるの?」

となったなら、一度確認してみてください。

大げさなセキュリティ対策を始める前に、まず現在の状況を知ることが重要です。

そこから、

  1. アップデートする
  2. 不要なものを削除する
  3. 脆弱性診断をする
  4. WAFを導入する
  5. 構成を見直す
  6. 必要ならヘッドレス化する

など、自社に合った方法を選べばいい。

Webサイトは、公開した瞬間に完成するものではありません。

そして、インターネットにつながっている限り、今日も誰かがアクセスしています。
「うちは大丈夫」ではなく、「大丈夫な状態を維持する」。
そのくらいの気持ちで、Webサイトを運用していきましょう。

マジで、気をつけましょうね。

ご相談はこちらからお気軽にお寄せください。