なぜPHPばかり狙われる?PythonやRubyではなくPHPなのか

なぜPHPばかり狙われる?PythonやRubyではなくPHPなのか

PHPの重大な穴(PHP2Shell)のニュースを見て、疑問がわきました。

「なんで今回はPHPなんだろう。PythonやRubyじゃなくて」

調べてみると、答えは「PHPが特別に悪い」ではありませんでした。

PHPだけに穴があるわけではない

まず前提として、PythonにもRubyにも穴は見つかっています。
そのたびに、ふつうに修正版が出ています。

ただ、攻撃する側から見ると、PHPはいちばん割に合う標的なのです。

なぜPHPばかり狙われる?PythonやRubyではなくPHPなのか

PHPが狙われやすい3つの理由

1. 使っているサイトが圧倒的に多い

PHPで動いているWebサイトは、世の中の7割以上と言われます。
WordPressだけでも、全サイトの4割ほどを占めます。

1つの穴で、何千万ものサイトを狙えるのです。

2. 古い版のまま放置されたサイトが多い

レンタルサーバーで作ったまま、誰も面倒を見ていないサイトがたくさんあります。
サポートの終わった古いPHPのまま動いているサイトも珍しくありません。

3. 作りの事情

  • PHPは、Webのアクセスを受けて直接動く仕組み。外からのデータに真っ先に触れる
  • PHP本体は、扱いを誤ると穴になりやすいC言語で書かれている
  • 30年近く前からの古い仕組みも、たくさん残っている

PythonやRubyは?

PHP Python・Ruby
Webサイトでの利用 とても多い PHPよりずっと少ない
よくある置き場所 レンタルサーバー(個人・小さなお店も多い) 会社のエンジニアが管理するサーバー
更新のされ方 放置されがち 比較的更新される

同じような穴が見つかっても、狙えるサイトの数がまるで違います。

たとえるなら、いちばん大きな住宅街

空き巣は、鍵が古くて、家の数が多い住宅街から回ります。
PHPは「いちばん大きな住宅街」なのです。

ほかの言語の家でも、鍵が古ければ同じように狙われます。
大事なのは、言語の好き嫌いではなく、自分の家の鍵を新しくしておくことです。

なぜPHPばかり狙われる?PythonやRubyではなくPHPなのか

今回は「選ばれた」わけではない

もうひとつ。今回は、悪い人が「PHPを選んだ」というより、研究者がPHPの穴を見つけて公表した、という流れです。
公表されたことで、攻撃者が一斉に狙いはじめた、という順番です。

自分のサイトのPHPの版の確かめ方は、こちらにまとめました。

PHPの穴はエンジンにあった レンタルサーバーのWordPressで、自分にできること・できないこと

ブログ

BLOG

PAGE TOP