このガイドは、日本語のテキストを自動生成するタイプのハッキング(以下、日本語キーワードによるハッキング)を対象として作成されています。一般的なコンテンツ管理システム(CMS)のユーザーを対象としていますが、CMS を使用しなくてもこのガイドは役立ちます。
このガイドがお役に立てば幸いです。 フィードバックをお寄せください。機能の改善に役立てさせていただきます。
このタイプのハッキングを特定する
一般的に、日本語キーワードによるハッキングでは、ランダムに生成されたディレクトリ名(http://example.com/ltjmnjp/341.html
など)で、自動生成された日本語テキストを含む新しいページがサイト上に作成されます。このようなページは、偽ブランド品を販売するストアへのアフィリエイト リンクを使用して収益化され、Google 検索に表示されます。たとえば次のようなページです。
![日本語キーワードによるハッキングのページの例。](https://web.dev/static/articles/fix-the-japanese-keyword-hack/image/an-example-a-page-the-j-d604733ae783f.png?authuser=6&hl=ja)
このタイプのハッキングでは、ハッカーは通常、自身をプロパティ所有者として Search Console に追加し、地域ターゲティングやサイトマップなどのサイト設定を操作して利益を増やします。知らない人が Search Console でサイトを確認しているという通知を受け取った場合は、サイトがハッキングされている可能性が非常に高いです。
まず Search Console のセキュリティの問題ツールをチェックして、このようなハッキングされたページがサイトで Google によって検出されているかどうかを確認します。Google 検索ウィンドウを開き、「site:_your site url_
」と入力してサイトのルートレベルの URL を入力することで、このようなページを検出することもできます。これにより、ハッキングされたページを含め、Google がサイトのインデックスに登録したページが表示されます。検索結果を数ページめくってみて、通常とは異なる URL が見つからなかったか確認します。ハッキングされたコンテンツが Google 検索で見つからなかった場合は、別の検索エンジンで同じ検索キーワードを使用してください。たとえば、次のようになります。
![検索でハッキングされたサイトの例](https://web.dev/static/articles/fix-the-japanese-keyword-hack/image/an-example-a-hacked-site-02881033c49c4.png?authuser=6&hl=ja)
通常、ハッキングされたページへのリンクをクリックすると、別のサイトにリダイレクトされるか、意味不明なコンテンツでいっぱいのページが表示されます。ただし、ページが存在しないことを示すメッセージ(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 ステップ)
不正なファイルの特定は、厄介で時間のかかる作業です。ファイルの確認には時間がかかります。まだ行っていない場合は、この時点でサイトのファイルをバックアップすることをおすすめします。サイトをバックアップする手順を確認するには、「バックアップ サイト」と CMS の名前で Google 検索を行います。
ステップ 1
CMS を使用している場合は、CMS のデフォルト配布に含まれているコア(デフォルト)ファイルと、追加したコンテンツ(テーマ、モジュール、プラグインなど)をすべて再インストールします。これにより、これらのファイルからハッキングされたコンテンツを確実に排除できます。再インストールの手順を確認するには、「再インストール」と CMS 名を Google で検索します。プラグイン、モジュール、拡張機能、テーマがある場合は、それらも再インストールします。
ステップ 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 で「Not Found」と応答した場合、問題はおそらく十分で、サイトの脆弱性の修正に進むことができます。
二度とハッキングされないようにするには
サイトの脆弱性の修正は、サイトを修正するための重要な最終ステップです。最近の調査によると、ハッキングされたサイトの 20% が 1 日以内に再びハッキングされています。サイトがどのようにハッキングされたかを正しく把握することが大切です。調査を始めるにあたっては、スパマーがウェブサイトのハッキングでよく利用する手段のガイドをお読みください。ただし、サイトがどのようにハッキングされたかを特定できない場合は、以下のチェックリストでサイトの脆弱性を減らす方法を確認してください。
- コンピュータを定期的にスキャンする: 一般的なウイルス スキャナを使用して、ウイルスや脆弱性をチェックします。
- パスワードを定期的に変更する: ホスティング プロバイダ、FTP、CMS などのすべてのウェブサイト アカウントのパスワードを定期的に変更することで、サイトへの不正アクセスを防ぐことができます。アカウントごとに一意の安全なパスワードを作成することが重要です。
- 2 要素認証(2FA)を使用する: ログインを必要とするすべてのサービスで 2 要素認証を有効にすることを検討してください。2 要素認証を使用すると、ハッカーはパスワードを盗んでもログインするのが難しくなります。
- CMS、プラグイン、拡張機能、モジュールを定期的に更新する: この手順はすでに実施している可能性があります。多くのサイトは古いソフトウェアを 実行しているためハッキングされます自動更新に対応している CMS もあります。
- セキュリティ サービスへの登録を検討する: わずかな料金でサイトのモニタリングを行える優れたサービスは数多く存在します。サイトを安全に保つために、プロバイダに登録することを検討してください。
補足資料
それでもサイトの問題を解決できない場合は、役立つリソースがいくつかあります。
これらのツールでサイトをスキャンし、問題のあるコンテンツを検出できる場合があります。 ただし、Google がサポートしている(Google 上で利用できる)ツールは VirusTotal のみです。
これらは、問題のあるコンテンツがないかサイトをスキャンすることができるツールの一部です。これらのスキャナは、問題のあるコンテンツをすべて特定することを保証するものではありません。
Google が提供するリソースは次のとおりです。