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

このガイドは、大量のキーワードを含む意味不明なページをサイトに追加するハッキング手法を対象としています。このようなハッキングは、キーワードやリンクのクローキングと呼ばれています。一般的なコンテンツ マネジメント システム(CMS)のユーザーを対象としていますが、CMS を使用しなくてもこのガイドは役立ちます。

このガイドがお役に立てば幸いです。 フィードバックをお寄せください。機能の改善に役立てさせていただきます。

このタイプのハッキングを特定する

キーワードとリンクのクローキングによるハッキングでは、意味のないテキスト、リンク、画像を含むページが自動的に大量に作成されます。これらのページには元のサイトのテンプレート要素が使用されていることがあるため、一目見ただけではサイトの通常のページのように見えてしまいます。

ハッキングされたページは、Google のランキング要素を操作するために作成されます。ハッカーはしばしば、ハッキングされたページ上のリンクを別の第三者に販売して、これを収益化しようとします。ハッキングされたページから、ハッカーが金銭的な利益につながるような無関係なページに訪問者をリダイレクトすることもよくあります。

まず Search Console のセキュリティの問題ツールをチェックして、このようなハッキングされたページがサイトで Google によって検出されているかどうかを確認します。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 つのステップ)

不正なファイルの特定は、厄介で時間のかかる作業です。ファイルの確認には時間をかけてくださいまだ行っていない場合は、この時点でサイトのファイルをバックアップすることをおすすめします。サイトのバックアップ方法を確認するには、「バックアップ サイト」と CMS の名前で Google 検索を行います。

ステップ 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 で「Not Found」と応答された場合は、おそらく問題はありません。サイトの脆弱性の修正に進んでください。

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

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

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

補足資料

それでもサイトの問題を解決できない場合は、役立つリソースがいくつかあります。

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

これらは、問題のあるコンテンツがないかサイトをスキャンすることができるツールの一部です。これらのスキャナは、問題のあるコンテンツをすべて特定することを保証するものではありません。

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