このガイドは、キーワードの多い意味不明なページをサイトに追加するタイプのハッキング(以下、意味不明なページによるハッキング)を対象としています。このガイドは、一般的なコンテンツ マネジメント システム(CMS)のユーザーを対象としていますが、CMS を使用していなくても役立つ内容です。
このガイドが皆様のお役に立てることを願っております。 フィードバックを送信して、サービスの改善にご協力ください。
このタイプのハックを特定する
意味不明な内容によるハッキングでは、キーワードが埋め込まれた意味不明なページがサイト内に大量に自動生成されます。これらは、作成したページではありませんが、ユーザーがクリックしたくなるような URL が含まれているページです。このハッキングの目的は、ハッキングしたページを Google 検索の検索結果に表示し、訪れた人を無関係なページにリダイレクトすることです。ユーザーがこれらの無関係なページにアクセスすると、ハッカーは収益を得ます。意味不明な文字列のハッキングの影響を受けたサイトに表示されるファイルの種類の例を次に示します。
www.example.com/cheap-hair-styles-cool.html
www.example.com/free-pictures-fun.html
www.example.com/nice-song-download-file.php
ランダムな文字で構成されたフォルダに表示され、異なる言語を使用していることもあります。
www.example.com/jfwoea/cheap-hair-styles-cool.html
www.example.com/jfwoea/free-pictures-fun.html
www.example.com/jfwoea/www-ki-motn-dudh-photo.php
www.example.com/jfwoea/foto-cewe-zaman-sekarang.php
まず、Search Console の [セキュリティの問題] ツールで、サイトにこのようなハッキングされたページが検出されていないか確認します。Google 検索ウィンドウを開き、site:_your site url_
とサイトのルートレベルの URL を入力すると、このようなページを見つけられることもあります。ハッキングされたページを含む、Google がサイトに対してインデックス登録したページが表示されます。検索結果のページをいくつかめくって、異常な URL がないか確認します。Google 検索にハッキングされたコンテンツが表示されない場合は、別の検索エンジンで同じ検索語句を使用してください。次に例を示します。
通常、ハッキングされたページへのリンクをクリックすると、別のサイトにリダイレクトされるか、意味不明なコンテンツがいっぱいのページが表示されます。ただし、ページが存在しないことを示すメッセージ(404 エラーなど)が表示されることもあります。騙されてはいけません。ハッカーは、ページがまだハッキングされているにもかかわらず、ページが消えたか修正されたとユーザーに思わせる手口をとります。コンテンツをクロウキングすることで、この操作を行います。URL 検査ツールにサイトの URL を入力して、クロールをチェックします。Fetch as Google ツールを使用すると、基盤となる隠しコンテンツを確認できます。
このような問題が発生した場合、サイトはこのタイプのハッキングの影響を受けている可能性が高いです。
ハックを修正する
削除する前に、後で復元できるように、ファイルのオフライン コピーを作成してください。クリーンアップ プロセスを開始する前に、サイト全体のバックアップを作成することをおすすめします。これを行うには、サーバーのすべてのファイルをサーバーの外部に保存するか、特定のコンテンツ マネジメント システム(CMS)に最適なバックアップ オプションを検索します。CMS を使用している場合は、データベースもバックアップします。
.htaccess
ファイルを確認する(2 ステップ)
意味不明なハックは、.htaccess
ファイルを使用してサイトから訪問者をリダイレクトします。
ステップ 1
サイト上の .htaccess
ファイルを探します。WordPress、Joomla、Drupal などの CMS を使用している場合、ファイルの場所がわからない場合は、検索エンジンで CMS の名前とともに「.htaccess ファイルの場所」を検索してください。サイトによっては、複数の .htaccess
ファイルが表示されることがあります。すべての .htaccess
ファイルの場所のリストを作成します。
ステップ 2
すべての .htaccess
ファイルを、クリーンなバージョンまたはデフォルト バージョンの .htaccess
ファイルに置き換えます。通常、.htaccess
ファイルのデフォルト バージョンは、「デフォルトの .htaccess
ファイル」と CMS の名前で検索すると見つかります。複数の .htaccess
ファイルがあるサイトの場合は、各ファイルのクリーンなバージョンを見つけて置き換えます。
デフォルトの .htaccess
が存在せず、サイトで .htaccess
ファイルを構成したことがない場合は、サイトで見つかった .htaccess
ファイルは悪意のあるものである可能性があります。念のため、.htaccess
ファイルのコピーをオフラインに保存し、サイトから .htaccess
ファイルを削除します。
その他の悪意のあるファイルを探して削除する(5 ステップ)
悪意のあるファイルを特定するのは難しく、時間もかかります。ファイルの確認には時間をかけてください。まだバックアップしていない場合は、この機会にサイトのファイルをバックアップすることをおすすめします。Google で「サイトのバックアップ」と CMS の名前を検索して、サイトのバックアップ方法をご確認ください。
ステップ 1
CMS を使用している場合は、CMS のデフォルト ディストリビューションに含まれるコア(デフォルト)ファイルと、追加したファイル(テーマ、モジュール、プラグインなど)をすべて再インストールします。これにより、これらのファイルにハッキングされたコンテンツがないことを確認できます。「再インストール」と CMS 名を Google で検索すると、再インストール手順を確認できます。プラグイン、モジュール、拡張機能、テーマがある場合は、それらも再インストールしてください。
ステップ 2
次に、残りの悪意のあるファイルや侵害されたファイルを探す必要があります。これはプロセスの中で最も難しく、時間のかかる部分ですが、この作業が完了すれば、ほぼ完了です。
このハックでは通常、.txt
ファイルと .php ファイルの 2 種類のファイルが残ります。.txt
ファイルはテンプレート ファイルであり、.php
ファイルはサイトに読み込む無意味なコンテンツの種類を決定します。
まず、.txt
ファイルを探します。サイトへの接続方法に応じて、ファイルの検索機能が表示されます。「.txt」を検索して、拡張子が .txt
のすべてのファイルを表示します。これらのほとんどは、ライセンス契約や readme ファイルなどの正当なファイルです。スパム テンプレートの作成に使用される HTML コードを含む .txt
ファイルのセットを探します。以下に、これらの悪意のある .txt
ファイルで見つかるさまざまなコードの断片を示します。
<title>{keyword}</title>
<meta name="description" content="{keyword}" />
<meta name="keywords" content="{keyword}" />
<meta property="og:title" content="{keyword}" />
ハッカーはキーワード置換を使ってスパム行為のあるページを作成します。ハッキングされたファイル全体で置き換え可能な一般的な単語が表示されることがほとんどです。
また、これらのファイルのほとんどには、スパムリンクやスパムテキストを表示ページの外側に配置する何らかのコードが含まれています。
<div style="position: absolute; top: -1000px; left: -1000px;">
Cheap prescription drugs
</div>
これらの .txt
ファイルを削除します。すべて同じフォルダにある場合は、フォルダ全体を削除します。
ステップ 3
悪意のある PHP ファイルを特定することは少し難しい作業です。サイトに 1 つまたは複数の悪質な PHP ファイルが存在する可能性があります。これらはすべて同じサブディレクトリに含まれている場合もあれば、サイト全体に散らばっている場合もあります。
すべての PHP ファイルを開いて確認する必要はありません。まず、調査する疑わしい PHP ファイルのリストを作成します。不審な PHP ファイルを特定する方法はいくつかあります。
- CMS ファイルはすでに再読み込みされているため、デフォルトの CMS ファイルまたはフォルダに含まれていないファイルのみを確認します。これにより、多数の PHP ファイルが除外され、確認するファイルがいくつか残ります。
- 最終更新日を基準にサイト上のファイルを並べ替えます。サイトがハッキングされたことを最初に確認してから数か月以内に変更されたファイルを探します。
- ファイルのサイズを基準にサイト上のファイルを並べ替えます。著しく大きいファイルを探します。
ステップ 4
不審な PHP ファイルのリストが作成されたら、それらが悪意のあるものかどうかを確認します。PHP に慣れていない場合は、このプロセスに時間がかかるため、PHP のドキュメントを参照することをおすすめします。コーディングを初めて行う場合は、ヘルプを受けることをおすすめします。一方、悪意のあるファイルを特定するために確認できる基本的なパターンがいくつかあります。
CMS を使用していて、ファイルを直接編集していない場合は、サーバーのファイルを CMS にパッケージ化されたデフォルト ファイルのリスト、およびプラグインやテーマと比較します。該当しないファイルや、デフォルト バージョンよりも大きいファイルを探します。
まず、すでに特定した不審なファイルをスキャンして、文字と数字が混在していると思われる大きなテキスト ブロックを探します。通常、大きなテキスト ブロックの前に、base64_decode
、rot13
、eval
、strrev
、gzinflate
などの PHP 関数の組み合わせが配置されます。コードブロックの例を次に示します。場合によっては、このコードがすべて 1 つの長いテキスト行に詰め込まれ、実際よりも小さく見えることがあります。
// Hackers try to confuse site owners 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"));
コードが混乱していない場合や、通常のスクリプトのように見える場合もあります。コードに問題があるかどうか不明な場合は、Google 検索セントラル ヘルプ コミュニティにアクセスしてください。経験豊富なウェブマスターがファイルの確認をお手伝いします。
ステップ 5
疑わしいファイルが判明したら、念のため、パソコンに保存してバックアップまたはローカル コピーを作成します。悪意のあるファイルが含まれている可能性もあるためです。疑わしいファイルをサイトから削除します。
サイトがクリーンかどうかを確認する
ハッキングされたファイルを削除したら、作業が報われたかどうかを確認します。先ほど特定した意味不明なページを覚えていますか?再度 Fetch as Google ツールを使用して、ページがまだ存在するかどうかを確認します。Fetch as Google で「検出されませんでした」と返された場合は、サイトの状態は良好である可能性が高いため、サイトの脆弱性の修正に進むことができます。
二度とハッキングされないようにするには
サイトの脆弱性を修正することは、サイトを修正するための重要な最後のステップです。最近の調査では、ハッキングされたサイトの 20% が 1 日以内に再びハッキングされることがわかりました。サイトがどのようにハッキングされたかを正しく把握することが大切です。調査を開始するには、スパマーがウェブサイトのハッキングでよく利用する手段のガイドをご覧ください。ただし、サイトがハッキングされた方法を特定できない場合は、サイトの脆弱性を軽減するために実施できるチェックリストを以下に示します。
- パソコンを定期的にスキャンする: 一般的なウイルス スキャナを使用して、ウイルスや脆弱性をチェックします。
- パスワードを定期的に変更する: ホスティング プロバイダ、FTP、CMS など、すべてのウェブサイト アカウントのパスワードを定期的に変更することで、サイトへの不正アクセスを防ぐことができます。アカウントごとに、安全で固有のパスワードを作成することが重要です。
- 2 要素認証(2FA)を使用する: ログインが必要なサービスでは、2 要素認証を有効にすることを検討してください。2 段階認証プロセスを使用すると、ハッカーがパスワードを盗んだとしても、ログインしにくくなります。
- CMS、プラグイン、拡張機能、モジュールを定期的に更新する: すでにこの手順を完了していると思います。多くのサイトは、古いソフトウェアを実行しているためにハッキングされます。自動更新に対応している CMS もあります。
- セキュリティ サービスに登録してサイトをモニタリングすることを検討する: サイトをモニタリングできる優れたサービスが数多くあり、料金も低額です。サイトの安全を保つため、登録することをご検討ください。
参考情報
サイトの修正に問題が解決しない場合は、以下のリソースもご利用ください。
これらのツールはサイトをスキャンし、問題のあるコンテンツを見つける場合があります。ただし、Google がサポートしている(Google 上で利用できる)ツールは VirusTotal のみです。
以下に、問題のあるコンテンツをサイト内でスキャンできるツールをいくつか示します。これらのスキャナは、問題のあるコンテンツのすべてのタイプを検出することを保証するものではありません。
Google が提供するリソースは次のとおりです。