日本語キーワードによるハッキングを解決する

このガイドは、サイト上に自動生成された日本語テキストを作成するタイプのハッキング(日本語キーワード ハッキング)専用に作成されています。このガイドは、一般的なコンテンツ マネジメント システム(CMS)のユーザーを対象としていますが、CMS を使用していなくても役立つ内容です。

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

一般に、日本語キーワードによるハッキングでは、ランダムに生成されたディレクトリ名(http://example.com/ltjmnjp/341.html など)で、サイト上に日本語テキストを含む新しいページが作成されます。こうしたページは、偽ブランド品を販売するストアへのアフィリエイト リンクを収益源としているのが特徴です。また、Google 検索の検索結果への表示も目的としています。これらのページの例を以下に示します。

日本語のキーワード ハックが適用されたページの例。
日本語キーワードによるハッキングによって生成されたテキストのページ。

このタイプのハッキングでは、通常、ハッカーは Search Console で自分自身をプロパティ所有者として追加し、地域ターゲティングやサイトマップなどのサイトの設定を操作して収益を増やします。知らないユーザーが Search Console でサイトの所有者であることを確認したという通知が届いた場合は、サイトがハッキングされた可能性が高いです。

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

検索に表示されるハッキングされたサイトの例。
ハッキングされたページが Google 検索の検索結果に表示されます。

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

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

ハックを修正する

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

Search Console から新たに作成されたアカウントを削除する

身元不明の新しい所有者が Search Console アカウントに追加されている場合は、できるだけ早くそのユーザーのアクセス権を取り消してください。サイトの所有権を確認済みのユーザーは、Search Console の確認ページで確認できます。サイトの [確認の詳細] をクリックして、確認済みのすべてのユーザーを表示します。

Search Console から所有者を削除するには、ユーザー、所有者、権限の管理に関するヘルプセンター記事の「所有者の削除」セクションをご覧ください。関連付けられている確認トークンを削除する必要があります。通常、このトークンはサイトのルートにある HTML ファイルか、HTML ファイルを模倣した動的に生成された .htaccess ファイルです。

サイトに HTML 確認トークンが見つからない場合は、.htaccess ファイルに書き換えルールがないか確認します。書き換えルールは次のようになります。

RewriteEngine On
RewriteRule ^google(.*)\.html$ dir/file.php?google=$1 [L]

動的に生成された確認トークンを .htaccess ファイルから削除する手順は次のとおりです。

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

ハッカーは、.htaccess ファイルを使用して動的に生成された確認トークンを作成するだけでなく、.htaccess ルールを使用してユーザーをリダイレクトしたり、意味不明なスパムページを作成したりすることがよくあります。カスタム .htaccess ルールがない場合は、.htaccess を完全に新しいコピーに置き換えることを検討してください。

ステップ 1

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

ステップ 2

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

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

悪意のあるファイルとスクリプトをすべて削除する(4 ステップ)

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

ステップ 1

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

ステップ 2

ハッカーは、URL をより迅速にインデックス登録するために、サイトマップを変更したり、新しいサイトマップを追加したりします。以前にサイトマップ ファイルがあった場合は、ファイルに疑わしいリンクがないかを確認し、サイトマップから削除します。サイトに追加したことがないサイトマップ ファイルがある場合は、そのファイルを再確認し、スパム URL のみが含まれている場合は削除します。

ステップ 3

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

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

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

ステップ 4

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

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

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

$O_O0O_O0_0=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70
%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A"
);
$OO0_0OO0__
=$O_O0O_O0_0{26}.$O_O0O_O0_0{6}.$O_O0O_O0_0{10}.$O_O0O_O0_0{30}

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

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

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

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

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

参考情報

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

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

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

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