先月、2月17日のsucuriのブログによると、interconnect search/replaceを狙った攻撃が数か月前から発生している模様。
WordPress Security – Fake TrafficAnalytics Website Infection
この攻撃の概要は放置されたDBの置換ツールを使ってサイトコンテンツ内に悪意のあるスクリプトを埋め込むというもの。
今回標的とされたsearch/replaceはWordPressやDrupalのDBをシリアライズされたデータを壊さずにブラウザ上から置換する手段として定番であり、自分も以前にサイト移転に際し使用したことがある。
難しいことを考えずに置換が行なえ便利なのだが、ツール内にも注意書きがあるように使用後は必ずこのツールをサーバーから削除しなくてはいけない。
というのも、このツールはWordPressやDrupalの設定ファイルからDBの設定を読み込み、接続情報の入力の手間を省いてくれる。(なおそのパスワードも表示される)
便利だが、他者にアクセスされれば誰にでもDBのユーザー名、パスワードが表示され、そして置換が行われてしまうかもしれない。
もちろんツール自体は正当なものであり、sucuriのガイドやWordPressのCodexでも紹介されているもの。
今回ターゲットとされたのは単一ファイルでファイル名が何も考えずに設置していたらsearchreplacedb2.php
のままであろうバージョン2系だったらしい。生憎この2系には自己削除の機能は用意されていなかった。

なおsucuriではインデックスされていればGoogleでinurl
演算子をつけて検索すると簡単に発掘できることが皮肉的に指摘されている。
現行のバージョン3系は複数ファイルで構成されてい、サブディレクトリに設置して利用するのを前提としているよう。(ルートディレクトリにも置けるが、index.php
が被ることになる)
パスが一意ではない可能性が高くなり、周回botは避けれるかもしれないが、アクセスされれば同じく終わりである。
バージョン3系には自己削除機能が用意されているので使った後はちゃんと削除しよう。(ディレクトリごと削除される。ルートディレクトリの場合は削除できない)
この手のツールは確かに便利だが、後始末を忘れていたり使い方を間違っていると悲惨な結果を招きかねない。
もし過去に使った覚えがある人はその時のゴミが残っていないか、今一度確認して欲しい。
もしこのようなツールを以後使うことがあれば、その後消し忘れの無いよう注意して欲しい。
そもそもWP-CLIで済ませていればそのような心配も必要ないのだが、そういうわけにもいかないであろう……
DBを自由に書き換えるツールである以上、その影響が広いことは容易に想像できる。
先日の脆弱性(たしかにこれは重大な問題であったが)に気を取られて他の問題を見落としていた人も多いようだが、こういったヒューマンエラーも脆弱性となる。(むしろexecPHPとかとの組み合わせで言えばこっちのほうが大問題になるに決まっている。)……注意して欲しい。