10/21(水)19:45、私のスマートフォンにお客さんからメッセージが来た。
「PHPに深刻な脆弱性あり」という趣旨だった。
幸いにして私がお客さんに提供している業務アプリはPythonで作っているため、今回は緊急の対応不要だった。ちょうどその日はマリノスの試合を観戦していたので帰宅後に情報を収集したら、けっこうIT業界では騒ぎになっている。

そして思い出した。自分の運用しているこのブログはWordPressというPHPベースのシステムだ。
ただしブログで個人情報は扱っていないし、日頃からPHPのメンテナンスはしているので焦る必要もない。夜も遅かったのでその日は寝て、翌朝にPHPのバージョンアップ対応をした。作業自体は30分ほどで終わった。PHPやWordPressのバージョンアップは不定期だが対応しているので、私にとっては日常の業務の一つでしかない。
そして、一日が経過したがまだPHP関連の報道は続いている。そこで思ったのだが、PHPの「緊急」の脆弱性の対応なんて過去に何度もあった。調べたら過去10年に60回くらいある。それなのに、なぜ今回はこんな騒動になっているのだろうか。
目次
- そもそもPHPって何?
- 過去にもあったPHPの脆弱性の修正
- マスコミがPHPの脆弱性ごときで騒ぐ理由
- 一斉にウェブサービスが止まった理由
- PHPのウェブサイトはなぜ多いのか
- PHPやシステムのバージョンアップは今後も定期的にある
- 危険なPHPサイトの見分け方と個人でできる対策
- ホームページ運営側の注意点
そもそもPHPって何?
PHPというのはホームページを記述するための言語です。
ホームページにおいて、人がブラウザで見る部分はHTMLで記述され、個人情報などのデータと連動して処理する部分はサーバーサイドという。PHPはこの二つを一つの言語で記述できるため、ウェブシステムの現場で重宝された。
実際にホームページを作ったことのある人なら分かると思うが、PHPはHTMLの延長のような感覚で簡単に複雑なことができる。AIに「PHPでhello worldを表示するサンプルを提示して」とでも入力すれば、すぐにサンプルのPHPが返ってくる。

