このガイドは、大量のキーワードを含んだ意味不明なページをサイトに追加するハッキング手法を対象としています。これを、キーワードとリンクのクローキングと呼びます。一般的なコンテンツ管理システム(CMS)のユーザー向けに設計されたガイドですが、CMS を利用していなくても参照できます。
このガイドがお役に立てば幸いです。ぜひフィードバックをお寄せください。機能の改善に役立てさせていただきます。
このタイプのハッキングを特定する
キーワードとリンクのクローキングによるハッキングでは、意味のないテキスト、リンク、画像を含む大量のページが自動的に生成されます。これらのページには元のサイトのテンプレート要素が使用されていることがあるため、一目見ただけでは他のページと見分けがつかない場合もあります。
ハッキングされたページは、Google のランキング要素を操作するために作成されます。多くの場合、ハッカーはハッキングされたページのリンクをさまざまな第三者に販売して、これを収益化しようとします。多くの場合、ハッキングされたページから、ハッカーが金銭を獲得できるポルノサイトなど、無関係なページに訪問者がリダイレクトされます。
まず Search Console のセキュリティの問題ツールで、サイト上でこうしたハッキングされたページが Google によって検出されているかどうかを確認します。Google 検索ウィンドウを開き、「site:_your site url_
」とサイトのルートレベルの URL を入力することで、このようなページを検出することもできます。ハッキングされたページを含め、Google がサイトでインデックスに登録したページが表示されます。検索結果を何ページか見て、通常と異なる URL がないか調べます。ハッキングされたコンテンツが Google 検索で見当たらない場合は、別の検索エンジンで同じ検索キーワードを使用してください。以下に例を示します。
通常、ハッキングされたページへのリンクをクリックすると、別のサイトにリダイレクトされるか、意味不明な内容でいっぱいのページが表示されます。ただし、ページが存在しないことを示すメッセージ(404 エラーなど)が表示されることもあります。騙されないで!ハッカーは、まだハッキングされているのに、そのページがなくなった、または修正されたとユーザーを欺こうとします。このハッキングは、コンテンツのクローキングです。URL 検査ツールにサイトの URL を入力して、クローキングを確認します。Fetch as Google ツールを使うことで、下に隠れているコンテンツを確認できます。
こうした問題が見られる場合、サイトはこのタイプのハッキングの影響を受けている可能性があります。
ハッキングの問題を解決する
始める前に、後で復元が必要になった場合に備えて、ファイルを削除する前にオフライン コピーを作成してください。さらに、クリーンアップ プロセスを開始する前に、サイト全体をバックアップすることをおすすめします。サーバー上のすべてのファイルをサーバー外の場所に保存するか、ご利用のコンテンツ マネジメント システム(CMS)に最適なバックアップ オプションを探します。CMS を使用している場合は、データベースもバックアップする必要があります。
.htaccess
ファイルを確認する(3 ステップ)
キーワードとリンクのクローキングによるハッキングでは、.htaccess
ファイルを使用して、サイトのクローキングされたページを自動的に作成します。必須ではありませんが、Apache の公式サイトで .htaccess
の基本を確認することで、ハッキングがサイトに与える影響について理解を深めることができます。ただし、これは必須ではありません。
ステップ 1
サイトで .htaccess
ファイルを見つけます。WordPress、Joomla、Drupal などの CMS を使用しているが、どこにあるかわからない場合は、検索エンジンで「.htaccess ファイルの場所」と CMS の名前を検索します。サイトによっては、複数の .htaccess
ファイルが表示されることがあります。.htaccess
ファイルの場所をすべてリストアップします。
ステップ 2
.htaccess
ファイルを開いて、ファイルの内容を表示します。このファイルで、次のようなコードの 1 行を特定できるはずです。
RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]
この行の変数は変更可能です。cj2fa
と tobeornottobe
は、文字や単語を任意に組み合わせて使用できます。重要なのは、この行で参照されている .php
を特定することです。
.htaccess
ファイルに記載されている .php
ファイルを書き留めます。この例では、.php
ファイルの名前は injected_file.php
ですが、実際には .php
ファイルの名前はそれほど明白ではありません。これは通常、horsekeys.php
、potatolake.php
などの無害な単語のランダムなセットです。これは悪意のある .php
ファイルである可能性が高いため、見つけて後で削除する必要があります。
ステップ 3
すべての .htaccess
ファイルを、クリーンなバージョンまたはデフォルト バージョンの .htaccess
ファイルに置き換えます。通常、.htaccess
ファイルのデフォルト バージョンは、「default .htaccess
ファイル」と CMS の名前で検索できます。複数の .htaccess
ファイルがあるサイトの場合は、各ファイルのクリーンなバージョンを見つけて置き換えます。
デフォルトの .htaccess
が存在しておらず、.htaccess
ファイルが一度もサイト上で構成されていないなら、サイト上で見つかった .htaccess
ファイルがおそらく悪意があるでしょう。万一に備えて .htaccess
ファイルのコピーをオフラインに保存し、サイトから .htaccess
ファイルを削除します。
その他の悪意のあるファイルを探して削除する(5 ステップ)
悪意のあるファイルの特定は難しく、数時間かかることがあります。時間をかけてファイルを確認してください。まだ行っていない場合は、ここでサイトのファイルをバックアップすることをおすすめします。サイトをバックアップする方法については、Google で「バックアップ サイト」と CMS の名前で検索し、
ステップ 1
CMS を使用している場合は、CMS のデフォルトのディストリビューションに付属のコア(デフォルト)ファイルと、追加したもの(テーマ、モジュール、プラグインなど)をすべて再インストールします。これにより、それらのファイルにハッキングされたコンテンツが含まれていないことを確認できます。再インストールの手順については、Google で「再インストール」と CMS 名を検索してください。プラグイン、モジュール、拡張機能、テーマがある場合は、それらも再インストールします。
ステップ 2
まず、先ほど .htaccess
ファイルで特定した .php
ファイルを探します。サーバー上のファイルへのアクセス方法に応じて、なんらかの検索機能が必要になります。悪質なファイル名を検索します。見つかった場合は、まずバックアップ コピーを作成し、復元が必要になったときのために別の場所に保存してから、サイトから削除してください。
ステップ 3
悪意のあるファイルや不正使用されたファイルが他にないかどうかを確認します。前の 2 つのステップで悪意のあるファイルをすべて削除した可能性もありますが、サイト上にさらに不正使用されたファイルがある場合に備え、以下のステップを実行することをおすすめします。
すべての PHP ファイルを開いて確認する必要があると考えられ、悩まないでください。まず、調査対象の疑わしい PHP ファイルのリストを作成します。疑わしい PHP ファイルを判断する方法は次のとおりです。
- すでに CMS ファイルを再読み込みしている場合は、デフォルトの CMS ファイルやフォルダに含まれないファイルのみを確認してください。これにより、多数の PHP ファイルが除外され、確認すべきファイルがいくつか残されます。
- 最終更新日を基準にサイト上のファイルを並べ替えます。サイトがハッキングされていることに気づいてから数か月以内に変更されたファイルを探します。
- ファイルのサイズを基準にサイト上のファイルを並べ替えます。著しく大きいファイルを探します。
ステップ 4
不審な PHP ファイルのリストを作成したら、悪意のあるファイルかどうかを確認します。PHP に不慣れな場合、このプロセスは時間がかかることがあります。PHP のドキュメントを再確認することを検討してください。コーディングを初めて行う場合は、ヘルプを使用することをおすすめします。それまでは、悪意のあるファイルを特定するための基本的なパターンについて説明します。
CMS を使用していて、それらのファイルを直接編集する習慣がない場合は、サーバー上のファイルを、CMS にパッケージ化されているデフォルト ファイルのリストと、任意のプラグインやテーマと比較します。属していないファイルや、サイズがデフォルトより大きいと思われるファイルを探します。
まず、特定した不審なファイルをスキャンして、文字と数字が乱雑に見えるように見える大きなテキスト ブロックを探します。通常、大きなテキスト ブロックの前には、base64_decode
、rot13
、eval
、strrev
、gzinflate
などの PHP 関数の組み合わせが配置されます。コードブロックの例を以下に示します。場合によっては、このコードがすべて 1 行のテキストに詰め込まれ、実際よりも小さく見えることがあります。
// Hackers try to confuse webmasters by encoding malicious code into
// blocks of texts. Be wary of unfamiliar code blocks like this.
base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));
コードが乱雑ではなく、通常のスクリプトのように見える場合もあります。コードが不適切かどうかわからない場合は、ウェブマスター ヘルプ フォーラムをご利用ください。経験豊富なウェブマスターがファイルの確認をお手伝いします。
ステップ 5
疑わしいファイルを特定したら、念のためパソコンに保存し、バックアップまたはローカルコピーを作成して、不審なファイルを削除します。
サイトに問題がないかどうかを確認する
ハッキングされたファイルを修復したら、努力が報われているかどうかを確認します。先ほど確認した意味不明な内容のページがあったことを覚えていますか?Fetch as Google ツールを再度使用して、まだ存在しているか確認します。 Fetch as Google で「Not Found」と応答された場合は、状態は良好である可能性が高いため、サイトの脆弱性の修正に進んでください。
二度とハッキングされないようにするには
サイトの脆弱性の修正は、サイトを修正するための重要な最後のステップです。最近の調査では、ハッキングされたサイトの 20% が 1 日以内に再びハッキングされることがわかっています。サイトがハッキングされた経緯を 把握することは有益です調査を始めるにあたり、スパマーがウェブサイトのハッキングでよく利用する手段のガイドをご覧ください。ただし、サイトがどのようにハッキングされたかを特定できない場合は、サイトの脆弱性を減らすためのチェックリストを以下に記載します。
- パソコンを定期的にスキャンする: 一般的なウイルス スキャナを使用して、ウイルスや脆弱性を確認します。
- パスワードを定期的に変更する: ホスティング プロバイダ、FTP、CMS などのすべてのウェブサイト アカウントのパスワードを定期的に変更することで、サイトへの不正アクセスを防ぐことができます。アカウントごとに一意の安全なパスワードを作成することは重要です
- 2 要素認証(2FA)を使用する: ログインが必要なすべてのサービスで 2 要素認証を有効にすることを検討してください。2 要素認証を使用すると、ハッカーがパスワードを盗んでもログインを難しくできます。
- CMS、プラグイン、拡張機能、モジュールを定期的に更新する: このステップはすでに完了していることと思います。多くのサイトは古いソフトウェアが 実行されていることが原因でハッキングされます自動更新に対応している CMS もあります。
- サイトをモニタリングするために、セキュリティ サービスへの登録を検討する: わずかな料金でサイトのモニタリングに役立つ優れたサービスが数多く存在します。サイトを安全に保つために、パートナー事業者に登録することをご検討ください。
補足資料
それでもサイトの修正がうまくいかない場合は、以下のリソースが参考になります。
こうしたツールを使ってサイトをスキャンし、問題のあるコンテンツを検出できる場合があります。ただし、Google がサポートしている(Google 上で利用できる)ツールは VirusTotal のみです。
Virus Total、Aw-snap.info、Sucuri Site Check、Quttera: これらは、サイトをスキャンして問題のあるコンテンツがないかどうかを調べることができる一部のツールです。ただし、こうしたスキャナは、あらゆるタイプの問題のあるコンテンツを識別できることを保証するものではありません。
Google が提供するリソースは次のとおりです。