キーワードとリンクのクローキングによるハッキングを解決する

このガイドは、キーワードを大量に含む意味不明なページをサイトに追加するタイプのハック(以下、クローキング キーワードとリンク ハック)を対象としています。このガイドは、一般的なコンテンツ マネジメント システム(CMS)のユーザーを対象としていますが、CMS を使用していない場合でも役立つ内容です。

このガイドが皆様のお役に立てることを願っております。 フィードバックを送信して、サービスの改善にご協力ください。

このタイプのハックを特定する

キーワードとリンクのクローキングによるハッキングでは、意味不明なテキスト、リンク、画像を含む大量のページが自動的に生成されます。これらのページには元のサイトのテンプレート要素が使用されていることがあるため、一目見ただけではサイトと区別がつきにくく、コンテンツをよく読むまで気付かないこともあります。

ハッキングされたページは、Google のランキング要因を操作するために作成されています。ハッカーは、ハッキングしたページのリンクを別の第三者に販売することで、収益化を図ろうとすることがあります。ハッキングされたページは、ハッカーが収益を得ることができる無関係なページにユーザーをリダイレクトすることもよくあります。

まず、Search Console の [セキュリティの問題] ツールで、サイトにこのようなハッキングされたページが検出されていないか確認します。Google 検索ウィンドウを開き、site:_your site url_ とサイトのルートレベルの URL を入力すると、このようなページを見つけられることもあります。ハッキングされたページを含む、Google がサイトに対してインデックス登録したページが表示されます。検索結果のページをいくつかめくって、異常な URL がないか確認します。Google 検索にハッキングされたコンテンツが表示されない場合は、別の検索エンジンで同じ検索語句を使用してください。次に例を示します。

このハッキングによって生成された検索結果。
ハッキングされたページが Google 検索の検索結果に表示されます。

通常、ハッキングされたページへのリンクをクリックすると、別のサイトにリダイレクトされるか、意味不明なコンテンツがいっぱいのページが表示されます。ただし、ページが存在しないことを示すメッセージ(404 エラーなど)が表示されることもあります。騙されてはいけません。ハッカーは、ページがまだハッキングされているにもかかわらず、ページが消えたか修正されたとユーザーに思わせる手口をとります。コンテンツをクロウキングすることで、この操作を行います。URL 検査ツールにサイトの URL を入力して、クロールをチェックします。Fetch as Google ツールを使用すると、基盤となる隠しコンテンツを確認できます。

このような問題が発生した場合、サイトはこのタイプのハッキングの影響を受けている可能性が高いです。

このハックで作成されたページの例。
このハックで作成されたページの例。

ハックを修正する

削除する前に、後で復元できるように、ファイルのオフライン コピーを作成してください。クリーンアップ プロセスを開始する前に、サイト全体のバックアップを作成することをおすすめします。これを行うには、サーバーのすべてのファイルをサーバーの外部に保存するか、特定のコンテンツ マネジメント システム(CMS)に最適なバックアップ オプションを検索します。CMS を使用している場合は、データベースもバックアップします。

.htaccess ファイルを確認する(3 ステップ)

キーワードとリンクのクローキングによるハッキングでは、.htaccess ファイルを使用して、サイトにクローキング ページが自動的に作成されます。Apache の公式サイトで .htaccess の基本を理解しておくと、ハックがサイトにどのように影響しているかを把握しやすくなりますが、必須ではありません。

ステップ 1

サイト上の .htaccess ファイルを探します。WordPress、Joomla、Drupal などの CMS を使用している場合、ファイルの場所がわからない場合は、検索エンジンで CMS の名前とともに「.htaccess ファイルの場所」を検索してください。サイトによっては、複数の .htaccess ファイルが表示されることがあります。すべての .htaccess ファイルの場所のリストを作成します。

ステップ 2

.htaccess ファイルを開いて、ファイルの内容を確認します。次のようなコード行を探します。

RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]

この行の変数は変更可能です。cj2fatobeornottobe は、文字や単語を任意に組み合わせることができます。重要なのは、この行で参照されている .php を特定することです。

.htaccess ファイルに記載されている .php ファイルをメモします。この例では、.php ファイルの名前は injected_file.php ですが、実際にはファイル名はそれほどわかりやすくありません。通常は、horsekeys.phppotatolake.php などの無害な単語がランダムに設定されます。これは悪意のある .php ファイルである可能性があり、後で追跡して削除する必要があります。

ステップ 3

すべての .htaccess ファイルを、クリーンなバージョンまたはデフォルト バージョンの .htaccess ファイルに置き換えます。通常、.htaccess ファイルのデフォルト バージョンは、「デフォルトの .htaccess ファイル」と CMS の名前で検索すると見つかります。複数の .htaccess ファイルがあるサイトの場合は、各ファイルのクリーンなバージョンを見つけて置き換えます。

デフォルトの .htaccess が存在せず、サイトで .htaccess ファイルを構成したことがない場合は、サイトで見つかった .htaccess ファイルは悪意のあるものである可能性があります。念のため、.htaccess ファイルのコピーをサイトからオフラインに保存します。

その他の悪意のあるファイルを探して削除する(5 ステップ)

悪意のあるファイルを特定するのは難しく、時間もかかります。ファイルの確認には時間をかけてください。まだバックアップしていない場合は、この機会にサイトのファイルをバックアップすることをおすすめします。Google で「サイトのバックアップ」と CMS の名前を検索して、サイトのバックアップ方法をご確認ください。

ステップ 1

CMS を使用している場合は、CMS のデフォルト ディストリビューションに含まれるコア(デフォルト)ファイルと、追加したファイル(テーマ、モジュール、プラグインなど)をすべて再インストールします。これにより、これらのファイルにハッキングされたコンテンツがないことを確認できます。「再インストール」と CMS 名を Google で検索すると、再インストール手順を確認できます。プラグイン、モジュール、拡張機能、テーマがある場合は、それらも再インストールしてください。

ステップ 2

まず、先ほど .htaccess ファイルで特定した .php ファイルを探します。サーバーのファイルにアクセスする方法に応じて、なんらかの検索機能が必要です。悪意のあるファイル名を検索します。見つかった場合は、復元が必要になった場合に備えて、まずバックアップ コピーを作成して別の場所に保存してから、サイトから削除します。

ステップ 3

残っている悪意のあるファイルや不正使用されたファイルがないか確認します。前の 2 つの手順で悪意のあるファイルがすべて削除されている可能性がありますが、サイトに不正使用されたファイルが他にもある可能性があるため、次の手順を実施することをおすすめします。

すべての PHP ファイルを開いて確認する必要があると思うと、圧倒されるかもしれませんが、まず、調査する不審な PHP ファイルのリストを作成します。不審な PHP ファイルを特定する方法はいくつかあります。

  • CMS ファイルをすでに再読み込みしている場合は、デフォルトの CMS ファイルまたはフォルダに含まれていないファイルのみを確認します。これにより、多くの PHP ファイルが除外され、確認するファイルがいくつか残ります。
  • 最終更新日を基準にサイト上のファイルを並べ替えます。サイトがハッキングされたことを最初に確認してから数か月以内に変更されたファイルを探します。
  • ファイルのサイズを基準にサイト上のファイルを並べ替えます。著しく大きいファイルを探します。

ステップ 4

不審な PHP ファイルのリストが作成されたら、それらが悪意のあるものかどうかを確認します。PHP に慣れていない場合は、このプロセスに時間がかかるため、PHP のドキュメントを参照することをおすすめします。コーディングを初めて行う場合は、ヘルプを受けることをおすすめします。一方、悪意のあるファイルを特定するために確認できる基本的なパターンがいくつかあります。