それを見れば、PHPを知らない人でもなんとなく分かるだろう。プログラム学習者の中にも最初はホームページ用のプログラムとしてPHPを勉強したという人は多いはず。かくいう私もそうだった。
過去にもあったPHPの脆弱性の修正
PHPに限らずあらゆるプログラム言語は常にバージョンアップされている。Windowsが定期敵にバージョンアップするのと同じ。PHPのバージョンアップが発表されるたびに、ちゃんとシステムに運用コストをかけている団体や企業なら、システム運用側は人手をかけて更新してきた。
一口に脆弱性の修正といっても緊急度の高い重大なものもあれば、そこまで急ぐ必要のない修正もある。どちらにせよ不定期に脆弱性の修正は日常的にあったのだ。
つまり、いつも通り。
過去にも緊急で重大な脆弱性の修正というのは何度もあり、その都度システム管理者側はそれに対応してきた。したがってITエンジニアとしてはいつも通り淡々と脆弱性の対応をすればいいだけなのだが、AIの驚異やら個人情報漏洩が相次いでその脅威が叫ばれる中で、さらにたまたま緊急で重大な脆弱性が発表された。
つまり世の中がITシステムのセキュリティに敏感な時期にPHPの脆弱性が発表されたわけだ。そこにマスコミが目をつけた。
マスコミがPHPの脆弱性ごときで騒ぐ理由
たいしたことがないのに煽り立てて騒ぐのは稼ぎたいから、これはいつも通り。そして個人情報漏洩を放置する企業は許さない、それを告発する自分たちマスコミは正しい、という空気を醸成し大衆を煽る。これもいつも通り。
毎日のように「個人情報1177万件が流出!」と大々的に報道され、さもITシステムがやばいかのような雰囲気を作り出すのには強い違和感がある。この既視感、新型コロナウィルスの感染者数の報道と図式が似ている。
こういう状況になると、一度もウェブサイトを作った事のない人や、システムのことなど何も知らない人が「PHPやばい」とか言い始め、しまいには「自宅に怖い人が押しかけて怖い目に遭ったらどうしよう」と妄想する。
そもそも1177万とは、1177万人ではない。つまり同じ人が複数のアカウントを持っていたり、一部の人が大量にアカウントを作成したりということはあり得る。ここ数ヶ月の情報流出の件数は日本人の総人口を超えていると思うくらい多い。個人情報流出があった事実なのだろうが、伝え方が盛りすぎなのである。
ちなみに本当にやばい情報流出は表に出ません。管理者が気づかないので。
一斉にウェブサイトが停止した理由
多くのウェブサイトが一斉にサービスを停止した理由はいたって単純だ。
サイバー攻撃で個人情報漏洩が相次ぐ中で脆弱性が発見されたので、企業側も急ぎで対応せざるを得ない。世の中がここまで敏感でなければ稼働中のシステムを止めてまでバージョンアップをすることはなかっただろう。
資本の論理に則って考えるならば、経営者はPHPのバージョンアップを放置して個人情報が漏洩すると世間に叩かれて企業イメージが悪化し、不買運動や利用者減につながり売上が下がるという計算が働くので、障害が発生する前に多くの企業が一斉に意図的にサービスを停止して緊急メンテナンスをする決断をした。
無理してシステムを動かし続けて得られる利益より、個人情報が漏洩して受ける損害のほうが大きいと判断されたのだ。官公庁も世間に叩かれたくないからそうした。マスコミが騒いでいて、企業側に世間に叩かれたら怖いという恐怖が連鎖して、現実にサービスが停止した、これが私の見立てだ。
今回の脆弱性の発表は幸いにも週末や連休中でなかった。徹夜したITエンジニアの人たちは多いだろうが、通常営業日での対応となったのが救いだ。これがゴールデンウィークやら正月だったらIT現場で働く人たちは悲惨なことになっていただろう。
PHPのウェブサイトはなぜ多いのか
「PHPはインターネットの7割」みたいな意味不明な表現は無視していい。一方で、たしかにPHPで開発されたウェブサイトが多いのは間違いない。
ここまで多いと業界のスタンダードというか、「WebシステムはPHP」みたいなモデルが発注側の頭にできる。こういう状況になると、例えば以下のようなことが起きる。行政や自治体の公募案件を例に説明する。
人差し指だけでパソコンのキーボードを打つくらいしかできないITリテラシーの低いおじさんたちが、世の中のウェブサイトの主流がPHPであるというだけで、メリットもデメリットも何も考えずPHPを条件にして公募を出してしまう。そしてPHP案件の公募に対応可能なWeb制作会社も多いので、雪だるま式にPHPのウェブサイトが増えていった。これは行政の例だが民間でも事情は似たようなものだ。
PHPやシステムのバージョンアップは今後も定期的にある
この記事を書いている時点でPHPの最新バージョンは8.5だ(ちなみにこのブログも8.5)。そしてやがて8.5.1とか8.5.7、8.6のように時間の経過とともにバージョンアップされていく。PHPに限らずあらゆるプログラミンング言語やITシステムには常にバージョンアップがある。
今回のようなPHPの脆弱性の緊急対応があると、今後システムの脆弱性がある度にシステム運営者は緊急でサービスを止める。台風のときに電車や飛行機がとまるのは当然だが、それと同じように緊急メンテによるITサービス停止は仕方ないという空気ができるようになるだろう。
危険なPHPサイトの見分け方と個人でできる対策
断定はできないが、手入れされていない危険な、言わば「野良のPHPサイト」を見分ける手段はある。
まずURLの末尾に「.php」とつけばほぼ確実にphpだ。ただしphpだから必ず「.php」とつくとは限らない。今どきつくほうが珍しいので、「.php」とつくと古いシステムである可能性が高い。
また、今回の騒動ですぐにメンテナンス中に切り替わったサイトはちゃんと費用をかけて手入れされていう証拠だ。システムの規模によるので一概には言えないが、一日くらいでメンテが終わったらかなり優秀だと思う。小さいの規模そうなのに何日もメンテナンスに時間がかかっているということは、日頃からPHPのメンテをしておらず、今回焦って対応している可能性が高い。
それでもメンテしているのだから、まだいいほうだろう。
問題は、今回のPHP騒動で何事もなく表示され続け、しかもURLの末尾に.phpとつくようなサイトだ。これはかなり怪しいので、日頃使っているウェブシステムでこういうのがあれば、運営者に問い合わせをしてもいいかもしれない。
利用者としての防御策は、例えば予約システムなど使っている場合は、日常から手元にバックアップを取るといい。データのダウンロードは面倒でも画面をスクリーンショットで保存すれば、いざという時にだいぶ違うだろう。
ホームページ運営側の注意点
世の中には休眠状態や昔のバージョンのPHPのままのサイトがたくさんある。費用だったり、リテラシー不足で管理されていない言わば「野良のPHPサイト」だ。企業側がこういうウェブサイトを放置すると、以下のようなことが起こり得る。
- サーバーが乗っ取られてホームページが閲覧できなくなる。バックアップがない場合は悲惨です
- サーバーがサイバー攻撃の踏み台に利用され、実害が出たら警察の捜査が入る
- 気がつかないままお客さんや社員の情報が流出し続ける
十分ご注意ください。
