このガイドは、サイト上に自動生成された日本語テキストを作成するタイプのハッキング(日本語キーワードによるハッキング)を対象としています。一般的なコンテンツ管理システム (CMS)のユーザー向けに作成されていますが、サイトで CMS を使用していない場合でも役立ちます。
このタイプのハッキングを特定する
一般に、日本語キーワードによるハッキングでは、ランダムに生成されたディレクトリ名(例: http://example.com/ltjmnjp/341.html)で、サイト上に自動生成された日本語テキストを含む新しいページが作成されます。こうしたページは、偽ブランド品を販売するストアへのアフィリエイト リンクを収益源としているのが特徴です。また、Google
検索の検索結果への表示も目的としています。こうしたページは次のようなものです。
このタイプのハッキングでは、ハッカーは通常、サイトの地域ターゲティングやサイトマップなどの設定を操作して収益を増やすために、Search Console でプロパティ所有者として自分自身を追加します。身に覚えのないユーザーが Google Search Consoleでサイトの所有権を確認したという通知を受け取った場合は、サイトがハッキングされている可能性が 高くなります。
まず、Search Console の
[セキュリティの問題]
ツールで、Google がサイト上でハッキングされたページを検出しているかどうかを確認します。Google 検索ウィンドウを開き、サイトのルートレベルの URL
を入力して site:_your site url_ と検索すると、このようなページが見つかることもあります。これにより、ハッキングされたページを含む、Google
がサイトにインデックス登録したページが表示されます。検索結果のページをいくつか見て、不審な URL
がないかどうかを確認します。Google 検索でハッキングされたコンテンツが見つからない場合は、別の検索エンジンで同じ検索語句を使用してみてください。たとえば、次のような結果が表示されます。
通常、ハッキングされたページへのリンクをクリックすると、別のサイトにリダイレクトされるか、意味不明なコンテンツで埋め尽くされたページが表示されます。ただし、ページが存在しないことを示すメッセージ(404 エラーなど)が表示されることもあります。だまされないでください。ハッカーは、ページがまだハッキングされているのに、ページが削除されたか修正されたと思わせようとします。これは、 コンテンツのクローキング によって行われます。クローキングを確認するには、 URL 検査ツールにサイトの URL を入力します。このツールを使用すると、基盤となる隠しコンテンツを確認できます。
このような問題が発生している場合は、サイトがこのタイプのハッキングの影響を受けている可能性が高くなります。
ハッキングを修正する
作業を開始する前に、後で復元する必要が生じた場合に備えて、ファイルを削除する前にオフライン コピーを作成してください。できれば、クリーンアップ プロセスを開始する前に、サイト全体のバックアップを作成してください。これを行うには、サーバー上のすべてのファイルをサーバー以外の場所に保存するか、特定のコンテンツ管理システム(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
を使用している場合は、検索エンジンで「.htaccess ファイルの場所」と CMS
の名前を検索してください。
サイトによっては、複数の .htaccess ファイルが表示されることがあります。
すべての
.htaccess ファイルの場所のリストを作成します。
ステップ 2
すべての .htaccess ファイルを、.htaccess ファイルのクリーン バージョンまたはデフォルト
バージョンに置き換えます。通常、.htaccess ファイルのデフォルト バージョンは、「デフォルト .htaccess ファイル」と CMS
の名前を検索すると見つかります。複数の .htaccess ファイルがあるサイトの場合は、それぞれのクリーン
バージョンを見つけて置き換えます。
デフォルトの .htaccess が存在せず、サイトで .htaccess
ファイルを構成したことがない場合、サイトで見つかった.htaccess ファイルは悪意のあるファイルである可能性があります。念のため、.htaccess
ファイルのコピーをオフラインで保存し、サイトから .htaccess ファイルを削除します。
悪意のあるファイルとスクリプトをすべて削除する(4 ステップ)
悪意のあるファイルを特定するのは難しく、時間がかかることがあります。ファイルを慎重に確認してください。まだ行っていない場合は、この時点でサイトのファイルをバックアップすることをおすすめします。Google で「サイトのバックアップ」と CMS の名前を検索すると、サイトをバックアップする方法の手順が表示されます。
ステップ 1
CMS を使用している場合は、CMS のデフォルト ディストリビューションに含まれているすべてのコア(デフォルト)ファイルと、追加したファイル(テーマ、モジュール、プラグインなど)を再インストールします。これにより、これらのファイルにハッキングされたコンテンツが含まれていないことを確認できます。Google 検索で「再インストール」と CMS の名前を検索すると、再インストールの手順が表示されます。プラグイン、モジュール、拡張機能、テーマがある場合は、それらも再インストールしてください。
ステップ 2
ハッカーは、URL のインデックス登録を迅速に行うために、サイトマップを変更したり、新しいサイトマップを追加したりすることがよくあります。以前にサイトマップ ファイルがあった場合は、ファイルに不審なリンクがないか確認し、削除します。サイトに追加した覚えのないサイトマップ ファイルがある場合は、ファイルを確認します。スパム行為のある URL のみが含まれている場合は、ファイルを削除します。
ステップ 3
他の悪意のあるファイルや侵害されたファイルがないか確認します。前の 2 つのステップですべての悪意のあるファイルを削除した可能性がありますが、サイトに侵害されたファイルが他にもある場合に備えて、次の手順も行うことをおすすめします。
すべての PHP ファイルを開いて確認する必要があると思わないでください。まず、調査する不審な PHP ファイルのリストを作成します。不審な PHP ファイルを特定する方法はいくつかあります。
- CMS ファイルをすでに再読み込みしている場合は、デフォルトの CMS ファイルまたはフォルダに含まれていないファイルのみを確認します。これにより、多くの PHP ファイルが除外され、確認するファイルが少なくなります。
- 最終更新日を基準にサイト上のファイルを並べ替えます。サイトがハッキングされていることを最初に発見した日から数か月以内に変更されたファイルを探します。
- ファイルのサイズを基準にサイト上のファイルを並べ替えます。著しく大きいファイルを探します。
ステップ 4
不審な PHP ファイルのリストを作成したら、悪意のあるコンテンツがないか確認します。 PHP に慣れていない場合は、このプロセスに時間がかかる可能性があるため、 PHP のドキュメントを確認することをおすすめします。 コーディングを初めて行う場合は、経験豊富なデベロッパーに相談することをおすすめします。それまでの間、悪意のあるファイルを特定するために確認できる基本的なパターンがいくつかあります。
CMS を使用していて、PHP ファイルを直接編集する習慣がない場合は、サーバー上のファイルを、CMS に同梱されているデフォルトのファイルと、プラグインやテーマのリストと比較します。デフォルト バージョンよりも大きいファイルだけでなく、存在しないファイルも探します。
すでに特定した不審なファイルをスキャンして、難読化されたコードのブロックを探します。これは、一見するとランダムな文字と数字の組み合わせのように見えることがあり、通常は
base64_decode、rot13、eval、strrev、gzinflate などの 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 ツールを使用して、それらのページがまだ存在するかどうかを確認します。
Fetch as Google で [見つかりません] と表示された場合は、問題が解決している可能性が高いため、サイトの脆弱性の修正に進むことができます。
二度とハッキングされないようにするには
サイトの脆弱性を修正することは、サイトを修正するための最後の重要なステップです。最近の調査によると、ハッキングされたサイトの 20% が 1 日以内に再びハッキングされています。サイトがどのようにハッキングされたかを正しく把握することが大切です。調査を開始するには、 ウェブサイトがスパマーによってハッキングされる主な原因 のガイドをご覧ください。サイトがどのようにハッキングされたかわからない場合は、次のチェックリストに沿ってサイトの脆弱性を軽減してください。
- パソコンを定期的にスキャンする: 一般的なウイルス対策ソフトウェアを使用して、 ウイルスや脆弱性がないか確認します。
- パスワードを定期的に変更する: ホスティング プロバイダ、FTP、CMS など、 すべてのウェブサイト アカウントのパスワードを定期的に変更することで、サイトへの不正アクセスを防ぐことができます。各アカウントに強力で一意のパスワードを作成することが重要です。
- 2 段階認証プロセス(2FA)を使用する: ログインが必要なサービスで 2 段階認証プロセスを有効にすることを検討してください。これにより、ハッカーがパスワードを盗んだ場合でも、ログインが難しくなります。
- CMS、プラグイン、拡張機能、モジュールを定期的に更新する: このステップはすでに完了していることを願っています。多くのサイトが、古いソフトウェアを実行しているためにハッキングされています。自動更新に対応している CMS もあります。
- セキュリティ サービスに登録してサイトをモニタリングすることを検討する: サイトのモニタリングに役立つサービスが多数提供されています。 サイトを安全に保つために、これらのサービスに登録することを検討してください。
参考情報
サイトの修正にまだ問題がある場合は、次のリソースが役立つ可能性があります。
これらのツールはサイトをスキャンし、問題のあるコンテンツを見つけることができます。 ただし、Google がサポートしている(Google 上で利用できる)ツールは VirusTotal のみです。
これらは、サイトをスキャンして問題のあるコンテンツを見つけることができるツールのほんの一部です。これらのスキャナは、あらゆるタイプの問題のあるコンテンツを特定できるとは限りません。
Google が提供するリソースは次のとおりです。