CMS を使用していて、ファイルを直接編集していない場合は、サーバーのファイルを CMS にパッケージ化されたデフォルト ファイルのリスト、およびプラグインやテーマと比較します。該当しないファイルや、デフォルト バージョンよりも大きいファイルを探します。

まず、すでに特定した不審なファイルをスキャンして、文字と数字が混在していると思われる大きなテキスト ブロックを探します。通常、大きなテキスト ブロックの前に、base64_decoderot13evalstrrevgzinflate などの PHP 関数の組み合わせが配置されます。コードブロックの例を次に示します。場合によっては、このコードがすべて 1 つの長いテキスト行に詰め込まれ、実際よりも小さく見えることがあります。

// Hackers try to confuse webmasters by encoding malicious code into
// blocks of text. Be wary of unfamiliar code blocks like this.

base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));

コードが混乱していない場合や、通常のスクリプトのように見える場合もあります。コードに問題があるかどうか不明な場合は、ウェブマスター ヘルプ フォーラムにアクセスしてください。経験豊富なウェブマスターがファイルの確認をお手伝いします。

ステップ 5

疑わしいファイルが判明したら、念のため、パソコンに保存してバックアップまたはローカル コピーを作成します。悪意のあるファイルが含まれている可能性もあるためです。疑わしいファイルをサイトから削除します。

サイトがクリーンかどうかを確認する

ハッキングされたファイルを削除したら、作業が報われたかどうかを確認します。先ほど特定した意味不明なページを覚えていますか?再度 Fetch as Google ツールを使用して、ページがまだ存在するかどうかを確認します。Fetch as Google で「検出されませんでした」と返された場合は、サイトの状態は良好である可能性が高いため、サイトの脆弱性の修正に進むことができます。

二度とハッキングされないようにするには

サイトの脆弱性を修正することは、サイトを修正するための重要な最後のステップです。最近の調査では、ハッキングされたサイトの 20% が 1 日以内に再びハッキングされることがわかりました。サイトがどのようにハッキングされたかを正しく把握することが大切です。調査を開始するには、スパマーがウェブサイトのハッキングでよく利用する手段のガイドをご覧ください。ただし、サイトがハッキングされた方法を特定できない場合は、サイトの脆弱性を軽減するために実施できるチェックリストを以下に示します。

  • パソコンを定期的にスキャンする: 一般的なウイルス スキャナを使用して、ウイルスや脆弱性をチェックします。
  • パスワードを定期的に変更する: ホスティング プロバイダ、FTP、CMS など、すべてのウェブサイト アカウントのパスワードを定期的に変更することで、サイトへの不正アクセスを防ぐことができます。アカウントごとに、安全で固有のパスワードを作成することが重要です。
  • 2 要素認証(2FA)を使用する: ログインが必要なサービスでは、2 要素認証を有効にすることを検討してください。2 段階認証プロセスを使用すると、ハッカーがパスワードを盗んだとしても、ログインしにくくなります。
  • CMS、プラグイン、拡張機能、モジュールを定期的に更新する: すでにこの手順を完了していると思います。多くのサイトは、古いソフトウェアを実行しているためにハッキングされます。自動更新に対応している CMS もあります。
  • セキュリティ サービスに登録してサイトをモニタリングすることを検討する: サイトをモニタリングできる優れたサービスが数多くあり、料金も低額です。サイトの安全を保つため、登録することをご検討ください。

参考情報

サイトの修正に問題が解決しない場合は、以下のリソースもご利用ください。

これらのツールはサイトをスキャンし、問題のあるコンテンツを見つける場合があります。ただし、Google がサポートしている(Google 上で利用できる)ツールは VirusTotal のみです。

以下に、問題のあるコンテンツをサイト内でスキャンできるツールをいくつか示します。これらのスキャナは、問題のあるコンテンツのすべてのタイプを検出することを保証するものではありません。

Google が提供するリソースは次のとおりです。