Webサイトの安全を支える、見えない土台

PHPの脆弱性から考える、Webサイトの安全性

PHPの脆弱性は、なぜ広い範囲に影響するのか

私たちが普段見ているWebサイト。ニュースを読んだり、買い物をしたり、イベントを予約したり。画面には文字や写真が表示されていますが、その裏側では、さまざまなプログラムが動いています。その仕組みを支えている技術の一つが「PHP」です。

PHPは、WebサイトやWebサービスを動かすために広く使われているプログラミング言語です。今回、このPHPに重大な脆弱性が見つかりました。問題は、特定のWebサイトだけにあるのではありません。多くのサービスが共通して利用している、プログラムを動かす仕組みそのものに関係しています。

PHPは、Webサイトの裏側で働いている

例えば、ニュースサイトで記事を開いたとします。ブラウザーからリクエストが送られると、サーバーは必要な情報を集め、ページを作り、ブラウザーに返します。PHPは、その途中でプログラムを実行し、記事の情報を取得したり、利用者の入力を処理したりします。

たとえるなら、Webサイトがレストランだとすれば、画面に表示されるページはお客さんに出される料理です。PHPは、注文に応じて厨房で調理を進める仕組みの一部にあたります。料理の見た目だけを確認しても、厨房の機械に問題があるかどうかはわかりません。

Webサイトも同じです。画面が正常に表示されていても、その裏側の実行環境に問題が潜んでいる可能性があります。

特定のWebサイトだけの問題ではない

PHPは、一つの製品専用の技術ではありません。ニュースサイト、ネットショップ、予約システム、会員向けサービス、企業の業務システムなど、さまざまなWebサービスで利用されています。それぞれのサービスは別々に作られていても、同じPHPの仕組みを使っていることがあります。

つまり、共通して使われている部分に欠陥が見つかれば、影響が複数のサービスに広がる可能性があるのです。個々のWebサイトをどれだけ丁寧に作っていても、プログラムを動かす土台に問題があれば、それだけでは防げない場合があります。

Macにも搭載されていたPHP

PHPがどれほど広く使われてきた技術なのかを示す例があります。かつて、AppleのMacにはPHPが標準搭載されていました。macOS 11 Big Surまでは標準搭載が続き、macOS 12 Monterey以降は標準搭載されなくなりました。

もちろん、MacにPHPが入っていたからといって、すべてのMacがWebサイトを公開していたわけではありません。しかし、PHPがWeb制作のためだけの特殊な道具ではなく、長い間、さまざまな環境で利用されてきた技術であることがわかります。現在も、PHPはサーバーや開発環境などにインストールされ、Webサービスを動かすために使われています。

今回の問題は、メモリーの扱いに関係している

コンピューターは、プログラムを動かすときに「メモリー」という作業場所を使います。データを一時的に置いたり、計算に使う情報を読み書きしたりするための場所です。今回のPHPの脆弱性では、このメモリーの管理に関係する不具合が問題になりました。

例えば、使い終わった作業場所を空けたのに、プログラムが古い場所の情報を持ち続けてしまうことがあります。その古い情報を使ってしまうと、本来触れてはいけないデータにアクセスしたり、メモリーの内容を壊したりする可能性があります。

これは、使い終わったロッカーの鍵の情報が残り、次に誰かが使っているロッカーを誤って開けようとするようなものです。

今回の問題は、単にWebサイトの表示が遅くなったり、止まったりするだけではありません。攻撃に必要な条件がそろえば、外部の攻撃者がサーバー上で不正なプログラムを実行できる可能性があります。その結果、Webサイトの改ざんや情報の窃取などにつながるおそれがあります。

ログイン対策だけでは防げないことがある

Webサイトを守るためには、パスワードを強くする、ログイン画面を保護する、不必要な機能を停止するといった対策が重要です。しかし、今回のようにプログラムを動かす仕組み自体に欠陥がある場合、ログイン画面を通らずに攻撃が成立する可能性があります。

PHP公式も、今回の脆弱性に対応する修正版を公開しています。そのため、PHPを利用しているシステムでは、対象となるバージョンや実行方式を確認し、適切な修正版へ更新することが重要です。

ただし、PHPを使っているというだけで、すべてのシステムが同じ条件で攻撃されるわけではありません。実際の危険性は、利用しているバージョンやシステムの構成などによって異なります。

守るべきなのは、画面の向こう側

私たちは、Webサイトを一つの完成した製品として見がちです。しかし、その裏側には、OS、Webサーバー、プログラムの実行環境、データベースなど、多くの技術が組み合わさっています。今回のPHPの問題は、そのうちの一つに重大な欠陥が見つかったということです。

だからこそ、特定のWebサイトの問題としてだけ捉えるのではなく、共通して使われている仕組みへの影響を考える必要があります。

Webサイトを守ることは、画面に見えている部分だけを守ることではありません。そのサイトを動かしている、見えない土台を守ることでもあるのです。

関連タグの記事一覧
Top