小さなブログ

PHP2Shellの功罪

「PHP2Shell」と俗称されるPHPの脆弱性がにわかに社会問題となっている。PHPは言わずと知れた、ウェブサイト・ウェブサービスの構築に古くから用いられているプログラミング言語だ。その実装上の穴を突き、ある条件下で任意のコードをリモート実行できてしまう、というのがPHP2Shellの問題。しかし、そうした脆弱性は実は珍しくない。「重大な脆弱性」はあらゆる言語・システムの上に日々現れては修正されている。懸念すべきは、現実的な脅威の大きさだ。

やはりサーバーで多用される言語のひとつであるJavaにおける、2021年に発覚したリモートコード脆弱性「Log4Shell」は、簡単に実践できてしまうためあれだけの騒ぎになった。いっぽうPHP2Shellは理論上は危険なものの、実践は非現実的なまでに難しいという。ただし、「人間わざ」では。そう、ヒトには難しいことも、AIにとってはそうではない。PHP2Shellの脅威とは、AIによるクラッキングの脅威なのだ。PHP2Shellの社会問題化は、こうしたパラダイムシフトを象徴している。今回はたまたまPHPが焦点となったが、今後同様の問題が、別の言語やシステムにおいてもたびたび発生(表面化)するだろう。

以上は、すでに巷でいわれていることの繰り返しにすぎない。興味深い現象だが、個人的には「罪」よりも「功」の側面に注目している。

PHP2Shellが社会問題化したもうひとつの要因は、PHPが非常に広く普及していることと、ゆえに古いまま放置されているケースも多いことだ。そのまま対処を怠れば、いずれ乗っ取られ/寄生されて害を生む。それを避けるには閉鎖するしかないだろう。残念だけれど仕方がない。だが、こうした危機意識が改めて広まり、対処を促されるのは良いことだ。放置された脆弱なPHPサーバー(端的にはワードプレスなど)は、AI登場以前から悪用の最大の標的であり続けているのだから。

仕方がないで済まないケースもある。システム屋に保守費用を払い続けているにもかかわらず、実は基本的なセキュリティーアップデートすらされず(レガシーな依存関係といった阻害要因もないのに)長年放置されているサーバーも多いことを、自分は職業柄知っている。

そうした杜撰な“保守管理”で儲けていた業者は、今回ずいぶんあわてただろう。極端に古いPHPのシステムは、一朝一夕にアップデートできるものではない。また、PHP2Shellに限ってはその深刻さに鑑みてサポート切れの古いPHP向けにもパッチが提供されているものの、もしその適用を報告すれば、ふだんの保守をサボっていたことがバレてしまう。「え、うちのサーバーのPHPってそんなに古かったの? あんたら毎月カネ取って今まで何してたの?」

いずれにしても、客の知識のなさにつけ込んで適当な言い訳をするのだろう。が、同様の問題は今後も起き得るわけで、監視の目も厳しくなれば、いつまでも同じ言い訳は通用しない。楽観的なのを承知で言えば、そうした杜撰な連中が淘汰されるか改心することを期待している。

#bear