ハッキングのタイプ: コード インジェクション

ハッキングされたサイトのタイプが Search Console で「コード インジェクション」と表示されるページがありますが、どのような意味ですか?

ハッカーがサイトを侵害して、そのサイトの訪問者をスパムサイトにリダイレクトしているという意味です。訪問者の地域、参照元サイト、使用しているデバイス(スマートフォンなど)に基づいて特定のユーザーのみをリダイレクトする場合もあります。ハッカーがサイトの HTML ファイル(JavaScript リダイレクトなど)やサイトのコンテンツを生成するファイル(PHP ファイルなど)に、悪質なコードを直接挿入していることがあります。ハッカーが訪問者をリダイレクトするもう 1 つの方法は、サーバーの設定ファイルの変更です。通常、サーバー設定ファイルでは、サイト管理者がウェブサイトの特定のページやディレクトリへの URL リダクレクトを指定できるようになっています。たとえば、Apache サーバーでは、.htaccess ファイルと httpd.conf ファイルが該当します(サーバーの設定ファイルの調べ方がよくわからない場合は、ハッキングされたサイトの復旧プロセスに関するヘルプのステップ 2: サポート チームを作るをご覧ください)。

スパムの被害を受けたサイトの全般的な詳細については、ステップ 5: 被害を評価する(スパム)をご覧ください。

そのようなページでリダイレクトを調べるには、どうすればよいですか?

まず、ブラウザを使ってサイトのハッキングされたページを表示するのは避けてください。ハッカーは次のようなユーザー特性に基づいてリダイレクトするようページを設定することが多いためです:

  • 場所(IP アドレスから推測されることが多い)
  • リファラー(検索結果ページなど)
  • ユーザー エージェント(モバイル ブラウザや安全性の低いブラウザなど)

代わりに次の手法を使って動作を確認してみてください:

  • Use cURL or Wget to fetch a page:
    These freely available tools let you view the source of the page as seen by a search engine, and have the flexibility to include referrer or user-agent information. By serving spammy content only to users with specific user-agents or referrers, the hacker can target more "real people" and can better avoid detection from site owners and anti-hacking algorithms used by search engines. (Your site will need to be online to use these tools.) For example:
    $curl -v --referer "http://www.google.com/search?q=page" --user-agent "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" http://www.example.com/page.html
  • 侵害されたサーバー設定ファイルを含むページを取得すると、次のようなヘッダーが返されることがあります。

    ...
    < HTTP/1.1 301 Moved Permanently
    < Date: Sun, 24 Feb 2013 21:06:45 GMT
    < Server: Apache
    < Location: http://<spam-site>/index.html
    < Content-Length: 253
    ...
    

    または、返されたページのコンテンツを調べると、以下のような挿入コードが見つかる場合があります。

    • スパムサイトのスクリプトを呼び出して実行する JavaScript または他のスクリプト言語: <script type='text/javascript' src='http://spam-site/js/x55.js'></script>
    • ブラウザをスパムサイトにリダイレクトするスクリプト:
      
      <script>
      if (document.referrer.match(/google\.com/)) { window.location("http://spam-site/"); } </script>
    • 検出を避けるためにわかりにくくしたスパムコード:
      eval(base64_decode("d2luZG93LmxvY2F0aW9uPScvL2dvb2dsZS5jb20nOw=="));

    サイトに存在する疑わしいコードをすべて調べます。JavaScript コードを見つけるには、「script」などの単語を検索すると便利です。その他に、「eval」、「unescape」などがキーワードとして役立ちます。

    ハッキング タイプが「コード インジェクション」のサイトをクリーンアップするには、どうすればよいですか?

    サイトをクリーンアップする準備ができたら(ハッキングされたサイトの復旧プロセスに関するヘルプのステップ 7)、影響を受けたファイルを正常な最後のバックアップで置き換えるか、各ページのコード インジェクションと、関連するすべてのスクリプト関数やファイルを削除できます。サーバーの設定ファイルを変更した場合は、変更を有効にするためにウェブサーバーを再起動する必要があります。

    「コード インジェクション」のハッキング タイプをクリーンアップすることは、ハッキングされたサイトの復旧には有効ですが、ハッカーによるサイトへの最初の侵害を許した根本的な脆弱性に対処したことにはなりません。根本原因を修正しなければ、サイトは今後再びハッキングされるおそれがあります。たとえば、WordPress の古いインストールなど、サイトで実行しているソフトウェアを更新するのは、有効な方法の 1 つです。このハッキング タイプだけでなく、サイト全体のクリーンアップについて詳しくは、ハッキングされたサイトの復旧プロセスに関するヘルプの、特にステップ 5: 被害を評価する(スパム)の「ファイルシステムの被害の評価」をご覧ください。

    この情報は役に立ちましたか?
    改善できる点がありましたらお聞かせください。