ワードプレス(WordPress)がウイルスに感染した結果こうなった。ウイルスと戦った経緯と回復方法

自サイトのワードプレスがウイルスに感染した。このウイルスは巧妙だったので、全然自サイトのワードプレスが感染したとは当初思わなかった。他の原因があるはずだと色々と調査した結果、ようやく自サイトのワードプレスが原因と特定できた。

その経過と、回復方法を記載する。

発見の端緒と原因究明に奔走した経緯は次に記載した。

異変に気が付いた端緒はグーグルからの検索がなくなったこと

異変はグーグルか検索からの流入が0どなり気が付いたことは先のサイトのとおり。


グーグルからの検索結果がリダイレクトされ、全然別の広告サイトに転送されるというウイルスだった。

これでは自サイトの検索流入がなくなるのも当然だ。

このウイルスは巧妙だ。通常どおりの閲覧や新規コンテンツを作成しているだけでは全く気が付かない。

私はグーグル検索結果を毎日確認していたので、異常をすぐに検知することができたが、ワードプレスを設置していても検索結果の確認を怠ると全く気が付かないということもありうる。

ウイルスが原因と特定するまでの道のり

最初からウイルスと分かったわけではない。先のサイトのとおり、最初はグーグルを疑った。その後、自サイトが原因と思い始め、まず、プラグインを疑い、全てのプラグインを無効にしてみた。

しかし、結果は変わらなかった。それどころか、無効にしてからサイトに異常が発生した。画像のとおり、管理画面にアクセスすると表示がおかしくなっていた。それだけでなく、各リンクをクリックしてもリンク先がエラーとなる。


まず、やったことはワードプレスのデバック。WP_DEBUGを有効にするとphpのエラーなどが表示される。

しかし、これには何も反映されず。まあ、ワードプレス自体がエラーを出しているわけではないので当然だ。

リンクが機能しないということは、アクセスが拒否されているということ。アクセスを制限するには.htaccessファイルの役目。当該ファイルを見ると

<FilesMatch ‘.(php|php5|phtml)$’>
Order allow,deny
Deny from all

<FilesMatch ‘^index.php$’>
Order allow,deny
Allow from all


RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

他の正常なサイトの同ファイルと比べると他のサイトの.htaccessファイルではFilesMatchの欄がない。

見事にFilesMatchコードが追加されている。これを解読すると、FilesMatchによって指定するphpへのアクセスを全て拒否、そのうえで閲覧用のindex.phpのみを許可するというコードとなっている。

なので、閲覧はできるが操作はできないというワードプレスになってしまっている。当然、自分でこんなことをするはずがないし、した覚えもない。

ここでウイルスのせいと確信した。

ワードプレスウイルスから回復させる方法

まずは、.htaccessファイルの修復。バックアップしていた元の.htaccessファイルに置き換えた。

その結果、無事に管理画面にアクセスすることができるようになった。

だが、次は、ウイルスを削除しなくてはならない。更新日を参考に特定するというが、アクセスしただけで更新日が変わるファイルもあり、参考にならなかった。

結局、どこをどうして良いか分からないので、仕方がなく、バックアップファイルでリストアすることにした。

しかし、リストアしただけでは直らない。何と巧妙なウイルスなのか。このときは見事に.htaccessファイルが改ざん後よりも、もっとひどい状態に改ざんされていた。

バックアップ、リストアは普段からAll-in-One WP Migrationを使ってやっているのだが、さすがに.htaccessファイルまでは復元しないようだ。

でも.htaccessファイルを修復しても尚直らない。

仕方がないので、インストールフォルダ毎全てを削除し、再度ワードプレスをインストールしてからリストアすることでようやく直すことができた。

このように回復までとても長い道のりとなった。

このブログを書いた段階では、リストアしてウイルスを除去したので、これで円満解決と思っていたが、実はそうではなかった。

検索結果が以前のように相応のアクセスまで戻らなかったのだ。0ではないにせよ相当低い数字まで落ち込んだのだ。これについては長くなるので別項とした。

今回のウイルス感染修復の反省点

最初、自サイトはショートカットやURLベタ打ちで開いたときには正しく表示されたので、ワードプレスに問題はないと思っていた。

以下の引用サイトにもあるように、もしもワードプレスが転送をしているなら、直接URLを指定した場合でも転送されると思っていた。

https://www.jpita.or.jp/pc/index.php?20150330
リダイレクト型マルウェアの症状
リダイレクト型マルウェアはとても厄介です。感染すると、検索サイトを利用し、検索結果のWebページを見ようとクリックすると、全く別のWebページに飛ばされてしまいます。しかもブックマークバーにブックマーク済みのURLアドレスをクリックしても、別のWebページに飛ばされてしまいます。

しかし、これは間違っていた。グーグルからの検索時にのみ転送されるという巧妙な仕掛けがウイルスにはあったのだ。

冷静に考えると、referrerを取得することでグーグルからのアクセスということは容易にワードプレスで検知できる。グーグルからのアクセスの場合のみ広告サイトに転送するというスクリプトなどは簡単に記載することができる。

すなわち、ブックマークバーにブックマーク済みのURLアドレスをクリックしても、別のWebページに飛ばされないのでウイルス感染がばれない仕様となっているということ。これは重大だ。

初動でワードプレスを疑わなかったのは反省点だ。

次に、あせっていたため、修正に重点を置いてしまった。兎も角、直すことが先で、広告サイトのアドレス、感染ファイルの特定を忘れてしまっていた。

ヤフー知恵袋で弾かれる

広告サイトで唯一、覚えているのは次のアドレスのみ。
https://www.magratheon.xyz/

不思議なことにこのアドレスについてヤフー知恵袋で聞こうとしたのだが、このURLを記載したら、図のように「このユーザーでは質問を投稿することができません」というエラーになってしまった。


次のように一字でも違うと大丈夫で、あくまでも図のURLのときに弾かれた。
https://magrateon.xyz/

これは知恵袋の禁止ワードと呼ばれるものにそのURLが登録されていることが原因。禁止ワードが質問文に入っているとエラーになり投稿ができなくなる。

そもそも、スパムサイトのアドレスで投稿ができないなら、エラー説明をユーザーのせいにする知恵袋が不親切だが、いずれにしてもスパムサイトに間違いないことがこれで明白となった。

なぜワードプレスがウイルスに感染したか

今回は、自サイトのウイルス感染が原因だった。なぜ、ウイルスに感染したのかは明らかだ。

とっても反省することなのだが、パスワードが強固ではなかった。ワードプレス指定のパスワードはとても覚えきらないと思い、もう少し簡易な文字列の組み合わせとしていた。

ブルートフォースアタック、すなわち「総当たり攻撃」を行い、容易に判明してしまったものと推測する。

すぐに強固なパスワードに変更したことに間違いない。