security

WordPressはメンテナンスが大事!改ざんされたサイトを復旧させるまでの道のり

はじまりはGoogleの通告から

知り合いの制作者さん経由で、ある日私のところにこんなメールが届きました。
差出人は、個人でWordPressブログを書いている方です。

メールの内容は以下。

実は、少し前から気になっていたのですが、私のブログをグーグルで出そうとすると、
「このサイトは、第三者にハッキングされている可能性があります」と表示されます。

普段、自分では、ブログへはブックマークから入りますので、たまにしか目にしないので放置してしまっていましたが、
今日、また見て、HPの他のページには表示されないのに、ブログにだけ表示されるのが、非常に気になります。

01google

「非常に気になります」なんて呑気に言ってる場合じゃないでしょ・・・

なんですぐ対処しなかったの!と叫びたい気持ちを抑えて、まずはサイトのソースを見てみました。

ソースコードを見てみると・・・

02source-code

なんじゃこりゃー!!

海外の薬品販売サイトに大量にリンクしておりました・・・
バイアグラとかを売ってるサイトのようです。
この記事を読んでる人は、間違ってもURL直打ちして見に行ったりしないようにね!
サイトを見るだけでPCに何か仕込まれて感染しても知らないよ!

なぜかテーマファイルに「config.php」(wp-config.phpではありません。そもそもテーマファイルじゃないし)なんてものができていたので見てみると・・・

03configphp

不正コードが書き込まれていたファイルは、他にもあり、header.phpやfooter.php、functions.phpもやられてました。theme-style.phpとかwptheme.phpなどという怪しいファイル名のphpは、後から勝手に作られたものみたいです。

theme-checkを入れてみたら、出るわ出るわ、ものすごい数のWARNING!!

theme-checkって何?って方はこちらをどうぞ。

ググってみると、どうやらここのブログと同じ現象らしいことがわかりました。

なんと3ヶ月近くほっといたらしい

上記ブログによると、問題の経緯としては以下のとおり。

  1. プラグインWP-SlimStat-EXの脆弱性を付き、テーマ内にtheme-style.phpやwptheme.phpを設置された。
  2. 上記のファイルがFileManとなり、theme-style.phpをPOSTで叩き、header.php、footer.phpを書き換えられ、画面外に海外のドラッグサイトへの隠しリンクを設置された。
  3. 上記によりGoogleからペナルティを受けて、「このサイトは第三者によってハッキングされている可能性があります」という表示がされるようになった。

上記(1)が行なわれたのは、ファイルの更新日から推測して今年の1月30日のことと思われます。

このメールが来たのは、ゴールデンウィーク前だったから、
ということは、、、3ヶ月近く放置されてたってこと・・・?(遠い目)

フォーラムを見てみたところ、WP-SlimStat-EXはアクセス解析用のプラグインで、WordPress2.x系で使われていたようですが、関連記事のほとんどが2008年とか2009年ごろのものでした。
公式プラグインには、すでに存在しておらず、脆弱性がみつかったとの記事もいくつか発見。

現状まとめ

  • グーグルからペナルティを受けた
  • サイト自体は普通に閲覧できる
  • テーマファイルに大量の隠しリンクがあった
  • 管理者が入れた覚えのないSEO系のプラグインが複数設置されていた
  • WordPress管理者のIDをadminのままにし、さらにブログにはauthorが明記されるようになっていた。(ニックネームもつけていなかったので、ログインIDが外部にバレバレ)
  • Googleウェブマスターツールは使っていない(ちゃんと使っていれば、警告がすぐにメールで連絡されてきたはずでした)
  • WordPressのアップグレードを行なっていなかった
  • もちろんプラグインも最初に入れたまま放置
  • バックアップはとっていない(なんてこった・・・)

私の方でおこなったこと

  • まずは一連のパスワードを変更。(FTP/FTPS、ダッシュボード、データベース)
  • 現状をバックアップしてローカルに保存。
  • 管理者以外がアクセスできないようにプラグインを設置。ユーザーがアクセスすると、ブログは「メンテナンス中」と表示されるようにしました。
  • ローカルファイルで不正なコードが入っているかどうか確認。
  • プラグインをひとつずつチェック。この時点で、不要なプラグインが複数設置されていることを確認。
  • PHPmyAdminを使って、データベース内を確認したところ、原因の元となったWP-SlimStat-EXのテーブルが複数作成されていたことがわかりました。

結局、現状から復旧するのはあきらめて、ブログのURLも変更して新規にWordPressをインストールし直し、テーマファイルを隅から隅までチェックして、以前の投稿記事をインポートすることにしました。
古いプラグインは見直して、必要ないプラグインは全部削除。
古いWordPressを使っていたせいだと思いますが、現在の最新のWordPressの基本機能でできるようなことも、わざわざプラグインでやっていたところが多かったため、そういうものは全部削除しました。
プラグインのアップデートの手間を考えると、できるだけfunctions.phpに書けるものは書いておいた方がいいのかなーと思います。

なぜ改ざんされたのか

  • WordPressのコアをバージョンアップせずに、古いまま放置していたこと。
  • プラグインのアップデートをせずに、古いまま放置していたこと。
  • WordPress管理者のIDをadminのままにしていたこと。
    (adminは最も多く使われているIDで、変更せずに使い続けていると、パスワードを推測されて侵入されることがあります。第三者に推測されにくいIDにしておくことをおすすめします)

どういう経路で侵入したのかを確定することはできませんが、上記の基本的なセキュリティもされていなかったことは、確実に管理者の落ち度ですね・・・

「自分のサイトなんて、アクセス数も少ないし狙われるわけないよ」
「ハッキングなんて遠い世界の話。私には無縁のこと。」
「セキュリティ対策?難しそうだし、よくわかんないしー」

WordPressを管理しているにもかかわらず、こんな風に考えている人は、要注意です。

WordPressを使うなら、かならず最新バージョンを

WordPressは簡単に更新できるという意味では手軽なブログツールですが、
サーバ側の保守管理・メンテナンスが絶対必須のシステムです。
日常的にデータベースを含めたバックアップをとりながら、コアとプラグインを最新に保っておかないと、悪質な第3者に脆弱性をつかれた攻撃を受けてしまう可能性があります。

「WordPressってセキュリティ的に駄目なんでしょ?」
みたいな話を時々聞きますが、
悪いのはWordPressじゃなくてちゃんとメンテしない管理者です!

大事なことなので、もう一度言います。

WordPressのバージョンは最新にしておきましょう!

セキュリティの知識がないのなら、WordPress.comを使うという手もありますよ。

3 thoughts on “WordPressはメンテナンスが大事!改ざんされたサイトを復旧させるまでの道のり

  1. リンク先の中の人ですが、Googleウェブマスターツールは改竄された時に役に立つかどうか微妙な感じがします。
    改ざんされた時、真っ先に見たもののセキュリティの問題検出なし、後で調べましたがメールも飛んできてませんでした。
    アルゴリズムが違うのか、リアルタイムじゃないのかわかりませんが・・・。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です